Extlinux : Live-Usb sur une partition Ext2/Ext3/Ext4
Extlinux transforme la clef Usb Ext2, Ext3, Ext4 en Usb-Live
Extlinux est un paquet développé par H. Peter Anvin EXTLINUX
Il fait parti du projet Syslinux.
Unetbootin permet d'automatiser ses tâches mais pas toujours de façon satisfaisante.
En mars 2013 il n'est plus capable de rendre une partition ext3 bootable ce qu'il parvenait à faire auparavant
Elle est déconseillée sur un Disque dur interne : elle peut en corrompre le démarrage .
Installer extlinux
Préparation du DD Externe ou d'une Clef USB
Il est recommandé de partitionner son disque si ce n'est pas déjà fait.
Méthode graphique: gparted
Méthode en ligne de commande:FDISK http://tldp.org/HOWTO/Partition/fdisk_partitioning.html
Tuto Ubuntu Installation d'Ubuntu : partitionnement manuel
Mettre le LiveCd sur USB Cible EXT
Références de distributions GNU/Linux bootables (page grub2 iso)
Monter l'ISO obtenue dans le répertoire /tmp/cdrom :
user@grUser-P5Q-E:~$ mkdir -p /tmp/cdrom user@grUser-P5Q-E:~$ mount -o loop,exec /path/to/systemrescuecd-x86-x.y.z.iso /tmp/cdrom
Monter la partition dans un répertoire :
user@grUser-P5Q-E:~$ mkdir /tmp/disk user@grUser-P5Q-E:~$ sudo mount /dev/sde1/ /tmp/disk
Copier le contenu du LiveCd dans la partition cible :
user@grUser-P5Q-E:~$ sudo cp -Rf /tmp/cdrom /tmp/disk
Installation du chargeur de démarrage
Rendre la partition Disque bootable
copier MBR extlinux sur celui de la partition Ext
user@grUser-P5Q-E:~$ sudo dd if=/usr/lib/extlinux/mbr.bin of=/dev/sde1
Installer extlinux sur le disque cible
Installer EXTLINUX dans le répertoire ou sera configurer le menu de boot
user@grUser-P5Q-E:~$ sudo extlinux -i /tmp/disk/isolinux user@grUser-P5Q-E:~$ sudo cp /usr/lib/syslinux/chain.c32 /tmp/disk/isolinux
Si le répertoire /tmp/disk/isolinux contient le fichier ldlinux.sys : tout c'est bien passé !!!
Mettre un drapeau "boot" d'amorce sur la partition Cible
Vérification des drapeaux :
sudo fdisk -l /dev/sdx
Dans la réponse, se sont les lignes suivantes qui nous intéressent :
Périphérique Amorce Début Fin Blocs Id Système /dev/sdx1 2048 18202623 9100288 83 Linux /dev/sdx2 18202624 71102463 26449920 83 Linux /dev/sdx3 71103751 625141759 277019004+ 5 Étendue /dev/sdx5 71103753 619000514 273948381 b W95 FAT32
Si aucune * astérisque n’apparaît alors aucune des partitions ne contient de drapeau de boot .
Ajouter un drapeau de boot
Fdisk
user@grUser-P5Q-E:~$ -P5Q-E:~$ sudo fdisk /dev/sde
Entrer commande a
la machine demande le numéro de partition à marque comme bootable:
Numéro de partition (1-5): 1
Entrer commande w (pour finaliser) l'écriture sur le disque
gparted (méthode graphique alternative)
Lancer Gparted
Sélectionner la clef ou le DDExterne Dans le menu se rendre à Partitions > Gérer les drapeaux.
Cocher la case en face de boot, comme l'image suivante nous le montre, puis refermer
Configurer le menu de démarrage extlinux.conf du Live-USB
Conditions de démarrage d'extlinux :
- Le répertoire de démarrage doit comporter:
- Un menu de démarrage : extlinux.conf
- Un fichier vesamenu.c32
Si ces conditions ne sont pas respectée votre Live-Usb ne démarrera pas !
Exemple Menu extlinux.conf d'une Live-USB personnalisée
obtenu à partir d'une ISO Remastersys clone de mon système ubuntu 12.04 LTS precise)
default vesamenu.c32 prompt 0 timeout 100 menu title 2012maiUbuntu12.04 menu background splash.png menu color title 1;37;44 #c0ffffff #00000000 std label persistent menu label persistent - boot the Live System in Persistent Mode kernel /casper/vmlinuz append file=/cdrom/preseed/custom.seed boot=casper initrd=/casper/initrd.gz persistent quiet splash -- label live menu label live - boot the Live System kernel /casper/vmlinuz append file=/cdrom/preseed/custom.seed boot=casper initrd=/casper/initrd.gz quiet splash -- label xforcevesa menu label xforcevesa - boot Live in safe graphics mode kernel /casper/vmlinuz append file=/cdrom/preseed/custom.seed boot=casper xforcevesa initrd=/casper/initrd.gz quiet splash -- label install menu label install - start the installer directly kernel /casper/vmlinuz append file=/cdrom/preseed/custom.seed boot=casper only-ubiquity initrd=/casper/initrd.gz quiet splash -- label memtest menu label memtest - Run memtest kernel /install/memtest append - label hd menu label hd - boot the first hard disk localboot 0x80 append -
Exemple Menu extlinux.conf SystemRecueCd d'une Live-USB
label rescue64_bits direct Xorg menu label rescue64_bits direct Xorg kernel /SystemRescueCd/isolinux/rescue64 append initrd=/SystemRescueCd//isolinux/initram.igz subdir=/SystemRescueCd/ setkmap=fr dostartx - label rescue32_bits direct Xorg menu label rescue32_bits direct Xorg kernel /SystemRescueCd/isolinux/rescue32 append initrd=/SystemRescueCd/isolinux/initram.igz subdir=/SystemRescueCd/ setkmap=fr dostartx - label rescue64_bits Xorg RAM menu label rescue64_bits Xorg RAM kernel /SystemRescueCd/isolinux/rescue64 append initrd=/SystemRescueCd//isolinux/initram.igz subdir=/SystemRescueCd/ setkmap=fr dostartx docache- label rescue32_bits Xorg RAM menu label rescue32_bits Xorg RAM kernel /SystemRescueCd/isolinux/rescue32 append initrd=/SystemRescueCd/isolinux/initram.igz subdir=/SystemRescueCd/ setkmap=fr dostartx docache- label rescue64_bits direct altker Xorg menu label rescue64_bits direct altker Xorg kernel /SystemRescueCd/isolinux/altker64 append initrd=/SystemRescueCd/isolinux/initram.igz subdir=/SystemRescueCd/ setkmap=fr dostartx- label rescue32_bits direct altker Xorg menu label rescue32_bits direct altker Xorg kernel /SystemRescueCd/isolinux/altker32 append initrd=/SystemRescueCd/isolinux/initram.igz subdir=/SystemRescueCd/ setkmap=fr dostartx- label rescue64_bits console in high resolution menu label SystemRescue-64bits console in high resolution kernel /SystemRescueCd/isolinux/altker64 append initrd=/SystemRescueCd/isolinux/initram.igz subdir=/SystemRescueCd/ setkmap=fr nomodeset vga=791 label rescue32_bits console in high resolution menu label SystemRescue-32bits console in high resolution kernel /SystemRescueCd/isolinux/altker32 append initrd=/SystemRescueCd/isolinux/initram.igz subdir=/SystemRescueCd/ setkmap=fr nomodeset vga=791 MENU SEPARATOR LABEL rescue64_6 MENU LABEL Boot an exising Linux OS 64 bit installed on the disk LINUX /SystemRescueCd/isolinux/rescue64 INITRD /SystemRescueCd/isolinux/initram.igz APPEND root=auto TEXT HELP Detect partition where linux is installed and boot from it. You can use this to boot Linux if your boot loader (eg: Grub) is broken or has been removed by another OS. ENDTEXT LABEL rescue32_6 MENU LABEL Boot an exising Linux OS 32 bit installed on the disk LINUX /SystemRescueCd/isolinux/rescue32 INITRD /SystemRescueCd/isolinux/initram.igz APPEND root=auto TEXT HELP Detect partition where linux is installed and boot from it. You can use this to boot Linux if your boot loader (eg: Grub) is broken or has been removed by another OS. ENDTEXT MENU SEPARATOR LABEL Boot from first hard disk MENU LABEL *) Boot from first hard disk kernel /SystemRescueCd/isolinux/chaine.c32 append hd0 TEXT HELP Boot local OS installed on first hard disk ENDTEXT LABEL Boot from second hard disk MENU LABEL *) Boot from second hard disk kernel /SystemRescueCd/isolinux/chaine.c32 append hd1 TEXT HELP Boot local OS installed on second hard disk ENDTEXT MENU SEPARATOR MENU TITLE A) Run system tools from floppy disk image... LABEL memtest MENU LABEL MEMTEST: Memory test using Memtest86+ kernel /SystemRescueCd/bootdisk/memtestp append - TEXT HELP Use this tool if you suspect your RAM from being damaged. Damaged memory can explain crashes or unexpected bahaviors on stable operating systems. ENDTEXT LABEL ntpass MENU LABEL NTPASSWD: Reset or edit Windows passwords kernel /SystemRescueCd/ntpasswd/vmlinuz append rw vga=1 initrd=/SystemRescueCd/ntpasswd/initrd.cgz,/SystemRescueCd/ntpasswd/scsi.cgz TEXT HELP This tool can be used to reset windows users accounts. It works with all windows user accounts including the administrator. You can use this tool if you forgot the administrator's password. ENDTEXT LABEL grubdisk MENU LABEL SGD: Super Grub2 Disk kernel /SystemRescueCd/isolinux/memdisk append initrd=/SystemRescueCd/bootdisk/grubdisk.img floppy raw LABEL freedos MENU LABEL FREEDOS: Clone of the MSDOS Operating System kernel /SystemRescueCd/isolinux/memdisk append initrd=/SystemRescueCd/bootdisk/freedos.img floppy TEXT HELP FreeDOS can be used to execute DOS programs such as BIOS upgrade tools ENDTEXT LABEL netboot MENU LABEL NETBOOT: Boot from the network kernel /SystemRescueCd/isolinux/netboot append - LABEL hdt MENU LABEL HDT: recent hardware diagnostics tool kernel /SystemRescueCd/isolinux/memdisk append initrd=/SystemRescueCd/bootdisk/hdt.img floppy TEXT HELP This diagnostic tool will give you information about your hardware ENDTEXT LABEL aida MENU LABEL AIDA: old hardware diagnostics tool kernel /SystemRescueCd/isolinux/memdisk append initrd=/SystemRescueCd/bootdisk/aida.img floppy LABEL gag MENU LABEL GAG: Graphical Boot Manager kernel /SystemRescueCd/isolinux/memdisk append initrd=/SystemRescueCd/bootdisk/gag.img floppy LABEL dban MENU LABEL DBAN: erase all data from the disk kernel /SystemRescueCd/bootdisk/dban.bzi append nuke="dwipe" silent LABEL mhdd MENU LABEL MHDD: Low-level Hard Drive diagnostic tool kernel /SystemRescueCd/isolinux/memdisk append initrd=/SystemRescueCd/bootdisk/mhdd.img floppy
Exemple Menu extlinux.conf permettant de lancer d'autres sous menus
UI vesamenu.c32 prompt 0 timeout 100 menu title usb_disk menu color title 1;37;44 #c0ffffff #00000000 std menu separator include AlbUbuntu.cfg menu separator include kubuntu_net.cfg menu separator include ubuntu_install_net.cfg menu separator include ubuntu_serveur.cfg menu separator include ../SystemRescueCd/isolinux/isolinux.cfg label memtest menu label memtest - Run memtest kernel /install/memtest append - label hd menu label hd - boot the first hard disk localboot 0x80 append -
Pour démarrer Windows, depuis le Live-USB
Editer le menu extlinux.conf et lui ajouter les lignes suivantes :
label Windows menu label windows -démarrer windows depuis le live-Usb kernel chain.c32 append sda1
Personnaliser l'image de fond du menu de démarrage
Vesamenu.c32 extlinux permet d'afficher de jolies images au format JPG ou PNG au démarrage d'extlinux. Il est conseillé de commencer par une résolution 640x480. (Attention: JPG progressif n'est pas pris en charge par extlinux)
Une fois que vous avez votre image, copiez-la dans le répertoire du menu de démarrage (/media/usbdisk/isolinux/) boot / extlinux / et nommer la splash.png ou splash.jpg.
Démarrer le LIve-USB et tester
Il est nécessaire de savoir si son BIOS permet de démarrer des LIve-USB: - (Si le BIOS de l'ordi ne le permet pas, il est possible de graver une ISO qui le permet depuis le CD/DVD rom PLoP). - Sinon sélectionner le bon média de démarrage avec le BIOS au moment du boot de la machine.
Conclusion
Extlinux permet de créer un Live-USB.
Comparaison Extlinux et Unetbootin :
Comparer à Unetbootin, Extlinux "à la mano" est plus lent. Par contre les possibilités de personnalisations des menus sont plus étendues.
Comparaison Extlinux et Multisystem :
Multisystem reste un outil très efficace dont le seul inconvénient est d'avoir un démarrage plus lent.
Comparaison Extlinux et Syslinux :
Ils sont assez similaires, la différence est d'avantage liée au format des partitions utilisées pour le démarrage:
Fat32 est montable sur tous les systèmes sans qu'il soit nécessaire de lui donner les droits d'écriture. La taille des fichiers ne peut par contre dépassée 4.3 Go.
Ext2,3,4 nécessite un montage et une modification des droits d'écriture pour pouvoir écrire dessus.
Voir aussi
En anglais:
En français:
- usb-creator (pour les partitions en fat32)
Documentation sur le sujet Live-USB: