User Tools

Site Tools


prive:alpine-xen

Créer une carte Compact Flash bootable d'Alpine Linux

Ce guide va montrer comment effectuer une installation de Xen dom0 sur une carte SD ou USB, de manière à avoir votre dom0 sur tmpfs. Cela a des avantages, mais il faut un endroit pour stocker les invités (machines virtuelles) et un serveur syslog pour rediriger les logs.

Ce processus s'applique à Alpine Linux 1.9.0 ou ultérieur, et aboutira à une installation de style run-from-ram.

Prérequis

  • Alpine CD-ROM (Télécharger un fichier. Iso contenant une version alpineLinux.)
  • Un ordinateur avec lecteur de carte CF
  • Une Carte CF

Certains lecteurs de cartes CF ont des problèmes avec les cartes CF plus rapides sur le marché. Si on rencontre des problèmes pour démarrer la carte CF même après avoir vérifié les paramètres du BIOS, il faudra peut-être utiliser une ancienne carte.

Démarrer l'ordinateur à partir du CD-ROM Alpine Linux.

Cette étape peut nécessiter des modifications aux paramètres du BIOS pour sélectionner le démarrage à partir du CD.

Se connecter avec le nom d'utilisateur root. Aucun mot de passe n'est nécessaire.

Si on n'est pas en mesure de démarrer à partir du CD, une autre option est de démarrer à partir d'une installation Alpine régulière, et monter manuellement l'image ISO dans /media/cdrom.

Déterminer le nom de périphérique de la carte CF

Déterminer le nom de votre ordinateur utilise pour votre carte CF.

Après avoir inséré la carte CF, exécuter la commande suivante:

dmesg

Cette commande devrait retourner le nom de votre carte CF, probablement en commençant par “sd”. (Par exemple: «sda»).

Le reste de ce document suppose que votre carte CF est montée dans /dev/sda

Il faut être très prudent à ce sujet, pour ne pas effacer par erreur votre disque dur si c'est sur /dev/sda

Formatage de la carte CF

Lancer fdisk (remplacer sda par le nom de votre carte CF):

fdisk /dev/sda  

* Créer une nouvelle table de partition (Facultatif) avec une partition FAT32

  • d Supprime toutes les partitions (cela peut nécessiter quelques étapes)
  • n Créer une nouvelle partition
  • P Une partition primaire
  • 1 partition numéro 1
    • Utiliser par défaut pour le premier et le dernier cylindre (appuyer simplement sur [ENTER] à deux reprises).
  • t Modifier le type de partition
  • c type de partition (Win95 FAT32/LBA)
  • Vérifier que la partition principale est bootable
  • p Imprimer la liste des partitions
  • S'il n'y a pas '*' à côté de la première partition, suivre les étapes suivantes:
    • Faire une partition amorçable (drapeau de démarrage de set)
    • 1 partition numéro 1
  • w Ecrire les modifications sur l'appareil

Ajouter Alpine Linux à la carte CF

Pour démarrer à partir de votre carte CF, copier le contenu du CD-ROM de la carte CF et la rendre bootable. Ces deux opérations peuvent être automatisées avec l'outil setup-bootable ou peut être fait manuellement.

Si les commandes suivantes échouent en raison de “No such file or directory”, on peut avoir à retirer et réinsérer la carte CF, ou même redémarrer, pour faire monter /dev/sda1

Installation automatisée

Lorsqu'on utilise Alpine Linux 1.10.4 ou plus récent, on peut utiliser cette section pour terminer l'installation. Sinon, suivre les étapes manuelles ci-dessous.

Note: La partition cible doit être formatée. Utiliser la commande mkdosfs décrite dans les étapes manuelles ci-dessous si nécessaire.

Exécuter le script setup-bootable pour ajouter Alpine Linux dans la carte CF et la rendre bootable (remplacer sda avec le nom de votre carte CF):

setup-bootable /media/cdrom /dev/sda1

Si on effectue l'installation sur une clé USB, il faut peut-être modifier le fichier syslinux.cfg pour indiquer usbdisk comme décrit ci-dessous, ou on aura d'éventuels problèmes lors du boot ainsi qu'avec le cahce des paquets. Les versions récentes de l'installation amorçable préciseront le device alpine_dev en utilisant un UUID, donc il devrait fonctionner correctement par défaut.

Installation Manuelle

  • (optionnel) - Si on a créé une nouvelle partition ci-dessus, formater la carte CF avec un système de fichiers FAT32 (remplacer sda avec le nom de votre carte CF): apk add dosfstools mkdosfs -F32 /dev/sda1
  • Installer syslinux et MBR (remplacer sda avec le nom de votre carte CF): apk add syslinux dd if=/usr/share/syslinux/mbr.bin of=/dev/sda syslinux /dev/sda1
  • Copier les fichiers sur la carte CF (remplacer sda avec le nom de votre carte CF): mkdir -p /media/sda1 mount -t vfat /dev/sda1 /media/sda1 cd /media/cdrom cp -a .alpine-release * /media/sda1/ umount /media/sda1

Traitement des Problèmes

Faux nom de l'appareil

Si on ne peut pas démarrer à partir de la carte CF et qu'on a quelque chose comme:

Mounting boot media failed.
initramfs emergency recovery shell launched. Type 'exit' to continue boot

alors il est probable que le nom du périphérique dans syslinux.cfg est erroné. Remplacer le nom de l'appareil dans cette ligne:

append initrd=/boot/grsec.gz alpine_dev=**usbdisk**:vfat modules=loop,cramfs,sd-mod,usb-storage quiet

avec le nom du périphérique approprié.

  • Pour démarrer à partir USB, le nom de l'appareil doit être «usbdisk» (voir ci-dessus)
  • Pour d'autres options, on peut exécuter cat /proc/partitions pour voir les disques disponibles (à savoir «sda» ou «sdb»)

Les systèmes de fichiers non-FAT32

Lorsque la carte CF est formatée avec un système de fichiers autre que FAT32, on peut avoir à spécifier les modules du système de fichiers nécessaires dans les paramètres de démarrage.

Pour ce faire, installer la carte CF et changer la ligne de fichier syslinux.cfg de

append initrd=/boot/grsec.gz alpine_dev=usbdisk:**vfat** modules=loop,cramfs,sd-mod,usb-storage quiet

à

append initrd=/boot/grsec.gz alpine_dev=usbdisk:**ext3** modules=loop,cramfs,sd-mod,usb-storage,**ext3** quiet

dans le cas d'une partition formatée ext3.

Une procédure similaire pourrait s'appliquer à d'autres systèmes de fichiers (si elles sont soutenues par syslinux et le noyau Alpine Linux).

Support DMA1) Beaucoup de lecteurs de carte CF ne prennent pas correctement en charge DMA , de sorte qu'il faudra peut-être ajouter nodma à la ligne append du fichier syslinux.cfg.

Alpine Linux a des applications spéciales qui peuvent aider à le configurer, par exemple:

* setup-alpine: Configure toutes les options de base sur votre Alpine Linux
* setup-acf: (nommé setup-webconf avant Alpine 1.9 beta 4) Configure (ACF=webconfiguration) de sorte que l'on puisse gérer le système par https

Il suffit de taper l'une des commandes ci-dessus sur la console et d'appuyer sur Entrée pour exécuter le script.

Paramétrage

Une fois qu'on a terminé l'installation Alpine Linux sur l'appareil, démarrer à partir de celui-ci et configurer votre système nouvellement installé:

On peut avoir à éditer le fichier /etc/apk/repositories et changer la première ligne afin qu'elle pointe vers /media/usb/apks.

Setup-alpin
[...]
Update apk

Installation de Xen

Maintenant qu'on a un système correctement configuré, il est temps d'installer Xen:

Apk add Xen

Maintenant, on a Xen installé, modifier le bootloader USB afin de charger le noyau Xen. La première étape consiste à remonter /media/usb avec des autorisations en écriture:

On peutavoir à utiliser /media/UUID=XXX-XXXX au lieu de /media/USB, consulter /proc/mounts pour détecter où est monté la carte usb/cf.

Mount-o remount,rw /media/usb

Ensuite, copier le noyau Xen et mboot.c32 dans la partition de boot usb:

cp /boot/xen.gz /media/usb/boot/
cp /boot/mboot.c32 /media/usb/boot/

Maintenant, qu'on a tous les fichiers nécessaires pour démarrer Xen depuis l'USB, il est temps de changer le bootloader et d'ajouter une entrée Xen, éditer /media/usb/syslinux.cfg et ajouter l'une des entrées suivantes:

Boot normal:

LABEL xen
 KERNEL /boot/mboot.c32
 APPEND /boot/xen.gz --- /boot/grsec alpine_dev=UUID=XXXX-XXXX:vfat modules=loop,squashfs,sd-mod,usb-storage modloop=/boot/grsec.modloop.squashfs --- /boot/grsec.gz

Démarrage de la console:

LABEL xen
 KERNEL /boot/mboot.c32
 APPEND /boot/xen.gz com1=115200,8n1 console=com1 --- /boot/grsec alpine_dev=UUID=XXXX-XXXX:vfat modules=loop,squashfs,sd-mod,usb-storage modloop=/boot/grsec.modloop.squashfs --- /boot/grsec.gz

Changer l'UUID par la bonne valeur, et ajouter les modules nécessaires pour votre système. C'est aussi une bonne idée de vérifier les options de démarrage Xen et mettre au moins dom0mem, dom0vcpuspin et dom0max_vcpus .

L'étape suivante consiste à charger les modules du noyau nécessaires pour Xen, les ajouter dans /etc/modules, donc ils seront chargés automatiquement au démarrage :

echo "xen_netback" >> /etc/modules
echo "xen_blkback" >> /etc/modules
echo "tun" >> /etc/modules

La dernière étape consiste à configurer les services de démarrage, nous aurons besoin de udev et xencommons au moins être lancé au démarrage:

rc-update add udev sysinit
rc-update add udev-postmount
rc-update add xenstored
rc-update add xenconsoled

Si on a besoin de l'outil xm, ajouter également xend aux service de démarrage:

rc-update add xend

Maintenant qu'on a une installation Xen pleinement fonctionnelle, il est temps d'enregistrer les modifications et démarrer avec celle-ci.

lbu commit
reboot

Ne pas oublier de configurer au moins un pont réseau en suivant le guide de Bridge.

1)
DMA (Direct Memory Access) est une méthode alternative de communication aux ports d'E/S qui permet à l'appareil de transférer des données directement, sans l'assistance du processeur. Le système peut demander que les données soient récupérées dans une région de mémoire particulière et poursuivre d'autres tâches jusqu'à ce que les données soient prêtes. Cela peut entraîner une diminution des besoins en CPU pour l'activité d'E/S, ce qui peut améliorer les performances du système
prive/alpine-xen.txt · Last modified: 2025/02/19 10:59 by 127.0.0.1