Ceci est une ancienne révision du document !


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 unepartition ext3 bootable ce qu'il parvenait à faire auparavant

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

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

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

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érifier que la partition est bien bootable

Dans le terminal la commande suivante donne un aperçu des partitions du disque usb /dev/sdx

sudo fdisk -l /dev/sdx

en réponse, nous obtenons quelque chose qui ressemble à ceci :

u@ubuntu:~$ sudo fdisk -l /dev/sdx

Disk /dev/sdx: 320.1 GB, 320072933376 bytes
255 têtes, 63 secteurs/piste, 38913 cylindres, total 625142448 secteurs
Unités = secteurs de 1 * 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d'E/S (minimale / optimale) : 512 octets / 512 octets
Identifiant de disque : 0x00000e56

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

Les entrées de la table de partitions ne sont pas dans l'ordre du disque
u@ubuntu:~$ 

Aucune des partitions n'est marquée comme bootable (si elle sdx1 était bootable une * apparaîtrait dans la colonne Amorce .

Cas où ma partition n'est pas bootable

Pour remédier à ceci est est nécessaire d'utiliser Gparted.

Si Gparted n'est pas encore installé, suivre le lien suivant pour l'installer depuis la logithèque Ubuntu gparted.

Lancer Gparted Sélectionner le disque. 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

Cas où ma partition est bootable

Passer à l'étape suivante

Mise en place du chargeur d'amorçage

Copie du mbr.bin extlinux sur le bloc d'amorçage du disque ou de la clef Usb.

Est-ce qu'en installant extlinux sur une clef, il n’installe pas automatiquement le mbr.bin d'extlinux ? Je n'ai pu vérifier pour l'instant si cette étape est ou si elle n'est pas indispensable ! Si vous avez la réponse à cette question n'hésitez pas à contribuer à cette page. note du 7 juin 2012

Dans le terminal on passe la commande suivante Attention des précautions sont à prendre avec **dd** voir avertissement du début de page:

**dev/sdx** est bien-entendu à remplacer par la valeur /dev/sd de votre disque cible :
u@ubuntu:~$ sudo dd if=/usr/lib/extlinux/mbr.bin of=/dev/sdx

On obtient une réponse qui ressemble à ceci dans ça marche :

0+1 enregistrements lus
0+1 enregistrements écrits
440 octets (440 B) copiés, 0,00444555 s, 99,0 kB/s
u@ubuntu:~$ 

Ne vous inquiétez pas - cela n'écrasera pas votre disque entier, seule la partie du bloc d'amorçage.

À ce stade, vous devriez être prêt à démarrer à l'aide extlinux. Mais vous ne verrez pas de menu de démarrage pour le moment.

Conditions démarrage d'extlinux :

  1. Le menu de démarrage doit s'appeler extlinux.conf
  2. Le menu de démarrage doit être placé dans le répertoire de démarrage - dans notre exemple, c'est : isolinux. Cf. début de la page
  3. Le répertoire de démarrage doit comporter un fichier vesamenu.c32
Si c'est conditions ne sont pas respectée votre LIve-Usb ne démarrera pas !

Copier vesamenu.c32 dans le répertoire du menu démarrage de la clef USB

sudo cp /usr/lib/syslinux/vesamenu.c32  /media/usbdisk/isolinux

Creation de menu extlinux.conf

Exemple de menu extlinux.conf :

(Menu personnalisé d'un Live-Usb obtenu à partir d'une ISO Remastersys clone de mon système ubuntu 12.04 LTS precise)

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

Pour démarrer Windows, depuis le Live-USB

Copier chain.c32 dans le répertoire de démarrage :

 sudo cp /usr/lib/syslinux/chain.c32 /media/usbdisk/isolinux/

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.

Unetbootin permet de le faire plus rapidement et automatiquement.

multisystème (anciennement multiboot) permet aussi de créer un LIve-USB mais basé sur le grub (moins rapide au démarrage) et des partitions fat32 (c'est très bien fat32 montable sur tous les systèmes qu'il soit nécessaire de lui donner les droits pour qu'il soit possible d'y écrire ou d'y lire, la seule limitation c'est pour les fichiers de plus de 4.3 Go. Fat32 peut donner aussi des partitions nécessitant une défragmentation).

  • extlinux.1388778135.txt.gz
  • Dernière modification: Le 03/01/2014, 20:42
  • par albanmartel