Grub2 grub rescue>

Személy szerint a Grub2 bevezetését a Stable Debian verzióba (Squeeze) nem érzem előrelépésnek a Grub-hoz viszonyítva.
Amióta ez megjelent, többet látom a grub> és grub rescue> promptot induláskor, mint előtte összesen.
Előfordul, hogy a telepítőnek sem sikerül egy RAID tömbre, vagy LVM LV-ra megfelelően telepíteni a Grub2-t és a telepítés végén ott áll az ember és tudja, hogy újraindulás után bizony nem egy frissen telepített rendszert kap, hanem egy problémát.
Ha a grub rescue> promt jelenik meg, akkor a legegyszerűbb egy LiveCD után nyúlni. Én a Systemrescue CD-t használom.
A következő példa egy olyan gépen történtek, ahol a /boot könyvtárnak egy RAID1-et hoztam léte, minden más pedig LVM felett lett tárolva.
Az LVM a következő képen néz ki:
# lvscan
  ACTIVE            '/dev/filesystem/swap' [3.72 GiB] inherit
  ACTIVE            '/dev/filesystem/root' [9.31 GiB] inherit
  ACTIVE            '/dev/filesystem/iscsi' [9.31 GiB] inherit
Tehát a felcsatolások így néznek ki:
Filesystem                  Size  Used Avail Use% Mounted on
/dev/mapper/filesystem-root 9.2G  1.9G  6.9G  22% /
/dev/md0                        92M   21M   66M  24% /boot

A probléma egyszerű, a gép indulásakor a grub ugyan elindul - tehát a lemezre, amelyikről indul fel van telepítve a Grub2- de a "no such disk" felirat után a grub rescue> promt jelenik meg.
A következőt tettem:
SystemrescueCd-ről elindítottam a rendszert, ez felismeri és kezeli a RAID tömböket és az LVM-et is.
Miután elindult, előfordul, hogy a RAID tömböket nem olyan sorszámmal jelöli, mint az számunkra ismerős. Célszerű a /dev alatt létrehozni a szimbolikus linkeket az általunk ismert nevekre, tehát:

/dev/md126 -> /dev/md0
/dev/md127 -> /dev/md1
/dev/md126 -> /dev/md/0
/dev/md127 -> /dev/md/1

Ez csak példa!
Ha ez megvan, akkor készítsünk egy könyvtárat ahova felcsatolhatjuk a fájlrendszerünket:

#mkdir/tmp/filesystem

#mount /dev/filesystem/root /tmp/filesystem
#mount /dev/md126 /tmp/filesystem/boot

Ezeket elvileg mindenféle probléma nélkül elvégzi.
Ha a következő parancs kimenete ismerős, akkor jó úton járunk:

#
ls -la /tmp/filesystem/boot

Annak érdekében, hogy lássa a processzeket és az eszközöket, fel kell csatolni őket -o bind opcióval:

#mount -obind /dev tmp/filesystem/dev

#mount -obind /proc tmp/filesystem/proc
#mount -obind /sys tmp/filesystem/sys

Ha ez is megvan, akkor jöhet a chroot.
Előtte érdemes átváltani bash shellre, mert a systemrescue alapértelmezetten a zsh-t használja.
Tehát:

#bash

#chroot /tmp/filesystem

Érdemes ellenőrizni, hogy jó helyen vagyunk-e:

# ls -la /


Ha igen, akkor jöhet a probléma lényegi megoldása:
Az itt (http://blog.timetombs.org/?tag=grub2) található leírás szerint az initramfs-t újra kell generálni - lehet, hogy ezt kihagyva is működik,
Szóval:

#update-initramfs -u -t


Ennek hiba nélkül végig kell futnia - ha nem ír ki semmit akkor jó, ez szokott panaszkodni, ha a RAID tömbünk a Live CD-vel való indulás miatt nem érhető el azon a helyen, ahol telepítéskor.
Ha ez készen van, akkor jöhet a Grub2:

#grub-install --recheck /dev/md0

Ennek a kulcsa a --recheck, ugyanis ezzel a kapcsolóval vesszük rá a telepítőt, hogy nézze végig az eszközöket és a mostani állapotnak megfelelően telepítse a Grub2-t.
Ha ez is végigmegy és a következőhöz hasonlót ír: Installation complete. No error detected akkor készen is vagyunk, a következő indulásnál el kell indulnia.
A error: superfluous RAID member tartalmú sorokat sajnos egy bug eredményezi, remélhetőleg hamar javítják.


Kulcsszavak: Linux, RAID, LVM, Debian, Sqeeze, Grub2, LiveCD, SystemRescueCD
stephan_derrick2012-08-28 09:25:53
chroot: failed to run command '/bin/bash': no such file or directory kaptam, így sikerült: 1, Systemrescue CD 2, mount /dev/md125 /mnt/md125 3, mount -B /dev /mnt/md125/dev 4, mount -B /proc /mnt/md125/proc 5, mount -B /sys /mnt/md125/sys 6, SHELL=/bin/bash 7, chroot /mnt/md125 8, grub-install --recheck /dev/md125 9, update-grub
Kiss Péter2012-08-29 11:53:04
miért váltottál shell-t? A 6. lépésre nincs szükség szerintem

Új hozzászólás: