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.

Cette documentation est là pour mieux comprendre l'utilité et le fonctionnement d'extlinux

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

Cette manipulation est réservé au Disque Dur Externe USB.

Elle est déconseillée sur un Disque dur interne : elle peut en corrompre le démarrage .

L'ensemble de la procédure ci-dessous est à revoir et ne fonctionne plus

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 https://tldp.org/HOWTO/Partition/fdisk_partitioning.html

Tuto Ubuntu Installation d'Ubuntu : partitionnement manuel

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

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é !!!

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

Conditions de démarrage d'extlinux :

  1. Le répertoire de démarrage doit comporter:
  2. Un menu de démarrage : extlinux.conf
  3. 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

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 -
L'option "persistent" dans le menu suivant permet au Live-USB de démarrer un fichier ou une partition nommée "casper-rw" fichier/partition de persistance

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

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.

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.

Extlinux permet de créer un Live-USB.

Il ne permet par contre pas de lancer des ISO sans les décompresser

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.

  • extlinux.txt
  • Dernière modification: Le 03/03/2023, 19:00
  • par L'Africain