Instalace Debian Sarge z disku s GRUB 2

10 years ago / about 1 min read / in #linux, #debian, #grub, #bootstrap

Poměrně často rozjíždím nějaké vzdálené servery v serverovnách většinou někde za mořem a zkušenosti se dost různí. Jelikož na většině serverů používám LVM a mám v tom rád jakýs takýs pořádek, jsem mnohem raději, když si můžu server nainstalovat sám.

Bohužel běžná je situace, kdy objednáte server s přístupem přes KVM, dáte požadavek na rozjetí instalace konkrétní verze instalace, ale hlavně na to, aby vás k té instalaci v průběhu pustili… a místo toho co chcete nakonec obdržíte nadšený mail z housingu, že jsou šikovní a už to mají.

Možnosti se pak různí. Buď prostě pokračujete s tím co máte, nebo máte šikovné KVM, které umí nahrát remote image a přes něj si na dálku připojíte nějaké malé iso. A nebo pouze nějaké hloupé KVM či jinou remote konzoli a říkáte si co teď s tím. Šikovným řešením je rozjet instalaci přímo z disku přes grub.

Příprava stroje

Nejdříve je potřeba mít nějakou partition, na kterou si data nahrajete a ta musí být pokud možno odlišná od té s přeinstalovávaným systémem. Pokud totiž vše dáte na stejnou partition, budete mít dost složitou instalaci při změně partitions.

Jednoduchým řešením je využití swapu. Dejme tomu, že je na /dev/sda1

swapoff /dev/sda1
mkfs.ext4 /dev/sda1
mkdir /newinstall
mount /dev/sda1 /newinstall

Do adresáře nyní musíte stáhnout instalační obrazy pro grub (označeno jako hd-media) a samozřejmě i nějaký cd image, např. netinst.

cd /newinstall
wget http://ftp.cz.debian.org/debian/dists/squeeze/main/installer-amd64/current/images/hd-media/initrd.gz
wget http://ftp.cz.debian.org/debian/dists/squeeze/main/installer-amd64/current/images/hd-media/vmlinuz
wget http://cdimage.debian.org/debian-cd/6.0.3/amd64/iso-cd/debian-6.0.3-amd64-netinst.iso

Následně si otevřete /boot/grub/grub.cfg a najděte, kde v něm jsou položky menuentry. Jako první přidejte

menuentry 'install' --class debian --class gnu-linux --class gnu --class os {
        insmod part_gpt
        insmod ext2
        set root='(hd0,gpt1)'
        linux   /vmlinuz
        initrd  /initrd.gz
}

Pozor, tady se může váš zápis samozřejmě značně lišit. Zaprvé nemusíte používat gpt oddíly, zadruhé můžete mít jiný oddíl, takže dejte pozor na správné nastavení typu oddílu a správné nastavení root (běžně je např. (hd0,0) a spol). Pokud máte přístup alespoň přes konzoli, dá se situace případně později napravit ruční editací v grubu.

Končíme

No a to je v podstatě vše. Stačí restartovat, stroj by měl naskočit rovnou do instalace a vy můžete pokračovat tak, jak jste zvyklí. Jen při přerozdělování disku nezapomeňte, že nesmíte smazat oddíl, na kterém máte stažené soubory.

A na závěr upozornění, které mělo být na začátku. Píšu to zpaměti a je možné, že je pár chybek, kontrolujte proto co děláte a snad to dopadne.