Debian bootable usbdisk maken
september 24th, 2009 by mark

Een usbstick maken waarvan een debian installatie kan worden gedaan is best eenvoudig.
Nodig : 1 usbstick, een computer met linux erop en een internetverbinding.

Steek de usbstick in je linux pc en kijk, in een teminalschermpje, met het dmesg commando hoe de nieuw gevonden disk heet. In mijn geval is dit /dev/sdd.

Hieronder is te zien hoe achtereenvolgens de bestaande partitie van de usbstick wordt verwijderd en vervolgens een nieuwe aangemaakt van het type FAT16 en deze bootable wordt gemaakt.

mark@laptop:~$ sudo fdisk /dev/sdd

Command (m for help): p

Disk /dev/sdd: 1055 MB, 1055653888 bytes
33 heads, 62 sectors/track, 1007 cylinders
Units = cylinders of 2046 * 512 = 1047552 bytes
Disk identifier: 0x8ef631df                    

   Device Boot      Start         End      Blocks   Id  System

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-1007, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-1007, default 1007):
Using default value 1007                                          

Command (m for help): p

Disk /dev/sdd: 1055 MB, 1055653888 bytes
33 heads, 62 sectors/track, 1007 cylinders
Units = cylinders of 2046 * 512 = 1047552 bytes
Disk identifier: 0x8ef631df                    

   Device Boot      Start         End      Blocks   Id  System
/dev/sdd1               1        1007     1030130   83  Linux 

Command (m for help): t
Selected partition 1
Hex code (type L to list codes): 6
Changed system type of partition 1 to 6 (FAT16)                                

Command (m for help): p

Disk /dev/sdd: 1055 MB, 1055653888 bytes
33 heads, 62 sectors/track, 1007 cylinders
Units = cylinders of 2046 * 512 = 1047552 bytes
Disk identifier: 0x8ef631df                    

   Device Boot      Start         End      Blocks   Id  System
/dev/sdd1               1        1007     1030130    6  FAT16 

Command (m for help): m
Command action
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition
   l   list known partition types
   m   print this menu
   n   add a new partition
   o   create a new empty DOS partition table
   p   print the partition table
   q   quit without saving changes
   s   create a new empty Sun disklabel
   t   change a partition's system id
   u   change display/entry units
   v   verify the partition table
   w   write table to disk and exit
   x   extra functionality (experts only)

Command (m for help): a
Partition number (1-4): 1

Command (m for help): p

Disk /dev/sdd: 1055 MB, 1055653888 bytes
33 heads, 62 sectors/track, 1007 cylinders
Units = cylinders of 2046 * 512 = 1047552 bytes
Disk identifier: 0x8ef631df

   Device Boot      Start         End      Blocks   Id  System
/dev/sdd1   *           1        1007     1030130    6  FAT16

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: If you have created or modified any DOS 6.x
partitions, please see the fdisk manual page for additional
information.
Syncing disks.
mark@laptop:~$

Vervolgens maken we een FAT filesysteem aan.

sudo mkdosfs /dev/sdd1

Nu installeren we de syslinux bootloader op de usbstick.

sudo syslinux /dev/sdd1

Hiermee wordt de bootloader geinstalleerd en het bestand ldlinux.sys neergezet. Zo te zien gaat tijdens het booten ldlinux.sys dan op zoek naar het syslinux.cfg bestand waar in staat waar de kernel e.d. staan en welke parameters aan de kernel moeten worden meegegeven. Hierover zometeen meer..

Nu gaan we wat bestanden downloaden van internet, waar onder een kernel, een initrd en een iso image. Aangezien we debian linux gaan installeren halen het zooitje op van een debian mirror. Om te beginnen halen we hier en paar bestanden op, t.w. vmlinuz en initrd.gz. Dit zijn de kernel en het ramimage.
Vervolgens hebben we nog een iso image nodig. Zelf wil ik de installatie op de netboot manier doen. Je start de installatie van de usbstick en haalt alle packages meteen van het internet af.
Download hier de *-netinst.iso naar de directory waar je net ook vmlinuz en initrd.gz hebt neergezet. (Je kunt ook een andere cd nemen, bijvoorbeeld de 1e installatie cd, als je de installatie debs liever al op je usbstick hebt staan)
Tot slot moet nog het syslinux.cfg waar ik het net over had worden aangemaakt.
Maak het bestand aan met je favo editor en zet er het volgende in :

 default vmlinuz
append initrd=initrd.gz ramdisk_size=10240 root=/dev/rd/0 devfs=mount,dall rw DEBCONF_PRIORITY=medium

Mount de usbstick nu.

 mount /dev/sdd1 /mnt

Kopieer vmlinuz, initrd.gz, syslinux.cfg en de netinst.iso nu naar de usbstick. Ik heb de debian-503-i386-netinst.iso op de usbstick netinst.iso genoemd. Het is namelijk een FAT16 filesysteem en dat houdt niet van lange namen..

Nu staat het volgende op je usbstick :

ls /mnt
initrd.gz  ldlinux.sys  netinst.iso  syslinux.cfg  vmlinuz

Ok, dat was het !
umount de stick en booten maar :-D


2 Responses  
  • Ben Zandstra writes:
    juli 18th, 201020:49at

    Mark,

    blonde vraag: De installatie USB stick zoals je die hierboven omschrijft, krijg jij die opgestart vanaf de Nettop D130 ?

    Ik krijg (via de bios) alleen de optie om te booten van de USB kaartlezer en hij ver… het om van de USB stick op te starten.

    Bedankt voor je reactie,

    Grtz,
    Ben

  • mark writes:
    juli 21st, 201012:21at

    Hey Ben,
    Ik zag net dat ik een foutje in mijn artikeltje had staan.
    mkdosfs en syslinux moeten allebei op /dev/sdd1 worden gedaan en niet op /dev/sdd zoals ik had staan bij het mkdosfs commando.
    Maar zo aangemaakt boot hij gewoon.
    Zie je de stick wel in je bios verschijnen als je de stick in de nettop zet, hem reboot en in de bios bij boot ->removable drives kijkt ?


Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>
»  Substance:WordPress   »  Style:Ahren Ahimsa