Outils pour utilisateurs

Outils du site


archlinux:cle_usb_bootable

Créer une clé USB bootable avec "System Rescue CD" et Archbang

Prérequis

  • dosfstools
  • mtools
  • syslinux

Si ils ne sont pas installés :

yaourt -S dosfstools mtools syslinux

Préparation de la clé USB

Partitionnement

On le lance :

fdisk /dev/sd[abcd]

On remplace “[abcd]” par la lettre désignant la clé USB, pour l'identifier, un “dmesg” après l'avoir connecté devrait donner ça (dans l'exemple qui suit, la clé USB est donc /dev/sdb) :

[  285.969276] usbcore: registered new interface driver usb-storage
[  285.969278] USB Mass Storage support registered.
[  286.970933] scsi 7:0:0:0: Direct-Access     Sony     Storage Media    1.00 PQ: 0 ANSI: 2
[  286.971724] sd 7:0:0:0: [sdb] 15663104 512-byte logical blocks: (8.01 GB/7.46 GiB)
[  286.972357] sd 7:0:0:0: [sdb] Write Protect is off
[  286.972364] sd 7:0:0:0: [sdb] Mode Sense: 23 00 00 00
[  286.972967] sd 7:0:0:0: [sdb] No Caching mode page present
[  286.972970] sd 7:0:0:0: [sdb] Assuming drive cache: write through
[  286.977080] sd 7:0:0:0: [sdb] No Caching mode page present
[  286.977086] sd 7:0:0:0: [sdb] Assuming drive cache: write through
[  287.209834]  sdb: sdb4
[  287.209835]  sdb4: <bsd: >
[  287.212232] sd 7:0:0:0: [sdb] No Caching mode page present
[  287.212237] sd 7:0:0:0: [sdb] Assuming drive cache: write through
[  287.212241] sd 7:0:0:0: [sdb] Attached SCSI removable disk

Dans fdisk :

  1. p : Montre la/les partitions existantes
  2. d : Si une partition existe, la supprime, si plusieurs, demande le numéro de partition à supprimer.
  3. n : Créer une partition
    • p : pour “Primaire”
    • 1 : Pour 1ere partition
    • <enter> deux fois, en laissant les champs vides, pour désigner les secteurs de début et de fin

On vient de créer une partition linux qui occupe donc toute la clé USB.

Si l'on souhaite utiliser l'espace libre de la clé pour stocker des données sur une machine windows, il est nécessaire de changer le type de partition est d'opter pour un type FAT, dans ce cas il suffit de choisir :

  1. t : Change le type de partition (le choix de la partition n'est pas proposé si une seul présente)
  2. b : Valide le type “FAT32” (la touche “L” permet d'afficher la liste des types possible)

Une fois terminé on appuie sur la lettre “w” pour écrire notre table de partition. fdisk se terminera automatiquement après l'écriture.

Il est souvent nécessaire à ce stade de déconnecter/reconnecter la clé pour que le systeme voit la nouvelle partition.

Formatage

Si le type FAT32 a été choisi :

mkfs.msdos -F 32 -n LABEL /dev/sdbX

Si le type linux (par défaut) à été choisi :

mkfs.ext3 -n LABEL /dev/sdX

On remplace “LABEL” par le nom de son choix. (le démarrage de Archbang se basant sur le label, il est indispensable d'en mettre un)

On remplace le “X” par le numéro correspondant à la partition à formater /!\ Attention de ne pas formater son disque dur systeme /!\

Installation de syslinux

On commence par monter la clé USB, si besoin on crée un répertoire pour ça :

mkdir /mnt/usb
mount /dev/sd[abcd][1234] /mnt/usb

On crée le répertoire qui va recevoir les fichiers de syslinux :

mkdir /mnt/usb/syslinux

Ensuite on se place dans /usr/lib/syslinux (C'est la que ce trouve les commandes que l'on va executer)

cd /usr/lib/syslinux

On installe syslinux sur la clé :

syslinux -i /dev/sd[abcd][1234] 

On remplace toujours [abcd] [1234] par la lettre désignant le lecteur et le chiffre désignant la partition.

On crée ensuite un MBR valide pour syslinux et on active la partition :

dd conv=notrunc bs=440 count=1 if=mbr.bin of=/dev/sd[abcd]
parted /dev/sd[abcd] set 1 boot on

Attention sur les 2 dernières commande on indique pas le numéro de partion (ex : sdb et non sdb1)

il faut également copier manuellement le fichier “vesamenu.c32”

cp /usr/lib/syslinux/vesamenu.c32 /mnt/usb/syslinux

Et ajouter les lignes suivante dans /mnt/usb/syslinux/syslinux.cfg (on crée le fichier si besoin, vu qu'il sera indispensable par la suite) :

UI vesamenu.c32

MENU TITLE Le titre de son choix
TIMEOUT 50

System Rescue CD

On peut le télécharger sur cette page http://www.sysresccd.org/Download

Un fois l'image ISO récupéré on la monte, en créant un répertoire de montage si besoin :

mkdir /mnt/iso
mount -o loop /chemin/vers/iso/systemrescuecd-x86-2.6.0.iso /mnt/iso/

Une fois monté, on crée le répertoire pour system rescue CD sur la clé USB :

mkdir /mnt/usb/sysrescd

On copie le contenu de l'image iso dans le répertoire que l'on vient de créer (et on regroupe du même coup les différent noyaux et l'image du système dans le même répertoire):

cp /mnt/iso/* /mnt/iso/isolinux/* /mnt/usb/sysrescd/

Maintenant on va ajouter des entrées à syslinux pour pouvoir démarrer System Rescue CD avec ses différentes options possible, et pour ça, on va se servir dans le fichier “isolinux.cfg” qui se trouve désormais dans /mnt/usb/sysrescd/isolinux.cfg .

Le menu de system Rescue CD contient beaucoup d'entrées, sûrement pour s'adapter à tout le monde, mais tout le monde n'utilise au final que quelques entrées.

Ici on va ajouter, à titre d'exemple, les 4 entrées qui sont sûrement les plus couramment utilisé, cependant, System Rescue CD ne se trouvant pas sur la racine de la clé, quelque soit l’entrée qui est reprise, il faut y apporter quelques modifications :

  • Ajouter le chemin absolu du noyau et de l'initrd, “/sysrescd/rescuecd” et “/sysrescd/initram.igz” (indispensable)
  • ajouter l'option “subdir=sysrescd” (indispensable)
  • ajouter l'option “setkmap=fr” (optionnel)

Démarrage standard 32Bits :

LABEL rescuecd_std
MENU LABEL SystemRescueCd: default boot options
LINUX /sysrescd/rescuecd
INITRD /sysrescd/initram.igz
APPEND scandelay=1 subdir=sysrescd setkmap=fr
TEXT HELP
Boot standard 32bit kernel with default options (should always work)
You should use this entry if you don't know which one to use
ENDTEXT

Démarrage et mise en cache (le système est chargé en mémoire et on peut retirer la clé USB après le démarrage)

LABEL rescuecd_docache
MENU LABEL SystemRescueCd: all files cached to memory (docache)
LINUX /sysrescd/rescuecd
INITRD /sysrescd/initram.igz
APPEND scandelay=1 subdir=sysrescd setkmap=fr docache 
TEXT HELP
Boot standard 32bit kernel and run system from RAM (cdrom can be removed)
It requires 512 MB of memory to work and takes some time during the
boot process, but the cdrom can be removed and system will be faster.
ENDTEXT

Idem avec un noyau 64bits :

LABEL rescue64_1
MENU LABEL SystemRescueCd 64Bits with default options
LINUX /sysrescd/rescue64
INITRD /sysrescd/initram.igz
APPEND scandelay=1 subdir=sysrescd setkmap=fr
TEXT HELP
Boot standard 64bit kernel with default options (should always work)
ENDTEXT
LABEL rescue64_2
MENU LABEL SystemRescueCd 64Bits with all files cached to memory
LINUX /sysrescd/rescue64
INITRD /sysrescd/initram.igz
APPEND scandelay=1 subdir=sysrescd setkmap=fr docache
TEXT HELP
Boot standard 64bit kernel and run system from RAM (cdrom can be removed)
It requires 512 MB of memory to work and takes some time during the
boot process, but the cdrom can be removed and system will be faster.
ENDTEXT

Si on veut faire dans le détail, on peut modifier les intitulés après “MENU LABEL” et également françiser les messages d'aides en remplaçant le texte en anglais situé entre les balises “TEXT HELP” et “ENDTEXT”.

J'ai également supprimé la numérotation après “MENU LABEL”, puisque qu'on ne reprend pas les entrées dans l'ordre d'origine de System Rescue CD, et ajouté “64bits” après “SystemRescueCD” pour les 2 entrées de ce type, pour qu'elle soit bien différenciée dans le menu.

Archbang

Pour archbang, c'est un peu plus simple, on télécharge d'abord l'image ici http://archbang.org/download

un fois téléchager on l'a monte (pensez à démonter l'image de systemrescuecd) :

mount -o loop /chemin/vers/image/archbang-2012.04.30-i686.iso /mnt/iso

Ensuite on copie le répertoire “arch” contenu dans l'image sur la clé USB :

cp -R /mnt/iso/arch /mnt/usb/

Ensuite il ne reste plus qu'a récupérer les entrées de syslinux qui se trouve dans “/mnt/iso/arch/boot/syslinux/syslinux.cfg” et de les ajouter à notre fichier “/mnt/usb/syslinux/syslinux.cfg”

Les entrées en question :

LABEL archauto
TEXT HELP
Boot the ArchBang Linux live medium. It allows you to install ArchBang Linux
ENDTEXT
MENU LABEL Boot ArchBang Linux [Xorg autodetect]
LINUX /arch/boot/i686/vmlinuz
INITRD /arch/boot/i686/archiso.img
APPEND archisobasedir=arch archisolabel=LABEL quiet
LABEL arch
TEXT HELP
Try this option if the first doesn't work
ENDTEXT
MENU LABEL Boot ArchBang Linux [Vesa mode]
LINUX /arch/boot/i686/vmlinuz
INITRD /arch/boot/i686/archiso.img
APPEND archisobasedir=arch archisolabel=LABEL quiet xorg=vesa nomodeset

On n'oublie pas pour les 2 entrées de remplacer la valeur de “archisolabel=LABEL” par le label que l'on à indiqué lors du formatage de la clé.

Personnalisation

Si on veut mettre un joli fond à notre menu, il est possible de prendre n'importe qu'elle image, à condition qu'elle soit redimensionné à la taille exacte de 640×480 pixels (peut importe la profondeur de couleur) et d'ajouter la ligne suivant après “TIMEOUT”

MENU BACKGROUND /chemin/vers/image/splash.png
archlinux/cle_usb_bootable.txt · Dernière modification : 2012/09/14 14:42 de sheltem