Včera jsem měl hrací náladu a zkusil jsem vytvořit bootovací flash disk a z něj následně zavést netinst debianu... Postup je více než jednoduchý, budeme potřebovat: libovolný flash disk, program syslinux a soubory boot.img.gz, initrd.gz a vmlinuz stažené z následujících stránek, pro danou cílovou architekturu a to buď i386 a nebo amd64. Syslinux buď skompilujeme a nebo nainstalujeme z repozitáře...
Budete tak jako tak muset použit Terminál, ale nebojte nebude to bolet...
...spuštění terminálu s právy roota a vytvoření pracovního adresáře. Veškeré kroky budeme provádět z terminálu, který spustíme, že stiskneme Alt+F2 a následně zadáme příkaz konsole
nebo gnome-terminal
případně xterm
a stiskneme klávesu enter. Následně v terminálu zadáme příkaz su
abychom dostali práva roota. Nyní vytvoříme adresář, ve které budeme pracovat a doněj následně přejdeme
mkdir ~/pracovni/ &&cd ~/pracovni/
nyní můžeme pokračovat dalším krokem... Terminál nezavíráme!!!
...identifikace a formátování flash disku. DBEJTE ZVÝŠENÉ OPATRNOSTI!!! Cest k identifikaci a naformátování flash disku je několik, ukážeme si jednu klikací variantu a jednu chuťovku...
Flash disk zapojíme do volného portu USB v počítači, pokud používáme například KDE nebo GNOME vyskočí nám okno, které nabídne namountování tohoto flash disku, vybereme, že nechceme flash disk připojit!!!
Stiskneme klávesovou zkratku Alt+F2 a pak zadáme, pokud máme KDE: kdesu gparted
a pokud máme GNOME: gksudo gparted
V roletě s disky v pravo nahoře vybereme náš flash disk, následně klikneme na pruh ukazující rozdělené a využití disku pravým myšítkem a vybereme v submenu Formátovat jako položku FAT16 a pak potvrdíme změny čudlítkem Apply. Následně klikneme opět na onen zmíněný pruh a vybereme položku Nastavit příznaky a v okně které se nám následně otevře zatrhneme boot, pak klikneme na Close a zavřeme GParted.
Další variantou jsou příkazy v terminálu, toto řešení je podstatně rychlejší... Přesuneme se do okna terminálu, jsme v naší pracovní složce ~/pracovni/. Pokud byl někdo hyperaktivní a flash disk k počítači připojil, je potřeba ho odpojit a následně zadat příkaz
ls /dev/ > ~/pracovni/bez
Teď můžeme flash disk připojit k počítači, jak jsem zmiňoval výše, nebudeme jej zatím mountovat, a nyní zadáme příkaz ls /dev/ > ~/pracovni/s
Prostřednictvím příkazu diff bez s |grep sd
vzniklé soubory bez a s porovnáme a uvidíme výsledek, který nám říká, jak je náš flash disk označen: hostname:~/pracovni# diff bez s |grep sd
V tomto případě náš flash disk nese označení sda1, mějte prosím na paměti, že ne vždy je flash disk označen jako sda1, může se jedna i o jiný disk, přesné označení zjistíte pomocí postupůvýše! Na flash disku nyní vytvoříme souborový systém FAT16 pomocí příkazu
> sda
> sda1mkfs.vfat -n flashka -F 16 /dev/sda1
Nyní můžeme přistoupit k dalšímu kroku.
...namountovíní flash disku, stažení potřebných souborů, nakopírování na flash disk, nastavení práv a následné umountování. V našem pracovním adresáři si vytvoříme adresáš flash a na něj následně namountujeme náš flash disk.
mkdir ~/pracovni/flash/ &&mount -t vfat /dev/sda1 ~/pracovni/flash/
Nyní vytvoříme složku deb a přejdeme do ní: mkdir ~/pracovni/deb/ &&cd ~/pracovni/deb/
a stáhneme potřebné soubory, dle naší architektury pomocí příkazu wget.
Pro architekturu i386 zadáme:
wget http://ftp.nl.debian.org/debian/dists/lenny/main/installer-i386/current/images/hd-media/boot.img.gz
Pro architekturu amd64 zadáme:
wget http://ftp.nl.debian.org/debian/dists/lenny/main/installer-i386/current/images/hd-media/initrd.gz
wget http://ftp.nl.debian.org/debian/dists/lenny/main/installer-i386/current/images/hd-media/vmlinuzwget http://ftp.nl.debian.org/debian/dists/lenny/main/installer-amd64/current/images/hd-media/boot.img.gz
Je potřeba stáhnout ještě dva velmi podstatné soubory:
wget http://ftp.nl.debian.org/debian/dists/lenny/main/installer-amd64/current/images/hd-media/initrd.gz
wget http://ftp.nl.debian.org/debian/dists/lenny/main/installer-amd64/current/images/hd-media/vmlinuzwget http://www.freezy.cz/blog/id36/syslinux.cfg
Nyní se vrátíme do našeho pracovního adresáře a stažené soubory nakopírujeme na flash disk:
wget http://www.freezy.cz/blog/id36/ldlinux.bincd ~/pracovni &&cp ~/pracovni/deb/* ~/pracovni/flash/
Následně nastavíme oprávnění k souborům na flash disku a umountujeme ho: chown root:root ~/pracovni/flash/* &&umount ~/pracovni/flash/
...vytvoření zaváděcího záznamu a význam syslinux.cfg. Hlavní zaváděcí záznam neboli MBR vytvoříme za pomocí příkazu: syslinux -s /dev/sda1
Konfigurační soubor syslinux.cfg slouží k automatickému definování parametrů bootu, převážně tedy jaké jádro použit, kde je initrd, kde je rootovská partition, z jakého média se systém zavádí, ale difinuje i další parametry, nás ale zajímají tyto výše zmíněné. Náš syslinux.cfg bude tedy obsahovat:
default vmlinuz append root=/dev/ram0 initrd=initrd.gz pmedia=usbflash
Widlopostup je sice klikačka, ale ani tady se nevyhnete použití příkazové řádky...
...stažení syslinux, souborů potřebných pro jeho funkčnost a také soubory potřebné pro danou cílovou architekturu. Syslinux pouze pro windows můžeme stáhnout ZDE, tento archiv stáhneme a rozbalíme na plochu do složky win32. Dále je potřeba stáhnout syslinux.cfg a ldlinux.bin. Nyní lze přistoupit ke stažení souborů pro danou cílovou architekturu.
Pro architekturu i386 musíme stáhnout tyto soubory: boot.img.bz,initrd.gz a vmlinuz. Pro architekturu amd64 stáhneme tyto soubory: boot.img.gz, initrd.gz a vmlinuz
Pro stažení VŽDY používejte pravý klik na položku a vyberte uložit odkaz jako!
...identifikace, spuštění příkazového řádku, formátování a kopírování. Nyní je vhodný okamžik pro přpipojení našeho flash disku k USB portu počítače, flashku připojíme a podíváme se do Tato plečka jaké písmenko má náš flash disk, pro ilustraci to bude FŇ:. Teď najdeme v nabídce Start > Programy položku příkazový řádek a klikneme na ni pravým myšítkem a vybereme položku Spustit jako Administrator a zadáme příkaz
format /FS:FAT16 /V:flashka FŇ:
Následně spustíme příkaz "%USERPROFILE%"\Plocha\win32\syslinux.exe FŇ:
Nyní už jen stačí soubory, které jsme stáhli v prvním kroku, nakopírovat na náš flash disk. Náš syslinux.cfg bude tedy opět obsahovat:
default vmlinuz append root=/dev/ram0 initrd=initrd.gz pmedia=usbflash
Bootovací flash disk máme hotový a můžeme jít na nabootování počítače z flashky. V BIOSu počítače nastavíme jako první bootovací zařízení USB Flash Drive, deska a BIOS to samozřejmě musí podporovat a pak jen necháme počítač nabootovat z tohoto flash disku.
Tímto postupem lze zprovoznit nejen netinstall Debianu, jak jsme si názorně předvedli. S malými úpravami, lze zprovoznit také drtivou většinu distribucí, vydávaných jako LiveCD, postup lze aplikovat i na většinu klasických instalačních cd linuxu ... ale o tomhle tématu až někdy příště...
syslinux
syslinux pouze pro Windows
syslinux.cfg
ldlinux.bin
Kompilujeme v GNU/Linuxu
Ukázka bootování - Video
Pro architekturu i386:
boot.img.bz
initrd.gz
vmlinuz
Pro architekturu amd64:
boot.img.gz
initrd.gz
vmlinuz