Zmiana dysku, problemy z boot

Posted on Thu 17 November 2005 in SGI O2 z NetBSD

Okazuje się, że system nie jest stabilny. "Ciepłe" zrestartowanie systemu powoduje zawiesziene z nic mi nie mówiącym komunikatem:
biomask 07 netmask 07 ttymask 07 clockmask 87

Na liście sgimips jest dyskusja z 2003 roku na ten temat jednak deweloper uznał, że problem ten jest trudny do powtórzenia i nic z tym nie zrobiono. Ale...

...zdaje mi się, że jakoś sobie z tym poradziłem.

Zacząłem od starej wypróbowanej metody czyli odłączenia wszystkich zbędnych urządzeń i próbach. Wyłączyłem pierwszy dysk SCSI, streamer SCSI oraz wyjąłem z O2 moduł dźwięku. Pomogło. Przypuszczam, że problem tkwi w starym dysku IBM ale jeszcze to sprawdzę.

Przy okazji zmiany konfiguracji sprzętowej pojawił się problem z bootowanie. NetBSD jest na tyle inteligetny, że w przypadku gdy mu się nie zgadza zadeklarowany dysk root device, umożliwia na konsoli wprowadzenie właściwego urządzenia. Byłem na tyle niefrasobliwy, że w konfiguracji kernela wpisałem dysk sd2 na stałe jako root device, jest to linia, która wygląda tak:
# Kernel root file system and dump configuration
config netbsd root on sd2 type ffs

Powinienem użyć pytajników ("?") w miejsce nazwy dysku i filesystemu. Pytajniki to wildcardy.

Wracając do problemu ze startem systemu...
Po podaniu sd1 jako nowego root device system startuje ale w "single user mode". Oczywiście nie mountuje pozostałych partycji z /etc/fstab bo tam jak byk widnieje wszedzie dysk "sd2". To co należy zrobić to podmontowania partycji /usr oraz /var. To dla wygody, by móc skorzystać z vi. Zawartość /etc/fstabwygląda to tak:
# cat /etc/fstab
/dev/sd2a / ffs rw 1 1
/dev/sd2b none swap sw 0 0
# /dev/sd2d /mnt ??? rw,noauto 0 0
/dev/sd2e /usr ffs rw 1 2
/dev/sd2f /var ffs rw 1 2
/dev/sd2g /home ffs rw 1 2
/dev/sd2b /tmp mfs rw,-s=263070
kernfs /kern kernfs rw
procfs /proc procfs rw,noauto

Trzeba wyedytować ten plik ale system po nieudanym restarcie jest zamontowany w trybie "tylko do odczytu". Trzeba remountnąć / w trybie rw. Pomoc jest w manualu do mounta, a komenda wygląda następująco:

# mount -f /dev/sd1a /
Finito! Mamy / gotowy do zapisu, teraz wystarczy wyedytować /etc/fstab, pozamieniać wszystkie sd2 na sd1 i zachować zmiany.
No i reboot.