NAS-t építek, és mielőtt rábíznám az adataimat, mindenképpen tesztelni akartam a hibatűrést. Félig véletlenül kirántottam boot előtt az egyik SATA kábelt (amúgy is kontaktos a táp mindenfelé). Ezután már kernelpánik fogadott a gép bekapcsolása után, ezért ráengedtem egy GRUB javítást is, amitől persze nem lett jobb (hülyeség volt, miből gondoltam, hogy a GRUB-nak van baja...). A lényeg az volt, hogy a telepített Ubuntu Server 16.04 újratelepítés nélkül menthető legyen (meg az adatpartíciónak ne legyen baja).
Az OS egy 5 lemezből álló Linux szoftver RAID5-ön levő LVM -el működött. Itt volt a / is, LVM köteten, erről bootolt. Ez nem ajánlott, de működik.
Elég sokáig tartott rájönni, mi baja. A pontos menetet nem is tudom összerakni (nem dokumentáltam, idő hiányában), de nagyjából leírom a szükséges műveleteket, hátha segít valakinek. A parancsok sem pontosak, csak mintául vannak ott.
Hirdetés
Először is, a RAID-ből kiesett lemezt kell visszarántani a tömbbe. Ehhez bebootoltam az Ubuntu Server telepítőjéről mentés módba. Az adatok látszottak, ha chrootoltam az OS vagy az adatpartícióra (a RAID javításhoz nem kell chroot). Ezután ellenőriztem a tömb állapotát a sudo mdadm --query --detail /dev/mdX paranccsal, ahol ugye X az md raid tömb azonosítója. Ez megondja, hogy van-e hiányzó, vagy hibás lemez a RAID tömbben. Nekem ugye volt, hiába dugtam vissza a SATA kábelt időközben a winchesterre, azt írta ki, hiányzik egy diszk.
A mdadm /dev/mdX -a /dev/sdXX parancs visszatette a tömbbe az új HDD-t. (Meghibásodott meghajtó cseréjekor azt előre fel kell particionálni RAID eszköznek.) A javítás folyamatát a cat /proc/mdstat paranccsal lehet figyelni.
Amikor végzett, újraindítottam a gépet, és bootolt.
Egészen a BusyBox / initramfs-ig. Eh.
Ezután következett annak kiderítése, mi baja az initramfs-nek? Arra panaszkodott, nem látja az LVM kötetet.
(lvmetad is not active yet, using direct activation during sysinit)
Volume group "volumegroupneve" not found
Cannot process volume group volumegroupneve
Újra telepítőlemez, mentés mód. Nem emlékszem, chroot, vagy nem, de vgchange -a y volumegroupneve, lvchange -a y logicalvolumeneve parancs rosszat nem tett neki.
Ezt nem ellenőriztem újraindítással (igazából meg kellett volna javulnia), mert ha már ott voltam, akkor újraépítettem az initramfs-t, hátha az a baja.
Ehhez már egy Lubuntu LiveCD-t használtam, mert a szerver verziós telepítő mentés módja botrányosan macerás. LiveCD-vel gyorsabban kaptam használható felületet.
Ellenőriztem a NAS / partícióját : fsck /dev/mapper/volumegroupneve-rootpartíciókötetneve
Csatoltam a RAID+LVM-en levő / -t a LiveCD-re, és chrootoltam bele.sudo mount /dev/mapper/volumegroupneve-rootpartícióneve /mntsudo mount --bind /dev /mnt/dev &&
sudo mount --bind /dev/pts /mnt/dev/pts &&
sudo mount --bind /proc /mnt/proc &&
sudo mount --bind /sys /mnt/sys &&
sudo chroot /mnt
Itt lehet, hogy egy mkinitramfs vagy update-initramfs is segített volna, de az update-initramfs hiányolt egy csomó mindent a /lib-ből - lehet azért, mert nem volt még kernel frissítve? Nem néztem, hogy a telepítés után ott vannak-e a headerek a lib-ben.sudo apt-get update&&sudo apt-get install linux-headers-generic és apt-get install linux-image-generic után már volt minden, új kernel, új initramfs... meg egy csomó hibaüzenet, hogy az lvmetad nem fut.
("/run/lvm/lvmetad.socket: connect failed: No such file or directory")
Mint kiderült, ott van, az, de a LiveCD (meg a szerver telepítő sem) nem indítja. A service lvm2-lvmetad start igen.
Az új kernellel átugrottam azt a lehetőséget is, hogy ha volt esetleg kernel frissítve, akkor az rossz volt, és azért pánikolt el az elején (bár ennek kicsi a valószínűsége)
Ezután az új kernel telepítése közbeni hibaüzenetek sem jöttek., és reboot után szépen indult a NAS.
Ezután elindul, de nem fogad el semmilyen jelszót - ezen már könnyű segíteni. Valószínű a félresikerült javítási kísérleteim közben sikerült kiütni a /etc/shadow -t, ezért bele kell írni egy új jelszót, erre azért van pár módszer.
Egyszerű : a GRUB parancsszerkesztőt használva könnyen root shellhez lehet jutni. A / ilyenkor read-only, szóval mount -o remount,rw / után ki lehet adni a passwd usernév parancsot, ami után már be lehet jelentkezni.
Mondjuk ez nem azt jelenti, hogy minden szép és jó, de remélhetőleg a többi a rendszer többi része már rendben lesz.
