Odmontowywanie dysków Windowsowych na dual boot’ach
Scenariusz jest prosty. Maki mają triple-boot (Mac OS X, Win XP, Linux) i użytkownicy nie mogą mieć dostępu do innych partycji systemowych z poziomu Mac OS X. Chociażby po to żeby nie grzebali w plikach konfiguracyjnych, nie wyciągnęli bazy SAM czy żadnych innych rzeczy, których przeczytanie nie byłoby dla nas zbyt miłe Sprawa wydaje się banalnie prosta, wystarczy, tak jak w poprzednich wersjach Mac OS X, przeedytować /etc/fstab
i pozamiatane. Jednak po otwarciu tego pliku okazuje się, że coś się zmieniło i pokazuje się coś takiego: IGNORE THIS FILE.
This file does nothing, contains no useful data, and might go away in
future releases. Do not depend on this file or its contents.
i weź tu człowieku bądź mądry kiedy zamiast jednego statycznego pliku pojawia się automounter (/sbin/autodiskmount
), który oczywiście jest binarką No dobra, ale automounter skądś jest wywoływany. W tym przypadku będzie to /etc/rc.netboot
gdzie montowane są wszystkie dyski podczas instalacji. Po napisaniu kilku if’ów okazało się, że mój szczwany plan z filtrowaniem co montujemy nie zadziałał a że czas naglił trzeba było to załatwić w inny sposób Mały (niezbyt elegancki) workaround polega na odmontowaniu dysków kiedy automounter już je podmontuje . Aby to zrobić wystarczyło w /etc/rc
dopisać trzy linijki: #odmontowanie dyskow windowsowych
umount /dev/disk0s2
umount /dev/disk0s6
Wiem, że to nie jest najsprytniejszy patent ale działa
Synchronizacja czasu z NTP
Maci podłączone do domeny, wszystko działa pięknie. Sprawdzamy czy działa Windows (dual-boot), restartujemy kompa pod Mac OS X. Wpisujemy login/hasło (poprawne), chwile czekamy, ekran się trzęsie i tyle. Na konto lokalne można się zalogować bez problemu tylko czas jest jakiś dziwny i przesunięty o 2 godziny.
Wiadomo, Kerberos ma rozjechany czas i przez to bilety się momentalnie przedawniają. Przyczyna rozjechania czasu też jest prosta, OS X jak każdy szanujący się system ustawia hardware clock w GMT i potem softwarowo dodaje/odejmuje czas żeby dostosować się do strefy czasowej. Windows za to ustawia hardware clock na czas lokalny.
No dobra, problem powinno nam załatwić ntp ale w
/etc/ntp.conf
wszystko jest skonfigurowane poprawnie i dalej nie działa.Szybkie wstukanie
root# ntpdate
Looking for host ntp.pjwstk.edu.pl and service ntp
host found : ntp.pjwstk.edu.pl
14 Feb 14:15:05 ntpdate[1420]: the NTP socket is in use, exiting
i problem zajętego socketu Szybkie śledztwo i okazuje się, że port jest zajęty przez ntpd, który powinien automatycznie synchronizować czas z serwerem ntp. Jedynym problemem jest to, że
ntpd
synchronizuje czas powoli małymi krokami tak żeby system nie zagubił się jak nagle wypadnie mu kilka godzin albo syslog się cofnie. Czyli może za kilka dni czas się zsynchronizuje i logowanie do AD zacznie działaćRozwiązanie jest proste zabić
ntpd
i zsynchronizować ręcznie czas z ntp.Z Pstrykiem napisaliśmy coś takiego:
root# cat /usr/sbin/ntpupdate.sh
#!/bin/bash
/usr/sbin/ntpd
/usr/bin/killall ntpd
RET=1
TIME=15
while [ $RET -ne 0 ] && [ $TIME -gt 0 ]; do
/usr/sbin/ntpdate adres.serwera.ntp >> /var/log/ntpupdate 2>&1
RET=$?
TIME=$(($TIME-1))
sleep 1
done
Po czy do
/etc/rc
dopisaliśmy:# By Pstryk & Kfaz
/usr/sbin/ntpupdate.sh
Kolejny workaround, dziwny ale działający
Podobno nowe sterowniki dla Windows z BootCamp poprawiają ten problem i Windows nie zmienia czasu w hardware clock