Recréer un live sur CD ou image USB de Archlinux, c'est possible en utilisant un programme nommé archiso.

Installation

Le paquet est présent sur le dépôt extra, mais à l'heure actuelle, il est périmé. Nous pouvons néanmoins utiliser la version git:

yaourt -S archiso-git

Cette page a été testé avec la version 20091207-1 d'archiso-git

Création de l'image

archiso fournit des exemples de configurations pour automatiser la création d'une image dans /usr/share/archiso/configs, mais selon l'architecture, le noyau, etc., il se peut qu'il y ait une erreur. Pour en être sûr, nous allons passer en revue les différentes étapes servant à créer une image.
Cette dernière est créé avec les deux commandes suivantes:

mkarchiso -p "paquets" create "répertoire de travail"
#Un minimum d'action est nécessaire pour configurer le répertoire de travail.
mkarchiso iso "répertoire de travail" "nom de l'image"


Paquets

Les paquets sont à passer à la commande de la même façon qu'il sont passés à pacman, tout paquet pris en compte par pacman peut être utilisé, ce qui inclut également les groupes:

mkarchiso -p "base aufs2 aufs2-util" create traitement

créera un répertoire de travail traitement dans lequel seront installés tous les paquets du groupe base plus grub.

# mkarchiso -p "base aufs2 aufs2-util" create traitement
mkarchiso : Configuration Settings
        working directory:   traitement
               image name:   none
====> Creating working directory: traitement
====> Installing packages to 'traitement/root-image/'
Cleaning up what we can


# tree -L 2
.
`-- traitement
    |-- README
    |-- iso
    |-- isomounts
    `-- root-image

Chargeur de démarrage

Le script utilise isolinux comme chargeur de démarrage, néanmoins, il est toujours possible d'utiliser grub, selon le chargeur choisi:

Grub

La configuration doit se faire dans le répertoire iso du répertoire de travail, commençons par y copier la configuration minimal de grub plus l'image du noyau:

cp -a traitement/root-image/boot traitement/iso/
cp -a traitement/root-image/usr/lib/grub/i386-pc/* traitement/iso/boot/grub/


Il faut maintenant modifier le fichier traitement/iso/boot/grub/menu.lst:

timeout 30
default 0
color light-blue/blue black/light-grey

title  Boot Arch Linux Live CD
kernel /boot/vmlinuz26 lang=fr locale=fr_FR.UTF-8 ramdisk_size=75% archisolabel=ARCHISO
initrd /boot/archiso.img

Isolinux

archiso-git dépend de syslinux, ce dernier devrait donc être installé, on va s'en servir pour comme chargeur de démarrage du CD:

cp -a traitement/root-image/boot traitement/iso/
mkdir traitement/iso/boot/isolinux
cp -a /usr/lib/syslinux/isolinux.bin traitement/iso/boot/isolinux/


Puis créez un fichier traitement/iso/boot/isolinux/isolinux.cfg:

default live
prompt 1
timeout 300
label live
kernel /boot/vmlinuz26
append initrd=/boot/archiso.img  lang=fr locale=fr_FR.UTF-8 ramdisk_size=75% archisolabel=ARCHISO


isomounts

Ce fichier présent par défaut dans le répertoire de travail comporte la description du montage de la partition racine sous la forme:

<img> <arch> <mount point> <type>


Par défaut, l'option qui peut poser problème est l'architecture si vous êtes en x86_64, si c'est le cas, il suffit de modifier i686 par x86_64:

root-image.sqfs x86_64 / squashfs


Ce fichier peut contenir plusieurs lignes représentant ce que va contenir la racine, l'ordre est important, les priorités vont en décroissant. Par exemple, si vous rajoutez des fichiers à votre image en vous servant d'overlay, votre fichier doit ressembler à ça:

overlay.sqfs x86_64 / squashfs
root-image.sqfs x86_64 / squashfs


Image initrd

Pour pouvoir démarrer l'image construite, il nous faut construire une image initrd en incluant les hooks nécessaires, créons un fichier mkinitcpio.conf:

HOOKS="base archiso-early udev archiso pata scsi sata usb fw filesystems usbinput"


puis, générons l'image:

mkinitcpio -c "$(pwd)"/mkinitcpio.conf -b "traitement/root-image" -k `uname -r` -g "traitement/iso/boot/archiso.img"


Couche supplémentaire (overlay)

Cette partie concerne tout ce qui peut être ajouté ou modifié dans l'image finale.
Le principe est assez simple, mkarchiso recherche tout les répertoires présents dans le <répertoire de travail> et s'ils sont différents de iso, en fabrique une image squashfs.

Si par exemple, on veut modifier le /etc/rc.conf:

mkdir -p traitement/overlay/etc
cp traitement/root-image/etc/rc.conf traitement/overlay/etc


Modifiez le, et rajoutez ceci en premier dans isomounts:

overlay.sqfs x86_64 / squashfs


A la dernière étape, un fichier overlay.sqfs sera crée dans <répertoire de travail>/iso.

Création

Reste plus qu'à exécuter:

mkarchiso iso traitement exemple.iso


Ce qui donne:

# mkarchiso iso traitement exemple.iso
mkarchiso : Configuration Settings
        working directory:   traitement
               image name:   exemple.iso
====> Generating SquashFS image for 'traitement/root-image'
Creating SquashFS image. This may take some time...
Image creation done in 1.05 minutes.
====> Generating SquashFS image for 'traitement/overlay'
Creating SquashFS image. This may take some time...
Image creation done in 0.00 minutes.
====> Making bootable image
Creating ISO image...


Pour grub, il y aura une erreur:

Creating ISO image...
genisoimage: Uh oh, I cant find the boot catalog directory 'boot/isolinux'!
/usr/bin/isohybrid: cannot open exemple.iso: Aucun fichier ou dossier de ce type


Il faudra lancer:

LABEL="ARCH_$(date +%Y%m)"

mkisofs -r -l -b boot/grub/stage2_eltorito -uid 0 -gid 0 \
        -input-charset utf-8 \
        -no-emul-boot -boot-load-size 4 -boot-info-table \
        -V "$LABEL" -o exemple.iso traitement/iso
isohybrid exemple.iso

Et voilà il n'y a plus qu'à tester:

qemu-system-x86_64 -enable-kvm -cdrom exemple.iso -k fr -m 396 -boot d

Options à modifier selon votre système.



Grâce à l'utilisation d'isohybrid, l'image peut tout aussi bien servir à graver un CD qu'à copier (à l'aide de dd) sur une clé USB.

Exemples fournis avec le paquet

Trois exemples sont fourni avec le paquet dans /usr/share/archiso/configs/:

  • defaults est plus ou moins celui qu'on a détaillé plus haut.
  • install-iso permet de construire les images d'installations 2009.02
  • xfce4 crée un live cd basé sur xfce.

Ils suivent tous le même modèle, les fichiers modifiés sont placés à la racine puis copiés dans le répertoire de travail au fur et à mesure des étapes à l'aide d'un Makefile, mais à cause de la perpétuelle évolution des paquets ou de votre architecture, aucun ne fonctionne directement, il faut modifier certaines choses en se basant sur les étapes expliquées avant.

A vous d'analyser plus en détail les exemples ;)

 
howto/live.txt · Dernière modification: 2010/02/10 17:27 par tuxce
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki