2024. április 18., csütörtök

Gyorskeresés

Grub, RAID5, LVM javítás iránymutató

Írta: | Kulcsszavak: raid5 . lvm . linux . ubuntu . server . lvmetad . initramfs . kernel . grub

[ ÚJ BEJEGYZÉS ]

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.

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 /mnt
sudo 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.

Hozzászólások

(#1) Oldman2


Oldman2
veterán

Köszi a dokumentálást!

(#2) hcl válasza Oldman2 (#1) üzenetére


hcl
félisten
LOGOUT blog

Hát amennyire ez segítség.

Mutogatni való hater díszpinty

(#3) F34R


F34R
nagyúr

Lessz meg neked bajod ezzel az init rendszerrel, egyebkent azt nem ertem hogy miert tud elhasalni az intitramfs is, vagy peldaul miert akarja mindig azt hogy a legfrissebbet hasznaljad, mert eppen nem talal bizonyos libeket (amik egyebkent ott vannak, csak nem tetszik neki hogy regebbi verziojuak).
Egyebkent tiszta rohej megy linuxon vonalon is egy ideje.

(#4) hcl válasza F34R (#3) üzenetére


hcl
félisten
LOGOUT blog

Általában nem szokott lenni bajom.

Miért ne hasalna, ha nem tudja olvasni maga alatt a lemezt? Meg is mondta, mi baja.
Nem a legfrissebbet hiányolta, csak valami baja lett. Lehet a vg újraaktiválástól is megjavult volna.

Nekem még a systemd sem lenne baj, csak maradjon meg a kompatibilitás az inittel hosszú távon.

[ Szerkesztve ]

Mutogatni való hater díszpinty

További hozzászólások megtekintése...
Copyright © 2000-2024 PROHARDVER Informatikai Kft.