Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Autor Téma: Nebootovatelný notebook - jak na opravu grub2? [vyřešeno]  (Přečteno 2506 krát)

josef.g

  • Návštěvník
  • Příspěvků: 80
Zdravím a prosím o pomoc, dostal jsem se do dost obtížné situace. Při pokusech o zaheslování grub2 menu na notebooku se mi podařilo dostat notebook do nebootovatelného stavu (alloc magic is broken). Dokážu nabootovat z LiveUSB, ale nevím, co přesně dál. Problém je v tom, že v /boot/grub/grub.cfg už je nastavený superuser, takže soubor není opravitelný v textovém editoru (což by bylo nejjednodušší, tuším, kde je asi chyba). Mám naštěstí zálohované původní skripty z /etc/grub.d/, ale otázka je, jak vygenerovat nový grub.cfg. LiveUSB používám s Ubuntu 12.04.3, systémový disk z notebooku se normálně připojí jen read only. I když bych jej asi dokázal pomocí manuálu namountovat i pro zápis, stejně bych nevěděl jak přesně dál. Nevím, jestli lze z LiveUSB spustit skript update-grub a a pokud ano, jestli mi vygeneruje správný grub.cfg do správného adresáře, když ten systémový disk je v Live systému připojený někam do /media/uuid_disku. Nerad bych něco zmrvil ještě víc, než je to teď (i když to už snad ani nejde).
Potřebuji to dost urgentně dát dohromady, můžete mi prosím někdo poradit kudy dál? Uvítal bych jak spolehlivý příkaz pro mount, tak nějaký návod jak spustit ten skript (nějak se mi nechce věřit, že z LiveUSB bude update-grub prostě fungovat tak, že mi bez problémů vygeneruje grub.cfg do správného adresáře).
Díky předem.
« Poslední změna: 08 Září 2013, 10:52:24 od josef.g »

TIBOR

  • Závislák
  • ***
  • Příspěvků: 6529
  • Som uzivatel linuxovej distribucie, som linuxak?
Re:Nebootovatelný notebook - jak na opravu grub2?
« Odpověď #1 kdy: 06 Září 2013, 21:00:53 »
Tu je navod na obnovu grub2.
http://wiki.ubuntu.cz/grub2#obnoven%C3%AD_grub2_pomoc%C3%AD_livecd
Ovsem neviem co si tam nastavoval pri tom heslovani tak 100% nerucim ze bude funkcny. Ale vyskusat ho snad mozes.
HP Laptop 17-ca1xxx Ubuntu Mate 22.04 FF 64bit.
Asus X751LB-TY014H Ubuntu Mate 20.04.1 FF 64bit.
Linus, Lajnas, Línus, Luínus, Lajnus a je mi naozaj jedno, ako ľudia vyslovujú moje meno. Ale "Linux" je vždy "Linux". LINUS TORVALDS, tvorca Linuxového jadra.(V dokumente Revolution OS)

josef.g

  • Návštěvník
  • Příspěvků: 80
Re:Nebootovatelný notebook - jak na opravu grub2?
« Odpověď #2 kdy: 07 Září 2013, 21:30:30 »
Tak jsem to zkusil, ale zatím nedotáhl do konce. Zvolil jsem variantu 2 (pomocí chroot), protože myslím, že jediné co potřebuji je opravit grub.d a spustit update-grub, nedomnívám se, že je něco špatně s MBR. Co se týče
Kód: [Vybrat]
sudo fdisk -l tak to u mě nefungovalo ( fdisk nepodporuje GPT), ale uspokojivě lze použít fdiskem doporučený Gparted. Po zjištění stavu oddílů jsem použil
Kód: [Vybrat]
sudo mount -t ext4 /dev/sda3 /mnt což se povedlo. Ovšem další krok, tj. vytvoření /mnt/dev pomocí
Kód: [Vybrat]
sudo mkdir /mnt/dev už nešlo provést, protože na mém systémovém disku už /dev samozřejmě existoval a teď byl právě v /mnt/dev. Vzhledem k tomu, že /dev z mého systémového disku (nyní připojený do /mnt/dev) je samozřejmě plný různých zařízení, neodvážil jsem se do něj přimountovat aktuální /dev (což bylo návodem požadováno, jestli to dobře chápu). Zkusil jsem i tak provést
Kód: [Vybrat]
sudo chroot /mnt ale to neuspělo díky faktu, že jsem zachraňoval 64-bitový systém pomocí 32-bitového LiveUSB. Po vytvoření 64-bitového LiveUSB jsem výše uvedený postup opakoval (se stejnými problémy) a tentokrát už se chroot povedl. Bohužel se mi z chrootového terminálu nepodařilo spustit gedit pro opravu skriptů v /etc/grub.d. Naštěstí jsem měl přejmenovanou zálohu původního adresáře /etc/grub.d, takže teď stačilo v terminálu provést přejmenování
Kód: [Vybrat]
mv /etc/grub.d /etc/grub.backup
mv /etc/grub.d.zaloha /etc/grub.d
Už jsem myslel, že je to v suchu, ale bohužel selhal poslední krok. Příkaz
Kód: [Vybrat]
update-grub mi vypsal chybu /usr/sbin/grub-probe: error: cannot find a device for / (is /dev mounted?). Tím jsem skončil. Takže je otázka, jaký /dev vlastně kam připojit? Můžu provést
Kód: [Vybrat]
sudo mount --bind /dev /mnt/dev když /mnt/dev je vlastně můj systémový /dev (ze zachraňovaného disku)? Myslel jsem vždycky, že adresář kam se něco připojuje musí být prázdný.
« Poslední změna: 04 Října 2013, 20:14:32 od josef.g »

patapon

  • Aktivní člen
  • *
  • Příspěvků: 222
Re:Nebootovatelný notebook - jak na opravu grub2?
« Odpověď #3 kdy: 07 Září 2013, 21:31:37 »
skuste --->

https://help.ubuntu.com/community/Boot-Repair

Kód: [Vybrat]
sudo add-apt-repository ppa:yannubuntu/boot-repair

sudo apt-get update

sudo apt-get install boot-repair
Ubuntu 18.04-64 Bit
Snivam otom,ze Linux bude mat plne podporavatelny Hardware,tak jako je tomu u Windowsu.

TIBOR

  • Závislák
  • ***
  • Příspěvků: 6529
  • Som uzivatel linuxovej distribucie, som linuxak?
Re:Nebootovatelný notebook - jak na opravu grub2?
« Odpověď #4 kdy: 07 Září 2013, 22:21:35 »
Podla tohto
http://askubuntu.com/questions/110911/how-can-i-run-update-grub-on-a-chroot-filesystem
ti staci po prikaze
Kód: [Vybrat]
sudo chroot /mntspustit este
Kód: [Vybrat]
mount proc
mount sys
mount dev
potom uz update-grub ide.
Vyzera to ze tieto adresare sa promountuju ale mtab o nich nevie.(o zariadeniach) Prikazom mount sa tam zapisu. Snad som to pochopil dobre.

P.s Myslim ze sudo mkdir /mnt/dev a sudo mount --bind /dev /mnt/dev mozes vynechat.
« Poslední změna: 07 Září 2013, 22:26:00 od TIBOR »
HP Laptop 17-ca1xxx Ubuntu Mate 22.04 FF 64bit.
Asus X751LB-TY014H Ubuntu Mate 20.04.1 FF 64bit.
Linus, Lajnas, Línus, Luínus, Lajnus a je mi naozaj jedno, ako ľudia vyslovujú moje meno. Ale "Linux" je vždy "Linux". LINUS TORVALDS, tvorca Linuxového jadra.(V dokumente Revolution OS)

josef.g

  • Návštěvník
  • Příspěvků: 80
Re:Nebootovatelný notebook - jak na opravu grub2?
« Odpověď #5 kdy: 08 Září 2013, 10:43:19 »
Díky moc Tibore, fungovalo to. Taky díky Pataponovi, ale v této chvíli jsem prioritně zkusil to, co mi přišlo rychlejší. Takže tady pro jistotu zrekapituluji celý postup, snad to někomu zachrání probdělou noc :) Jen upozornění - tohle NENÍ záchrana vážně rozbitého grub2, ale pouze "zmršené" konfigurace!
1) Před jakýmikoliv experimenty s grub2 si zazálohovat ještě funkční adresář /etc/grub.d, třeba jen přejmenováním na /etc/grub-zaloha nebo tak nějak, při záchraně pak před spuštěním update-grub stačí jen adresáře správně přejmenovat. (Myslím, že ještě lepší by bylo zazálohovat si funkční /boot/grub/grub.cfg, pak by vůbec nebyl potřeba chroot a stačilo by nahradit nefunkční grub.cfg jeho funkční zálohou.)
2) Na záchranu použít LiveUSB se systémem, který odpovídá nainstalovanému systému, tj. 64-bitový systém zachraňovat 64-bitovým LiveUSB, jinak nepůjde chroot! Já jsem na záchranu systému s Ubuntu 12.04 64-bit použil konkrétně LiveUSB s Ubuntu 12.04.3 64-bit.
Zjištění stavu oddílů na disku:
Kód: [Vybrat]
sudo parted -l
sudo blkid
Po zjištění systémového disku (/dev/sda3) jsem jej připojil do /mnt a "chrootnul":
Kód: [Vybrat]
sudo mount -t ext4 /dev/sda3 /mnt
sudo chroot /mnt
Pak ještě připojení oddílů /proc, /sys a /dev:
Kód: [Vybrat]
mount proc
mount sys
mount dev
Pak už jen nahrazení vadného /etc/grub.d jeho funkční zálohou a spuštění update-grub:
Kód: [Vybrat]
mv /etc/grub.d /etc/grub.nefunkcni
mv /etc/grub.zaloha /etc/grub.d
update-grub
Po vypnutí notebooku a jeho opětovném zapnutí systém normálně naběhl.

A teď ještě kde byl (možná) zakopaný pes. V tomhle návodu https://help.ubuntu.com/community/Grub2/Passwords se v určitém místě doporučuje následující úprava do souboru 10_linux: printf "menuentry '${title}' ${CLASS} --users '' {\n" "${os}" "${version}". Je tam i zdůvodnění, že --users'' má být s apostrofy místo uvozovek právě kvůli hrozícímu "alloc magic is broken". Já jsem použil apostrofy a přesto mě to potkalo :( Buď je ten návod zastaralý, anebo byl problém v tom, že jsem mezi --users a první apostrofem neměl mezeru. Nevím, v téhle chvíli to nemám valnou chuť zkoušet znovu.

Mimochodem, pokud někdo víte o spolehlivém návodu na zaheslování recovery položek v boot menu pro Ubuntu 12.04, tak jej sem prosím přidejte :)
« Poslední změna: 08 Září 2013, 18:57:14 od josef.g »

Cuore

  • Závislák
  • ***
  • Příspěvků: 2534
Re:Nebootovatelný notebook - jak na opravu grub2? [vyřešeno]
« Odpověď #6 kdy: 08 Září 2013, 14:30:43 »
jen upřesním
Citace
což se povedlo. Ovšem další krok, tj. vytvoření /mnt/dev pomocí
Kód: [Vybrat]
sudo mkdir /mnt/dev už nešlo provést, protože na mém systémovém disku už /dev samozřejmě existoval a teď byl právě v /mnt/dev. Vzhledem k tomu, že /dev z mého systémového disku (nyní připojený do /mnt/dev) je samozřejmě plný různých zařízení, neodvážil jsem se do něj přimountovat aktuální /dev (což bylo návodem požadováno, jestli to dobře chápu). Zkusil jsem i tak provést
pokud jsem tě pochopil, tak si se obával, že pokud připojíš do stávajícího plného adresáře, něco dolšího, tak příjdeš o původní data? Tohle nehrozí, po připojení tam původní data nebudou, pouze ty nové, ale po udpojení se vše vrátí. Otestuj si to např. připojením disku do nějaké složky, kde máš data.

josef.g

  • Návštěvník
  • Příspěvků: 80
Re:Nebootovatelný notebook - jak na opravu grub2? [vyřešeno]
« Odpověď #7 kdy: 08 Září 2013, 19:03:55 »
Pro Cuore: jo, přesně něčeho podobného jsem se obával. Nemám hlubší znalosti operačních a souborových systémů, jsem čistý samouk a prostě jsem netušil, jak se to bude chovat. Později se ukázalo, že to ani nebude potřeba. Každopádně jsem se od tebe teď dozvěděl něco užitečného, dík.

 

Provoz zaštiťuje spolek OpenAlt.