Portál AbcLinuxu, 30. dubna 2025 11:26

Boot rescue Debianu z ISO obrazu

16.11.2014 23:40 | Přečteno: 1480× | Výběrový blog | poslední úprava: 19.11.2014 15:05

Občas se po nějaké úpravě konfigurace může stát, že nejde opět systém nabootovat. Většinou pomůže nastartovat v recovery módu. Nemusí to však pomoci vždy (když je i recovery rozbité), pak je nutné provést opravu z nějakého live média. Ne vždy ale mám po ruce flashdisk (notebook nemá DVD mechaniku), který bych mohl přepsat nějakou live distribucí, případně nemám k dispozici počítač, na kterém bych live flashdisk vytvořil. Proto jsem hledal způsob, jak se na podobnou situaci lépe připravit.

Řešením je nabootovat ISO obraz nějaké distribuce přímo z pevného disku. Grub2 toto umí, na webu je spousta návodů, jak toho dosáhnout, bohužel jsem nenašel žádný, který by dělal přesně to, co chci.

Používám Debian a pro rychlou opravu mi většinou plně dostačuje netinst médium, které obsahuje rescue systém. Ten po spuštění připojí (po zadání hesla) i šifrované disky a zeptá se, zda chci spustit chroot. Oprava je pak alespoň pro mě velmi rychlá (nemusím vzpomínat, jak připojit ručně šifrované disky a co vše je potřeba připojit pro chroot).

Jak tedy dosáhnout spuštění rescue režimu z obrazu netinst média? Postup je pro aktuální 64bitový Debian Jessie je následující:
mkdir /boot/debian
wget http://cdimage.debian.org/cdimage/jessie_di_beta_2/amd64/iso-cd/debian-jessie-DI-b2-amd64-netinst.iso -O /boot/debian/debian.iso
wget http://ftp.debian.org/debian/dists/jessie/main/installer-amd64/20141002/images/hd-media/initrd.gz -O /boot/debian/initrd.gz
wget http://ftp.debian.org/debian/dists/jessie/main/installer-amd64/20141002/images/hd-media/vmlinuz -O /boot/debian/vmlinuz
cat << 'EOF' >> /etc/grub.d/40_custom
menuentry "Debian ISO rescue" {
	linux  /debian/vmlinuz boot=/debian iso-scan/filename=/debian/debian.iso noeject rescue/enable=true --- quiet 
	initrd /debian/initrd.gz
}
EOF
update-grub2
Po restartu pak v grubu uvidíte další položku Debian ISO rescue, kterou v případě nutnosti spustíte rescue režim z ISO obrazu Debianu.

Stažení initrd.gz a vmlinuz zvlášť je nutné, ty obsažené na médiu nedokážou najít ISO obraz na souborovém systému ext4 (který používám na /boot). U těchto dvou souborů též upozorňuji na nutnost, aby byly ze stejného sestavení jako ISO obraz, jinak může ISO obraz obsahovat jiné verze modulů jádra a nebude fungovat.

Výše uvedený postup je pro případ, kdy máte /boot na samostatném oddílu. V opačném případě bude patrně třeba v konfiguraci grubu nahradit /debian za /boot/debian.        

Hodnocení: 100 %

        špatnédobré        

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

Vložit další komentář

xkucf03 avatar 17.11.2014 11:39 xkucf03 | skóre: 49 | blog: xkucf03
Rozbalit Rozbalit vše Re: Boot rescue Debianu z ISO obrazu
Odpovědět | Sbalit | Link | Blokovat | Admin

Díky za článek, zaslouží tučňáka.

Stažení initrd.gz a vmlinuz zvlášť je nutné, ty obsažené na médiu nedokážou najít ISO obraz na souborovém systému ext4 (který používám na /boot).

Napadlo mě, že je zbytečné do toho tahat souborový systém. Když má člověk LVM, tak je jakýkoli FS zbytečná vrstva navíc. Zkusil jsem to a funguje:

Místo do souboru uložíme ISO obraz do LV:

lvcreate --name debian_iso --size 300M test
dd if=/tmp/debian-7.5.0-amd64-netinst.iso bs=1M of=/dev/test/debian_iso

a pak nabootujeme z Grubu:

grub> linux (lvm/test-debian_iso)/install.amd/vmlinuz 
grub> initrd (lvm/test-debian_iso)/install.amd/initrd.gz 
grub> boot

Případně by to mohlo jít přes chainloader, ale to se mi nepodařilo rozchodit.

Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
17.11.2014 16:09 tom62 | skóre: 14 | blog: tom62 | Brno
Rozbalit Rozbalit vše Re: Boot rescue Debianu z ISO obrazu
Díky za doplnění. LVM na noteboocích (kde ta nedostupnost média pro opravu častěji hrozí) nepoužívám. chainloader jsem zkoušel, ale také se mi to nepodařilo rozchodit.
17.11.2014 18:33 aaa
Rozbalit Rozbalit vše Re: Boot rescue Debianu z ISO obrazu
Odpovědět | Sbalit | Link | Blokovat | Admin
Tohle je velice zajimavy prispevek. Asi to zacnu pouzivat.
19.11.2014 01:20 Anonym
Rozbalit Rozbalit vše Re: Boot rescue Debianu z ISO obrazu
Odpovědět | Sbalit | Link | Blokovat | Admin
A není jednodušší si jádro a initramfs z toho iso prostě vykopírovat? Stejně to bude fungovat jenom u těch ISO, kde se vše načte do RAM bootloderem a dál už se na něj nesahá.
19.11.2014 07:03 tom62 | skóre: 14 | blog: tom62 | Brno
Rozbalit Rozbalit vše Re: Boot rescue Debianu z ISO obrazu
Jak jsem psal, pokud je to ISO uložené třeba na souborovém systému ext4 (můj případ), pak ty soubory obsažené v ISO obrazu v případě Debianu nefungují. Právě proto, že to ISO je k běhu potřeba (načítají se z něj další věci), po startu se ISO hledá na discích (parametr iso-scan/filename=/debian/debian.iso).

Založit nové vláknoNahoru

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.