[linux] Re: Kickstarten van USB stick?

Daniel von Asmuth asmuth op bakunin.xs4all.nl
Wo Jan 16 17:07:26 CET 2008


On Thu, Jan 10, 2008 at 01:48:47PM +0100, Daniel von Asmuth wrote:
> Ik ben erin geslaagd om een Kickstart bootable Red Hat Linux installatie
> CD te maken...
> 
> Nu zou ik graag ook een bootable USB stick willen maken. Weet iemand wat
> je moet doen om Tux te booten van een USB stick?

Het is uiteindenlijk gelukt op ongeveer de volgende manier:

Op de USB stick is een kleine FAT16 disk partitie aangemaakt van ca. 20 MB 
van type 6 (FAT16) en de rest is een grote partitie van type 'b' (FAT32). 
Beide partities geformatteerd als 'VFAT'. 

De eerste partitie is 'aktief' (bootable) gemaakt. Het BIOS van
de test PC is zo ingesteld dat-ie ook van USB wil booten. Dan is met
'dd' een standaard DOS Master Boot Record naar de USB stick gekopieerd.
Zie ook de documentatie van het 'syslinux' pakket. Het 'syslinux'
commando modificeert de bootsector van je USB stick verder en zet er de 
file ldlinux.sys op.

Mount de Red Hat Kickstart CD: dit file system heeft een subdirectory 
'RedHat', waarin het eigenlijke installatieprogramma en de te installeren 
RPMs staan, SRPMS en dosutils laten we verder met rust. De directory 
'images' bevat floppy images voor een EL Torito bootable CD, die we ook 
niet gebruiken; in plaats daarvan booten we zonder disk emulatie,
waarvoor de nodige bestanden door het 'anaconda' installatieprogramma in 
de /isolinux directory zijn geschreven. 

Uit die directory kopieren we *.msg naar de eerste partitie op de USB
stick, benevens de kernel vmlinuz, de kernel modules initrd.img, 
solinux.bin en syslinux.cfg.

Uit de hoofddirectory kopieren we ks.cfg.

Naar de tweede partitie op de stick wordt de Kickstart ISO file
gekopieerd zonder wijziging.

Om de exercitie af te ronden heb ik de syslinux.cfg file op de stick
iets aangepast:

default linux
prompt 1
timeout 600
display boot.msg
F1 boot.msg
F2 options.msg
F3 general.msg
F4 param.msg
F5 rescue.msg
label sda
  kernel vmlinuz
  append ks=hd:sda1:ks.cfg initrd=initrd.img
label sda_serial
  kernel vmlinuz
  append ks=hd:sda1:ks-serial.cfg initrd=initrd.img console=tty0 console=ttyS0,9600n8
label sdb
  kernel vmlinuz
  append ks=hd:sdb1:ks-sun.cfg initrd=initrd.img
label sdb_serial
  kernel vmlinuz
  append ks=hd:sdb1:ks-sun-serial.cfg initrd=initrd.img console=tty0 console=ttyS0,9600n8
label rescue_sda
  kernel vmlinuz
  append initrd=initrd.img rescue method=hd:sda2:/ lang=en
label rescue_sdb
  kernel vmlinuz
  append initrd=initrd.img rescue method=hd:sdb2:/ lang=en
label rescue_sdb_serial
  kernel vmlinuz
  append initrd=initrd.img console=tty0 console=ttyS0,9600n8 rescue method=hd:sdb2:/ lang=en

Het idee van bovenstaande is dat als de test PC 1 SCSI disk heeft, de USB
stick /dev/sdb wordt, en als de PC 0 SCSI disks heeft (HP Proliant), de
USB stick /dev/sda wordt. Als we de procedure niet via de (virtuele) 
console kunnen volgen, dan is een (virtuele) seriele poort een
alternatief.

Toen hadden we vier lichtenlijk verschillende ks.cfg files nodig. De
eerste is aangepast door de regel met 'cdrom' te vervangen door
harddrive --partition=sda2 --dir=/ 
Deze informatie is voldoende om het image van de installatie CD te
vinden. De 'serial' variant voegt achter '%post' nog een regel toe met:
sed -i -e '1,$s/console=/console=tty0 console=/' /boot/grub/grub.conf
Dat is om de kernel boot messages op het scherm en de seriele poort te
zien. Om op de (virtuele) seriele poort te kunnen inloggen voeg je een 
regel toe aan /etc/inittab met:
co:2345:respawn:/sbin/agetty -L ttyS0 9600 vt100

Daarna de USB stick unmounten en hem in de test PC steken....


Met vriendenlijke groet,



Daniel von Asmuth

-- 
		Microsoft Windows Error Reporting
Dit probleem is veroorzaakt door Windows. Dit programma is gemaakt door
Microsoft Corporation. Microsoft Corporation heeft momenteel geen oplossing
voor het probleem dat u hebt gemeld.
	Was deze informatie nuttig?  [ Ja ]  [ Nee ]  [ Enigszins ]



More information about the Linux mailing list