OpenBSD : Slackware guest @vmd
Slackware un invité de marque
Déployer une vm “Slackware” sur un hôte OpenBSD, quelle idée !
Objectif:
- Déploiement de vmd, cahier des charges :
- les VMs communiquent sur un vlan via un vswitch dédié
- le vlan possède un adressage réseau privé et non routable
- l’hôte openbsd effectue le routage via translation d’adresse (nat)
- Démarrer via GRUB2 en mode “serial”
- Définier le /etc/fstab pour utiliser les UUIDs
Slackware
Télécharger l’image usbboot.img
Les machines virtuelles hébergées par le Virtual Machine Daemon d’OpenBSD, sont accessibles uniquement en mode série, et en Secure SHell une fois l’installation finalisée. Il est donc nécessaire ici de modifier les options de démarrage de l’image usbboot.img :
Monter l’image :
doas vnconfig Downloads/usbboot.img
doas mount -t msdos /dev/vnd0c /mnt/tmp
doas vim /mnt/tmp/syslinux.cfg
Ajouter l’option console serie à l’image boot :
append initrd=initrd.img load_ramdisk=1 prompt_ramdisk=0 rw printk.time=0 \
nomodeset SLACK_KERNEL=huge.s console=ttyS0,115200
Démonter l’image usb:
doas umount /mnt/tmp
doas vnconfig -u /dev/vnd0c
Démarrer la vm:
doas vmctl start -c -d Downloads/usbboot.img \
-d /data/vmm/slack.qcow2 -i 1 -m 1G -n vswitch0 slack_vm
Suivre la procédure d'installation de slackware :
- Effectuer entrée pour le boot
- Tapper 1 pour le choix du clavier
- Partitionner le disk via (c)fdisk
- Lancer le setup
- Formatter et définir les points de montage
- selectionner les groupes de paquets
- (…)
- Ne pas reboot via le setup, sortir.
Gestion du démarrage
Identifier les UUIDs
root@slackware:/# blkid
/dev/vda2: UUID="232a3fb9-7d70-4001-9ce3-43c965d4e9c3" BLOCK_SIZE="4096" TYPE="ext2" PARTUUID="88c8ad10-02"
/dev/vda3: UUID="40652c15-b514-491d-a236-b9bbc909617f" BLOCK_SIZE="4096" TYPE="ext2" PARTUUID="88c8ad10-03"
/dev/vda: SEC_TYPE="msdos" LABEL_FATBOOT="USBSLACK" LABEL="USBSLACK" UUID="FD59-74E1" BLOCK_SIZE="512" TYPE="vfat"
/dev/vda1: UUID="24dd7ba6-cac6-4161-ae6e-1e0caa66cce1" TYPE="swap" PARTUUID="88c8ad10-01"
Monter dans la cage /mnt où s’est effectuée l’installation. /dev/vda étant le disk virtuel.
root@slackware:/# chroot /mnt
Modifier le fstab ainsi:
root@slackware:/# vim /etc/fstab
# /dev/vda1
UUID=24dd7ba6-cac6-4161-ae6e-1e0caa66cce1 swap swap defaults 0 0
# /dev/vda2
UUID=232a3fb9-7d70-4001-9ce3-43c965d4e9c3 / ext2 defaults 1 1
#/dev/vda3
UUID=40652c15-b514-491d-a236-b9bbc909617f /home ext2 defaults 1 2
#/dev/cdrom /mnt/cdrom auto noauto,owner,ro,comment=x-gvfs-show 0 0
#/dev/fd0 /mnt/floppy auto noauto,owner 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
proc /proc proc defaults 0 0
tmpfs /dev/shm tmpfs nosuid,nodev,noexec 0 0
Modifier /etc/default/grub
vim /etc/default/grub
GRUB_TERMINAL="serial"
GRUB_SERIAL_COMMAND="serial --unit=0 --speed=115200"
GRUB_CMDLINE_LINUX="console=tty0 console=ttyS0,115200"
Installer GRUB
root@slackware:/# grub-install /dev/vdb
Installing for i386-pc platform.
Installation finished. No error reported.
Construire le bootloader grub2:
root@slackware:/# grub-mkconfig -o /boot/grub/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-huge-5.10.5
Found initrd image: /boot/initrd.gz
Found linux image: /boot/vmlinuz-huge
Found initrd image: /boot/initrd.gz
Found linux image: /boot/vmlinuz-generic-5.10.5
Found initrd image: /boot/initrd.gz
Found linux image: /boot/vmlinuz-generic
Found initrd image: /boot/initrd.gz
done
Sortir du chroot, arretter la vm et demarrer depuis le vm.conf:
root@slackware:/# exit
exit
root@slackware:/# halt -d 0
The system is going down NOW!
Sent SIGTERM to all processes
Sent SIGKILL to all processes
Requesting system halt
reboot: System halted
A ce stade, sur l’hote OpenBSD, [ctrl-c] + demarrer normalement via vmctl
vmctl start -c slack_vm