Table of Contents
Créer une carte Compact Flash bootable d'Alpine Linux
Table of Contents
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.