1168 private links
Ce wiki est destiné au partage de connaissance entre utilisateurs francophones de FreeBSD.
C'est de fait, une tentative de résurrection de feu Diablotins.org, un wiki sur le même thème disparu à la fin des années 2000.
Petite note rapide sur la configuration d'un serveur httpd d'Apache avec PHP et Let's Encrypt pour chiffrer le flux (SSL/TLS).
Prérequis
pkg inst py39-certbot apache24 mod_php80 php80 php80-extensions
Certbot
Générer un certificat avec Certbot
- example.com
- www.example.com
Nécessite qu'un enregistrement DNS (A/alias) pointe vers le serveur pour chaque certificat
certbot certonly --standalone -d example.com,www.example.com
Les certificats sont enregistrés dans /usr/local/etc/letsencrypt/live
Configurer le renouvellement automatique des certificats
Le process de renouvellement ne renouvelle que lorsque c'est nécessaire. Donc il peut être exécuté une fois par jour sans problème.
Ajouter dans la crontab
de root la ligne suivante pour lancer le process tous les jours à 02h50
50 2 * * * /usr/local/bin/certbot renew --pre-hook "service apache24 stop" --post-hook "service apache24 start"
Les options pre-hook
et post-hook
permettent de contrôler l'arrêt et le redémarrage du service Apache avant et après le process de renouvellement.
Apache
Création du répertoire des logs Apache
mkdir /var/log/apache
chmod 750 /var/log/apache
Edition de /usr/local/etc/apache24/httpd.conf
ServerName localhost:80
LoadModule rewrite_module libexec/apache24/mod_rewrite.so
LoadModule ssl_module libexec/apache24/mod_ssl.so
LoadModule socache_shmcb_module libexec/apache24/mod_socache_shmcb.so
Include etc/apache24/extra/httpd-vhosts.conf
ErrorLog "/var/log/apache/httpd-error.log"
CustomLog "/var/log/apache/httpd-access.log" common
Activation de PHP
Ajouter les lignes suivantes dans le fichier /usr/local/etc/apache24/modules.d/080_mod_php.conf
AddType application/x-httpd-php .php
DirectoryIndex index.php index.html
Copie du fichier de configuration php.ini
de production
cp -a /usr/local/etc/php.ini-production /usr/local/etc/php.ini
Configuration SSL dans /usr/local/etc/apache24/modules.d/070_mod_ssl.conf
Listen 443
SSLCipherSuite HIGH:MEDIUM:!MD5:!RC4:!3DES
SSLProxyCipherSuite HIGH:MEDIUM:!MD5:!RC4:!3DES
SSLHonorCipherOrder on
SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
SSLProxyProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
SSLPassPhraseDialog builtin
SSLSessionCache "shmcb:/var/run/ssl_scache(512000)"
SSLSessionCacheTimeout 300
SSLOptions +StrictRequire
Exemple de configuration d'un VirtualHost
avec SSL dans /usr/local/etc/apache24/extra/httpd-vhosts.conf
# example.com
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
ServerAdmin postmaster@example.com
ErrorLog "/var/log/apache/example-error_log"
CustomLog "/var/log/apache/example-access_log" common
RewriteEngine on
RewriteCond %{SERVER_NAME} =www.example.com [OR]
RewriteCond %{SERVER_NAME} =example.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>
<IfModule mod_ssl.c>
# example.com
<VirtualHost *:443>
ServerName example.com
ServerAlias www.example.com
ServerAdmin postmaster@example.com
DocumentRoot "/var/www/example"
# /
<Directory "/var/www/example">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog "/var/log/apache/example-error_log"
CustomLog "/var/log/apache/example-access_log" common
SSLEngine on
SSLCertificateFile /usr/local/etc/letsencrypt/live/example.com/fullchain.pem
SSLCertificateKeyFile /usr/local/etc/letsencrypt/live/example.com/privkey.pem
</VirtualHost>
</IfModule>
Activation du service
sysrc clear_tmp_enable=YES
sysrc apache24_enable=YES
La directive clear_tmp_enable
permet de vider /tmp
au reboot. Utile pour supprimer automatiquement les anciens fichiers de session PHP après un reboot.
Démarrage du service
service apache24 start
Test SSL : https://www.ssllabs.com/
Pour effacer le disque /dev/da1
j'utilise la commande dd
combinée avec /dev/urandom
pour générer des nombres aléatoires.
Exemple
dd if=/dev/urandom of=/dev/da1 conv=sync status=progress
Par défaut, dd
positionne la taille du bloc/secteur à 512. Pour accélérer le process, on peut l'aligner à la taille du secteur physique du disque, qui est de 4096 (stripesize).
Cette information peut s'obtenir à l'aide de diskinfo
et camcontrol
.
Exemple avec diskinfo
$ diskinfo -v /dev/da1
/dev/da1
512 # sectorsize
500107862016 # mediasize in bytes (466G)
976773168 # mediasize in sectors
4096 # stripesize
0 # stripeoffset
60801 # Cylinders according to firmware.
255 # Heads according to firmware.
63 # Sectors according to firmware.
ST500LM0 12 HN-M500MBB # Disk descr.
0322031102F9 # Disk ident.
umass-sim1 # Attachment
No # TRIM/UNMAP support
Unknown # Rotation rate in RPM
Not_Zoned # Zone Mode
Petit calcul pour comprendre : si on reprend la taille du media en bytes (mediasize in bytes) et qu'on divise par la taille du secteur (sectorsize), on retrouve la taille du media en nombre de secteurs (mediasize in sectors).
$ echo $((500107862016 / 512))
976773168
On peut obtenir d'avantage d'infos sur le disque avec camcontrol identify /dev/da1
, mais je vais pas aborder ce sujet dans cette note, on a déjà l'info nécessaire avec diskinfo
.
Le paramètre bs
de la commande dd
permet de paramétrer la taille du bloc/secteur (block/sector size).
Avec cette nouvelle info cela donne
dd if=/dev/urandom of=/dev/da1 bs=4096 conv=sync status=progress
Top, c'est bien plus rapide !
Vu la taille de mon disque (500G), j'ai interrompu le process par manque de temps pour le laisser finir. 309G ont été effacés. Pour ne pas recommencer depuis le début, il me fallait calculer le nombre de secteurs à sauter pour donner un point de départ à dd
.
J'ai décidé de repartir à 300G, voici comment j'ai calculé.
Calculer la taille à sauter en bytes
$ echo $((300 * 1024 * 1024 * 1024))
322122547200
Calcul du nombre de secteurs d'une taille de 4096 à sauter
# echo $((322122547200 / 4096))
78643200
Pour reprendre la tâche après interruption, il est possible de définir un nombre de blocs à sauter en sortie avec l'argument oseek
.
# dd if=/dev/urandom of=/dev/da1 bs=4096 oseek=78643200 conv=sync status=progress
dd: /dev/da1: end of deviceB, 166 GiB) transferred 16298.003s, 11 MB/s
43453447+0 records in
43453446+0 records out
177985314816 bytes transferred in 16298.896788 secs (10920084 bytes/sec)
Résumons et vérifions le résultat ci-dessus. J'ai un disque de 500G dont j'ai déjà formaté 309G (disons 300).
Le mediasize in bytes est de 500107862016 (466G). Vérifions...
$ echo $((500107862016 / 1024 / 1024 / 1024))
465
Plus précisément 465.76, arrondi à 465 par le Shell et à 466 par diskinfo
.
Calcul de la taille restant à effacer
$ echo $((466 - 300))
166
La commande dd
nous dit que 166G ont été transférés.
Elle nous dit aussi que 177985314816 bytes ont été transférés, calculons cela encore une fois...
$ echo $((177985314816 / 1024 / 1024 / 1024))
165
Plus précisément 165.76, arrondi à 165 par le Shell et à 166 par dd
. On est tout bon !
Petite note sur la configuration de ssmtp sur FreeBSD
Prérequis
pkg inst ssmtp
Désactivation de sendmail
sysrc sendmail_enable=NO
sysrc sendmail_msp_queue_enable=NO
sysrc sendmail_outbound_enable=NO
sysrc sendmail_submit_enable=NO
Remplacement de sendmail par ssmtp dans le mailer /etc/mail/mailer.conf
#sendmail /usr/libexec/sendmail/sendmail
#mailq /usr/libexec/sendmail/sendmail
#newaliases /usr/libexec/sendmail/sendmail
#hoststat /usr/libexec/sendmail/sendmail
#purgestat /usr/libexec/sendmail/sendmail
sendmail /usr/local/sbin/ssmtp
send-mail /usr/local/sbin/ssmtp
mailq /usr/local/sbin/ssmtp
newaliases /usr/local/sbin/ssmtp
hoststat /usr/bin/true
purgestat /usr/bin/true
Configuration de ssmtp /usr/local/etc/ssmtp/ssmtp.conf
mailhub=mail.example.com:465
rewriteDomain=example.com
hostname=host.example.com
FromLineOverride=YES
UseTLS=YES
AuthUser=user@example.com
AuthPass=SecretPassword
Reboot recommandé
Pour tester
mail johndoe@example.com
kldload zfs
sysctl vfs.zfs.min_auto_ashift=12
gpart add -l fbsd-swap -t freebsd-swap -a 4k -s 1G ada0
gpart add -l fbsd-zfs -t freebsd-zfs -a 4k ada0
geli init -g -s 4k -l 256 ada0p5
geli attach ada0p5
zpool create \
-o ashift=12 \
-O compression=lz4 \
-O atime=off \
-m none \
-R /mnt \
zroot \
ada0p5.eli
zfs create -o canmount=off zroot/os
zfs create -o canmount=noauto -o mountpoint=/ zroot/os/main
zfs mount zroot/os/main
zfs create -o mountpoint=/usr -o canmount=off zroot/usr
zfs create -o setuid=off zroot/usr/ports
zfs create zroot/usr/src
zfs create -o mountpoint=/usr/home zroot/home
zfs create -o mountpoint=/var -o canmount=off zroot/var
zfs create -o exec=off -o setuid=off zroot/var/audit
zfs create -o exec=off -o setuid=off zroot/var/crash
zfs create -o exec=off -o setuid=off zroot/var/log
zfs create -o atime=on zroot/var/mail
zfs create -o setuid=off zroot/var/tmp
zpool set bootfs=zroot/os/main zroot
chmod 1777 /mnt/var/tmp
printf "/dev/ada0p4.eli\tnone\tswap\tsw,late\t0\t0\n" >> /tmp/bsdinstall_etc/fstab
printf "tmpfs\t/tmp\ttmpfs\trw,mode=1777\t0\t0\n" >> /tmp/bsdinstall_etc/fstab
mount -t msdosfs /dev/ada0p1 /media
mkdir /media/EFI/freebsd
cp /boot/loader.efi /media/EFI/freebsd/loader.efi
efibootmgr --create --activate --label "freebsd" --loader "/media/EFI/freebsd/loader.efi"
umount /media
exit
Final modifications
sysrc -f boot/loader.conf cryptodev_load=YES
sysrc -f boot/loader.conf zfs_load=YES
sysrc -f boot/loader.conf geom_eli_load="YES"
sysrc -f boot/loader.conf aesni_load=YES
sysrc -f etc/rc.conf zfs_enable=YES
Liens utiles
Sécuriser et monter /tmp
et /var/tmp
en mémoire (tmpfs)
kldload tmpfs
sysrc -f /boot/loader.conf tmpfs_load=YES
rm -rf /tmp /var/tmp
mkdir /tmp /var/tmp
mount -t tmpfs tmpfs -o rw,nosuid,noexec,mode=01777 /tmp
mount -t tmpfs tmpfs -o rw,nosuid,noexec,mode=01777 /var/tmp
Dans /etc/fstab
# Device Mountpoint FStype Options Dump Pass#
tmpfs /tmp tmpfs rw,nosuid,noexec,mode=01777 0 0
tmpfs /var/tmp tmpfs rw,nosuid,noexec,mode=01777 0 0
CDE (Common Desktop Environment) est un vieil environnement de bureau historiquement réalisé pour UNIX et qui encore aujourd'hui bénéficie d'un soutien de la communauté.
The Common Desktop Environment, the classic UNIX desktop. The Common Desktop Environment was created by a collaboration of Sun, HP, IBM, DEC, SCO, Fujitsu and Hitachi. Used on a selection of commercial UNIXs, it is now available as open-source software for the first time.
Sources : https://sourceforge.net/projects/cdesktopenv/
Installation et configuration de CDE sur FreeBSD
pkg inst xorg dbus cde ksh93
sysrc dbus_enable=YES
sysrc dtcms_enable=YES
sysrc dtspc_enable=YES
sysrc inetd_enable=YES
sysrc rpcbind_enable=YES
Ajouter dans /etc/rc.local
/usr/local/dt/bin/dtlogin
Pour le compte root et le compte utilisateur
ln -s /usr/local/dt/bin/Xsession ~/.Xsession
Ajouter dans /etc/inetd.conf
dtspc stream tcp4 nowait root /usr/local/dt/bin/dtspcd /usr/local/dt/bin/dtspcd
cmsd/2-5 dgram rpc/udp4 wait root /usr/local/dt/bin/rpc.cmsd rpc.cmsd
Ajouter dans ~/.dtprofile
LANG=en_US.UTF-8
Nom du HDD : ada0
Nom de la nouvelle pool : zdata
Nom du nouveau dataset : storage
Point de montage : /storage
gpart create -s GPT /dev/ada0
gpart add -t freebsd-zfs -a 4k /dev/ada0
zpool create zdata /dev/ada0p1
zfs create -o mountpoint=/storage zdata/storage
En essayant de faire de la substitution dans un fichier avec la version BSD de sed
je me suis rendu compte qu'il fallait préciser un suffixe pour le backup après l'option -i
sous peine de se ramasser une sympathique erreur dont le titre fait l'objet.
La commande accepte un suffixe vide.
En somme pour substituer directement dans le fichier original sans backup :
sed -i '' 's/foo/bar/' file.txt
On en apprend tous les jours :-)
Ce post est écrit sur la base de vieilles notes et de souvenirs et fait donc d'avantage office de mémoire que de tutoriel.
Il est fort probable qu'à l'avenir, la méthode décrite ne soit plus applicable, mais elle pourrait servir à apporter des éléments à une nouvelle méthode.
Configuration de l'imprimante HP PSC 2355 avec CUPS et sane pour la fonction scanner.
L'imprimante est connectée en USB.
Prérequis
pkg install cups hplip sane-backends xsane
Activation de CUPS
sysrc cupsd_enable=YES
service cupsd start
Ajout de l'imprimante
Rendez-vous sur la page d'administration de CUPS http://localhost:631/admin
- Ajouter une imprimante
- Sélectionner l'imprimante dans la liste
- Mettre à jour (ou non) le formulaire d'ajout
- Sélectionner la marque/le fabricant si ce n'est déjà fait
- Sélectionner le driver correspondant au modèle
Configurer l'imprimante
L'imprimante peut maintenant être configurée avec CUPS, rendez-vous à nouveau sur http://localhost:631/admin
- Gérer les imprimantes
- Cliquer sur le lien de l'imprimante
Il y a deux menus, Maintenance et Administration.
Avant tout il faut configurer le format du papier, par exemple A4.
- Cliquer sur Administration puis Définir les options de l'imprimante
- Dans le menu Media size, choisir le format A4 210x297mm
- Cliquer sur Définir les options par défaut pour enregistrer les changements
Imprimer une page de test
Revenir sur la page de l'imprimante via http://localhost:631/printers/?
Cliquer sur Maintenance puis Imprimer une page de test.
Scanner
De mémoire, il n'y a aucune action particulière à réaliser au niveau de sane pour la détection du scanner lorsque l'imprimante est branchée en USB.
Pour scanner, il suffit de lancer le logiciel XSane, de régler les paramètres de couleur et DPI et enfin de lancer le scan.
Il y a quelques années, je configurais mon imprimante HP PSC 2355 avec CUPS et sane pour la fonction scanner.
Pour mémoire, j'ai écris un post à ce sujet.
Aujourd'hui, je configure mon imprimante HP ENVY Photo 6232 avec HPLIP.
L'imprimante est connectée au réseau local sans fil et configurée avec une adresse IP fixe.
Prérequis
pkg install cups hplip sane-backends xsane
Activation de CUPS
sysrc cupsd_enable=YES
service cupsd start
Installation de l'imprimante
Lancer l'outil HP Device Manager, listé dans le menu Accessoires de mon système.
Au lancement de l'outil, il ne trouve aucun périphérique HP installé, normal.
Cliquer sur Setup Device...
Sélectionner l'option Network/Ethernet/Wireless network (direct connection or JetDirect).
Cliquer sur Show Advanced Options puis cocher Manual Discovery.
Dans le champ IP Address or network name saisir l'adresse IP ou le hostname de l'imprimante.
L'imprimante devrait apparaître sur l'écran suivant.
Cliquer sur Next, puis mettre à jour (ou non) le formulaire, enfin cliquer sur Add Printer.
CUPS
Rien de particulier à faire au niveau de CUPS.
En se rendant sur la page d'administration de CUPS http://localhost:631/printers/?, on s'aperçoit que l'imprimante a été ajoutée.
Pour configurer les options de l'imprimante, ça se passe dans HPLIP.
Configurer l'imprimante
Ouvrir à nouveau HP Device Manager, puis dans l'onglet Print Settings.
Dans l'onglet General le menu Media Size permet de choisir le format du papier, par exemple A4 210x297mm.
Scanner
Il n'y a aucune action particulière à réaliser au niveau de sane pour la détection du scanner.
Pour scanner, il suffit de lancer le logiciel XSane, de régler les paramètres de couleur et DPI et enfin de lancer le scan.
High detailed database of computer hardware
This is a project to anonymously collect hardware details of BSD-powered computers over the world and help people to collaboratively debug hardware related issues, check for BSD-compatibility and find drivers.
pkg install hw-probe
hw-probe -all -upload
Installer les guest additions sur Debian semble un peu plus lourd que sur FreeBSD.
En effet, il n'y a pas (ou plus) de paquet, on fait donc ça à la mano en compilant le bazar.
Dans un premier temps, sur la VM Debian, il faut installer les prérequis suivants.
apt install build-essential dkms linux-headers-$(uname -r)
Ensuite, depuis le menu de la VM, insérer l'ISO qui contient les guest additions.
Puis on ouvre un terminal sur la VM et on monte l'ISO
mount /dev/sr0 /media/cdrom
On lance le script d'installation
cd /media/cdrom
sh ./VBoxLinuxAdditions.run
On reboot après l'installation, puis on peut vérifier que le module est bien chargé.
lsmod | grep vboxguest
Si la commande ne renvoie rien, c'est que le module n'est pas chargé.
Avec les guest additions on peut activer le partage du presse-papiers, le glisser-déposer, l'accélération graphique 3D et le partage de dossiers entre l'hôte et la VM.
Avant de monter l'image ISO, il convient de la charger en tant que memory disk à l'aide de mdconfig
.
mdconfig -f image.iso
La commande renvoie le drive dans lequel est chargé l'image, dans mon cas md0
.
Maintenant, on peut monter l'image.
mount -t cd9660 /dev/md0 /mnt
Finalement, on peut raccourcir les deux étapes en une comme ceci.
mount -t cd9660 /dev/`mdconfig -f image.iso` /mnt
How to use your webcam with Chrome and Firefox in FreeBSD
Installation
pkg inst pwcview v4l-utils v4l_compat webcamd
kldload cuse
sysrc -f /boot/loader.conf cuse_load=YES
sysrc webcamd_enable=YES
pw groupmod webcamd -m user
service devd restart
service webcamd start
A reboot is highly recommended
Then, we can test with pwcview
pwcview -d /dev/video0
Akaunting is a free, open-source, and online accounting software for small businesses and freelancers. Send invoices and track expenses.
Note du 13 avril 2020 :
Après installation, pour faire fonctionner HTTPS via HAProxy :
cd /var/www/akaunting
sudo -u www /usr/local/bin/php artisan vendor:publish --provider="Fideloper\Proxy\TrustedProxyServiceProvider"
Puis modifier config/trustedproxy.php
pour ajouter l'IP de HAProxy
Je suis tombé sur un vieil article très intéressant de Michael Warren Lucas sur l'automatisation des snapshots ZFS. Dans cet article il présente l'outil zfstools pour accomplir cette tâche.
Dans un premier temps, il faut installer le paquet qui va bien.
# pkg install zfstools
Le message de fin d'installation se suffit à lui seul pour expliquer les étapes suivantes.
L'étape suivante est de déterminer sur quel dataset activer l'auto-snapshot.
Par exemple :
# zfs set com.sun:auto-snapshot=true zroot/jails
Activera l'auto-snapshot sur mon dataset zroot/jails.
Pour consulter :
# zfs get com.sun:auto-snapshot zroot/jails
Pour tout voir :
# zfs get com.sun:auto-snapshot
Ensuite, tel que décrit dans le message post-installation, on ajoute les bonnes directives dans le fichier /etc/crontab. À adapter selon ses besoins, mais l'exemple est pas mal du tout.
Par exemple dans mon /etc/crontab, mon PATH ressemble à ça :
PATH=/etc:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin
Puis j'ai ajouté ceci à la fin du fichier :
# zfs-auto-snapshot
15,30,45 * * * * root /usr/local/sbin/zfs-auto-snapshot 15min 4
0 * * * * root /usr/local/sbin/zfs-auto-snapshot hourly 24
7 0 * * * root /usr/local/sbin/zfs-auto-snapshot daily 7
14 0 * * 7 root /usr/local/sbin/zfs-auto-snapshot weekly 4
28 0 1 * * root /usr/local/sbin/zfs-auto-snapshot monthly 12
À la prochaine itération, on vérifie que tout va bien :
# zfs list -t snapshot
zroot/jails@zfs-auto-snap_15min-2021-01-23-20h45 1.18M - 25.6G -
Pour déboguer on peut se reporter aux logs de cron dans /var/log/cron.
The FreeBSD Desktop series are about creating efficient desktop environment on the FreeBSD system. Why such series? Because telling someone who wants FreeBSD desktop to buy Mac instead is like tell…
Pourquoi faire simple quand on peut faire compliqué avec un outil comme more ?
J'ai souvenir qu'à l'époque on pouvait utiliser les touches Up/Down, Page Up/Page Down ou B/Space pour faire défiler les pages. Chose qui est toujours d'actualité sur FreeBSD.
Sur Ubuntu, Red Hat et d'autres distributions, il n'y a plus que la combinaison B/Space qui fonctionne. Il n'y a plus d'autre alternative.
Je me pose souvent la question : pourquoi d'abord proposer plusieurs combinaisons, puis en imposer qu'une seule ?
Gérer ses VM bhyve avec vm-bhyve
Pour faire suite à mon billet du 4 janvier, ci-dessous une petite introduction sur la gestion des VM bhyve sous FreeBSD avec vm-bhyve.
L'objectif est le même que celui de mon précédent billet, virtualiser une machine Debian sous FreeBSD à l'aide de bhyve.
Les instructions suivantes sont à exécuter en tant que root
.
Préparation de l'hôte
Installation de vm-bhyve
pkg install grub2-bhyve vm-bhyve
sysrc vm_enable=YES
sysrc vm_delay=5
sysrc vm_dir=/bhyve
Charger les modules noyau nécessaires
kldload nmdm vmm if_tap if_bridge
Persistance
sysrc -f /boot/loader.conf nmdm_load=YES
sysrc -f /boot/loader.conf vmm_load=YES
sysrc -f /boot/loader.conf if_tap_load=YES
sysrc -f /boot/loader.conf if_bridge_load=YES
Initialisation
mkdir /bhyve
vm init
vm-bhyve fournit des modèles de machine. Pour les récupérer :
cp /usr/local/share/examples/vm-bhyve/* /bhyve/.templates/
Création d'un pont réseau avec l'interface physique em0
.
vm switch create public
vm switch add public em0
Créer une VM Debian
- Nom d'hôte :
exemple
- Mémoire : selon le modèle
/bhyve/.templates/debian.conf
- Taille du disque virtuel :
16G
- Système d'exploitation : Debian GNU/Linux Stretch
- Image d'installation :
debian-9.6.0-amd64-netinst.iso
Récupération de l'image d'installation
vm iso https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-9.6.0-amd64-netinst.iso
Création de la VM
vm create -t debian -s 16G exemple
Installation du système
vm -f install exemple debian-9.6.0-amd64-netinst.iso
Gérer une VM
Se connecter à la console de la VM
vm console exemple
Se déconnecter de la console
Pour se déconnecter de la console, il faut être logué sur le système invité,
puis utiliser la combinaison ~+Ctrl-D
. Cela ne fonctionne pas depuis l'invite
de connexion du système invité, d'où la nécessité d'être logué. Plus d'info
dans man 1 cu
.
Stopper la VM
vm stop exemple
Démarrer la VM
vm start exemple
Lister les VMs
vm list
Supprimer une VM
vm stop exemple
vm destroy exemple
Liens utiles