GRUB nem tudja bootolni az SDB-n lévő linuxot

Fórumok

Sziasztok,

az eddigi laptopom felépítése úgy nézett ki, hogy volt benne egy jó mélyen beépített (értsd mindent szét kell szedni hogy hozzáférj) 500 GB-os HDD, az kétfelé partícionálva, rajta egy Win7 + a másik partíción adatok. (SDA diszk)

ESATA csatlakozóval egy külső dokkolóban egy 128GB-os SSD-re feltettem egy Linux Mintet, 17.1 -est (SDB diszk). A telepítés nagyon frankó volt, a GRUB boot menüben szépen ki lehet választani indulásokor a Windowst is meg a Linuxot is, ment minden rendesen.

Azon kaptam magam, hogy az elmúlt 3 hónapban kizárólag a Linuxot használom viszont az Esata miatt a gépet nem igazán tudtam így mozgatni. Ezért vettem egy beépítőkeretet és a DVD helyére ezzel a kis tálcával beépítettem a Linux Mintet tartalmazó SSD-t.

Azóta viszont nem tud a GRUB bebootolni, ez a hibaüzenet jelenik meg:

error: no such device: itt jön a drive ID-je
Megkapom a grub rescue promptot.
Nem ijedtem meg, megtaláltam hogyan lehetne a grub rescue-ból elindítani az operndszert,
csakhogy az a bajom, hogy ha "ls"-sel kilistázom a diszkeket és partíciókat, a grub csak a hd0 -t látja,
azon a két windowsos partíciót.
A hd1 -et, ami az SSD volna, azt nem látja a grub.

Ha live CD-vel bootolok, akkor természetesen az újonan indult oprendszerrel látom mind a 2 diszket, a 2 windows partíciót és a Mintet tartalmazó SSD-t is.

Próbáltam a GRUB-rescue-diszkkel is újra rendbe tenni a dolgokat, de vagy azt érem el, hogy visszaállítja a Windows MBR-t, így a Win elindul a bootoláskor automatikusan rendesen, vagy ha újra generálom a GRUB-ot, akkor megint errorra futok.

Ezt a diszkinfót hozta létre a resce CD:

http://paste.ubuntu.com/9707567/

A sok magyarázás után a kérdésem a következő:
mit kellene csinálnom ahhoz, hogy a GRUB az első 500 GB-os diszk MBR-jéből be tudja tölteni a másik diszken lévő Linuxot?

Nagyon sokat olvastam utána, meg kipróbáltam sok leírást, de nem jutok dűlőre.
Legrosszabb esetben szétszerelem az egész gépet és kicserélem a diszkeket, bár nem tudom az működne e.
Ja, és a BIOSban nem tudom a boot sorrendben kiválasztani azt, hogy az SSD diszk legyen az első, csak azt, hogy a Hard Drive legyen az első, hogy azon belül melyik, azt nem.

Hozzászólások

Live cd-ről indítva bind-del, és chroot-tal belépsz a telepített rendszerbe, és onnan próbáld meg újrarakni a grub-ot (grub-install /dev/sda), talán megjavul.

Ez a doksi jo volt, koszonom, be birtam menni a sajat telepitesembe chroot-tal (a live oprendszeren nincs ekezetem) es megprobaltam ujrainstallalni a grubot az SDA-ra.

Eredmeny:

lubuntu / # grub-install /dev/sda
grub-install: error: /usr/lib/grub/i386-pc/modinfo.sh doesn't exist. Please specify --target or --directory.
lubuntu / #

Pont ezeket a parancsokat adtam ki a doksi alapjan:

# mount -o bind /proc /mount/point/proc
# mount -o bind /dev /mount/point/dev
# mount -o bind /dev/pts /mount/point/dev/pts
# mount -o bind /sys /mount/point/sys

# cp /etc/resolv.conf /mount/point/etc/resolv.conf

# chroot /mount/point /bin/bash

Ezek utan inditottam a grub-install /dev/sda parancsot, erre jott a hibauzenet.

A helyzet az, hogy nem bírtam tovább, valamilyen megoldás kellett.

Csináltam egy mentést a linuxról és nekikezdtem egy új installnak.
Szépen végig is ment minden, újraraktam a linuxot az SDB-re, majd a GRUB-ot a telepítés végét az SDA-ra.

A helyzet: az új install végén a bootoláskor ugyanezzel a hibával elhasal a GRUB.
Ezek után bármennyire is nem akartam, darabjaira szedtem a lapopom, betettem a belső HDD-nek a linuxos SSD-t, a nagyobb diszket a windows-zal meg a beépítőkeretbe.

Persze egyből elindult a GRUB, viszont így meg a windwost nem tudja bootolni!!!!

Vagyis én a következőre jutottam, az hogy a DVD helyére beépítőkerettel beteszek egy második vinyót, az azzal jár, hogy arról nem tudok bootolni. A tippem az, hogy a GRUB azért nem tud tölteni így, mert az a HDD az MBR betöltésekor még fizikailag nem áll rendelkezésre. Vagyis a rendszerbetöltők ekész egyszerűen akkor még nem láthatják azt a diszket.
Lehet ez hülyeség, mindenesetre több nap szívás után erre jutottam...

A segítséget azért mindenkinek nagyon köszönöm!!!

Akkor a BIOS beállításaival lehet valami gond. Már, ha a feltételezésed igaz, s valóban csak a kernel inicializálja a SATA interface-t.

Másfelől tovább szimatolnék a device.map környékén, mert ha jól gondolom, az nagyjából erre van. Mi több, a Grub2-nek van konzolos módja, lehet valós időben „kísérletezni”, megadni, lekérdezni dolgokat. Ezen felül be is drótozhatsz hivatkozást, valahogy így:

linux (hd0,1)/boot/vmlinuz root=/dev/sda1 ro quiet

Erősen csak példa, nem épp erre van szükséged. Ha sikerül az interaktív interface-ről, akkor már csak bele kell faragni a grub.cfg-be.

Én egyszer azzal szívtam, hogy GPT-re volt partícionálva a HDD-m, SSD-re költözésnél az SSD-t meg hagyományos MBR alapúra partícionáltam. A Grub2 betöltötte a GPT-hez való modulját, aztán bambán nézett, nem tudott mit kezdeni az MBR-rel. Persze rájöttem, kijavítottam, ma is működik. Nem kellett újratelepítenem az oprendszert. Itt írtam erről.

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

Tovább most azóta már nem kísérleteztem vele, de mint korábban írtam, a grub konzol módjában sehogyan sem tudtam lekérdezni a beleszkábált HDD-t.

Valószínűleg a laptop gyártásakor (Dell Inspiron N5010) nem feltételezték hogy valaki ilyen célra akarná használni a DVD meghajtó helyét.

És ugye a másik, hogy így, hogy a Linuxom már rendben van, a Grub a Windowst nem tudja most bootolni ezen a sata porton lévő vinyóról.

Talán a BIOS-t lehetne frissíteni, ennek még nem néztem utána.
Köszi az eddigieket is! :)

Uh, kezdem kapisgálni, amiket írtatok.

A BIOS ennek a DELL-nek egy kalap fos, gyakorlatilag a boot sorrenden kívül még BIOS jelszót lehet beállítani meg disk encryption-t aztán kész, semmilyen paraméter nem állítható, ami mondjuk egy PC-n.

Akkor ezek szerint megint vár rám egy szerelés, a nagyobb HDD-t betenni a gyári helyére, kicsit csökkenteni a meglévő partíciók méretét mondjuk 500MB-tal, abba tenni a linux /boot fájlrendszerét, így a GRUB be tudna bootolni róla, és ezek szerint tudná indítani az azon a diszken lévő windowst is.
Jól értem?

Gondolom, ha képes berántani a kernelt, meg az initrd-t, ami még a Windows-t is tartalmazó /boot-on van, akkor már a Linux tudja inicializálni a SATA interface-t, s eléri a root fs-t, felcsatolja, onnan meg már készen is vagy. Előfeltétel nyilván az, hogy az initrd-ben megtalálhatók legyenek azok a modulok, amelyekre szükséged van, de szerintem egy alap telepítésssel generált initrd épp ilyen lesz.

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

Nem feltétlen kell szerelned. 500mb-t miatt szerintem nem érdemes vinyót cserélni. Az a lényeg, ami locsemege írt. Nekem is ilyen laptopom van, és az odd helyére berakott hdd-ről nem képes bootolni, mert azt a bios is odd-nek ismeri fel. Ezért a gyárilag bent lévő hdd-re csinálj egy partíciót, amin rajta lesznek a boothoz szükséges fájlok. Ennyi

Visszaolvasva a hozzászólásomat, talán kicsit zavarosan írtam. Valami ilyesmire gondoltam:

sda
sda1 ext4 500 MB, ezen van a grub, kernel, initrd, ez csatolandó a /boot alá
sda2 ntfs Windows, vagy extended, és akkor sda5 az ntfs Windows

sdb
sdb1 ext4 500 MB, nem használt, de megcsinálnám, hogy legyen rajta grub, kernel, s szükség esetén a másik HDD nélkül is indítható lenne a Linux
sdb2 ext4 / de lehet akár LVM is
sdb3 ext4 /home
sdb4 swap swap

Az sda megy arra a helyre, ahonnan a gép képes boot-olni. Lehet, hagynék az sdb-n helyet egy picike filerendszernek, ez sdb1 lenne, hogy a HDD-ről önállóan is boot-olni lehessen a Linuxot, ha ezt a HDD-t átteszed sda pozícióba.

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

Nagyon jók vagytok!!!!!!! :)

Ma rászántam magam és ez a megoldás!
Nem szereltem már, hanem a gyári helyen lévő SDD-n kialakítottam egy boot partíciót, így most már azon van a GRUB is és a win+linux boot rész, mind a kettőt tudja indítani!

Viszont nem voltam olyan ügyes, hogy egy már meglévő rendszeren változtassam meg a boot partíció helyét, így egy új installt kellett csinálnom és azzal már működött minden!

Köszi még egyszer! :)

ui.: Persze ha valaki ad egy jó tippet (linket) akkor szívesen utánaolvasok annak is, hogy egy már működő rendszeren hogyan lehet ezt megváltoztatni! :)