RSS: Blog | Wiki | Forum

Creating a bootable USB flash drive

From Easyneufenglish

Jump to: navigation, search

These informations will help you to create a bootable USB flash drive containing easyOs (based on 9buildroot or 9buildroot-blackgate). These manipulations are based on ubuntu, but it seems to work with others... Note : You will need intel graphic chipset (i810, i815, i945 etc) to use easyOS.

[edit] easyOS compilation :

We first need to compile easyOs. We just have to follow wiki explanations : Compiling EasyOS in chroot

Wiki explain how to compilate "commercial" version of easyOs for easyGate but we prefer openGate build.

We just need to change  :

hg clone http://hg.easyneuf.org/9buildroot

by :

hg clone http://hg.easyneuf.org/9buildroot-blackgate

Other steps don't change. Now, we can create USB flash drive.


[edit] USB flash drive :

We need to do "mount" to find which "device" is use by USB flash drive. In our example, it's on "/dev/sdc1" because it's the only fat "device" (vfat).

cpasjuste@ubuntu:~$ mount
/dev/sdb5 on / type ext3 (rw,errors=remount-ro)
proc on /proc type proc (rw,noexec,nosuid,nodev)
/sys on /sys type sysfs (rw,noexec,nosuid,nodev)
varrun on /var/run type tmpfs (rw,noexec,nosuid,nodev,mode=0755)
varlock on /var/lock type tmpfs (rw,noexec,nosuid,nodev,mode=1777)
procbususb on /proc/bus/usb type usbfs (rw)
udev on /dev type tmpfs (rw,mode=0755)
devshm on /dev/shm type tmpfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
lrm on /lib/modules/2.6.20-16-generic/volatile type tmpfs (rw)
/dev/sda1 on /media/sda1 type ntfs (rw,nls=utf8,umask=007,gid=46)
/dev/sda5 on /media/sda5 type ntfs (rw,nls=utf8,umask=007,gid=46)
/dev/sdb1 on /media/sdb1 type ntfs (rw,nls=utf8,umask=007,gid=46)
/dev/sdb6 on /media/sdb6 type ntfs (rw,nls=utf8,umask=007,gid=46)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
/dev/sdc1 on /media/disk type vfat (rw,nosuid,nodev,shortname=mixed,uid=1000,utf8,umask=077)

"unmount" USB flash drive to do some manipulations on it :

cpasjuste@ubuntu:~$ sudo umount /dev/sdc1

Create bootable partition with "parted" :

cpasjuste@ubuntu:~$ sudo parted /dev/sdc
GNU Parted 1.7.1
We use /dev/sdc
Welcome to GNU Parted ! Tapez "help" pour voir la liste des commandes.

Use "print" to show partition size (997MB) and to verify that you have select good device :

(parted) print                                                            

Disque /dev/sdc : 997MB
Taille des secteurs (logique/physique) : 512o/512o
Table de partitions : msdos

Numéro  Début  Fin    Taille  Type      Système de fichiers  Fanions
 1      189kB  996MB  996MB   primaire  fat16                amorce 

(parted) 

Delete first partition (the only one in this example) :

(parted) rm 1

Create fat32 partition (or fat16) :

(parted) mkpart primary fat32 0 997MB

Create file system :

                     
(parted) mkfs 1 fat32   

Do it "bootable" :

(parted) toggle 1 boot                                                    

Result :

(parted) print                                                            

Disque /dev/sdc : 997MB
Taille des secteurs (logique/physique) : 512o/512o
Table de partitions : msdos

Numéro  Début   Fin    Taille  Type      Système de fichiers  Fanions    
 1      16,4kB  996MB  996MB   primaire  fat32                amorce, lba

(parted)     

Quit "parted" :

(parted) quit

Go back to "build script" folder :

cpasjuste@ubuntu:~$ cd etch-chroot/home/cpasjuste/9buildroot

Copy kernel to USB flash drive root :

cpasjuste@ubuntu:~/etch-chroot/home/cpasjuste/9buildroot$ cp build_i686-unknown-linux-gnu/root/linux /media/disk/
cpasjuste@ubuntu:~/etch-chroot/home/cpasjuste/9buildroot$ sync

Copy OS compressed file system on root :

cpasjuste@ubuntu:~/etch-chroot/home/cpasjuste/9buildroot$ cp rootfs_i686-unknown-linux-gnu.squashfs /media/disk/easygate
cpasjuste@ubuntu:~/etch-chroot/home/cpasjuste/9buildroot$ sync

Use syslinux to install "loader" :

cpasjuste@ubuntu:~/etch-chroot/home/cpasjuste/9buildroot$ sudo apt-get install mtools mbr
cpasjuste@ubuntu:~/etch-chroot/home/cpasjuste/9buildroot$ syslinux -s /dev/sdc1
cpasjuste@ubuntu:~/etch-chroot/home/cpasjuste/9buildroot$ install-mbr /dev/sdc

That's all ! You just have to check your bios.