Multipass 1.8 : comment lancer simplement un Ubuntu virtualisé sur un Mac M1

Multipass 1.8 : comment lancer simplement un Ubuntu virtualisé sur un Mac M1

WSL, sort of

Avatar de l'auteur
David Legrand

Publié dans

Logiciel

19/11/2021 5 minutes
25

Multipass 1.8 : comment lancer simplement un Ubuntu virtualisé sur un Mac M1

Depuis quelques années, Canonical développe Multipass, un outil pour déployer facilement des machines virtuelles (VM) Ubuntu sur un poste client, via différents hyperviseurs. Sa version 1.8 est compatible avec les Mac M1, rendant accessible à tous un tel dispositif, sans logiciel payant.

Depuis la mise sur le marché des premiers Mac exploitant ses SoC M1, Apple a travaillé avec des éditeurs comme Parallels pour qu'ils adaptent leurs solutions de virtualisation. Problème, elles sont payantes et parfois coûteuses.

Ce n'est pas un problème pour un professionnel ou une entreprise, plus pour un particulier ou un simple étudiant qui veut seulement lancer une machine virtuelle pour avoir un accès rapide à un système Linux. macOS n'ayant pas d'équivalent du WSL de Windows 10/11, Canonical se propose de prendre le relais avec son Multipass.

L'outil permet de télécharger une image d'Ubuntu et de l'installer de manière très simple sur une machine. On peut ainsi disposer d'une ou plusieurs instances en configurant directement le nombre de cœurs CPU, la mémoire ou l'espace de stockage attribué, avec un accès à son interface en ligne de commande.

La version 1.8 mise en ligne il y a quelques jours apporte la compatibilité avec les SoC M1 exploitant une architecture ARM. Nous l'avons essayée sur un Mac Mini pour voir les intérêts et limites de cette solution.

Ça juste marche

La première chose à faire est de télécharger Multipass depuis son site ou son dépôt GitHub, il prend la forme d'un paquet PKG qu'il suffit de lancer. Vous pouvez aussi passer par Homebrew si vous le souhaitez. Lors de l'installation, il nous a été précisé que l'application nécessitait 375,4 Mo d'espace disque. 

Multipass 1.8 macOSMultipass 1.8 macOS

Une fois le processus terminé, Multipass est disponible. Il peut être utilisé en ligne de commande ou via une interface graphique (GUI) qui prendra la forme d'une icône en haut à droite de l'écran, à côté des autres icônes. Un clic dessus ouvrira un menu permettant de lancer une instance, de l'arrêter, etc.

Pour une première, sélectionnez Open Shell. Cela utilisera la procédure par défaut, à savoir récupérer l'image de la version la plus récente d'Ubuntu LTS (aarch64) et l'utiliser pour une machine virtuelle avec 1 cœur, 1 Go de RAM et 5 Go de stockage. Chaque instance se voit attribuer un nom aléatoire si aucun n'est précisé (ce qui est le cas ici).

Multipass 1.8 macOS

Lorsque tout sera terminé, vous serez dans Ubuntu. Pour quitter l'instance tapez exit et validez.

Vous pouvez également agir sur elle :

multipass list                        // affiche la liste des instances
multipass delete nom_de_l_instance // supprime l'instance
multipass recover nom_de_l_instance // restaure une instance supprimée
multipass purge // efface définitivement les instances supprimées
multipass stop nom_de_l_instance // arrête une instance
multipass suspend nom_de_l_instance // suspend une instance
multipass start nom_de_l_instance // démarre une instance
multipass shell nom_de_l_instance // lance une instance et accède à son shell

Si vous avez besoin d'aide sur Multipass ou une commande :

multipass --help
multipass commande --help

Paramétrer vos instances

Comme le précise la documentation, c'est Hyperkit, qui exploite l'Hypervisor.framework d'Apple qui est utilisé par défaut. Si vous le désirez, vous pouvez installer VirtualBox et utiliser Multipass pour le contrôler à la place.

Pour lancer une instance avec le nom et les paramètres que vous souhaitez, rien de plus simple :

multipass launch -c 4 -m 4G -d 20G -n UbServer

Soit une machine virtuelle avec 4 cœurs, 4 Go de mémoire et 20 Go de stockage.

Vous pouvez aussi utiliser un fichier de configuration cloud-init :

multipass launch -c 4 -m 4G -d 20G -n UbServer --cloud-init configVM.yml

Vous pouvez également transférer des fichiers entre l'hôte et la VM :

multipass transfer fichier.txt fichier.pdf nom_de_l_instance:/home/ubuntu/
multipass transfer nom_de_l_instance:/home/ubuntu/fichier.txt .

Pour utiliser une version spécifique d'Ubuntu, demandez la liste des images disponibles :

% multipass find
Image                       Aliases           Version          Description
18.04                       bionic            20211109         Ubuntu 18.04 LTS
20.04                       focal,lts         20211118         Ubuntu 20.04 LTS
21.04                       hirsute           20211110         Ubuntu 21.04
21.10                       impish            20211103         Ubuntu 21.10
anbox-cloud-appliance                         latest           Anbox Cloud Appliance
minikube                                      latest           minikube is local Kubernetes

Pour lancer une VM avec la version 21.10 par exemple :

multipass launch -c 4 -m 4G -d 20G -n UbServer impish
multipass shell UbServer

La documentation complète de Multipass est disponible ici.

Multipass : le WSL de macOS ?

L'utilisation d'Ubuntu au sein d'un Mac peut avoir différents avantages, comme le fait de profiter d'applications adaptées à l'architecture ARM64 pour l'OS de Canonical mais pas encore pour macOS. C'est par exemple le cas d'OpenSSL qui offre de bien meilleures performances ou des applications comme 7-zip, Blender, etc. 

Comme pour WSL sous Windows, cela permet également de profiter d'un système isolé où lancer des outils pensés pour les développeurs par exemple. Si macOS n'est pas restreint en la matière, Linux peut faire office de base commune entre différentes machines Mac et PC avec là aussi un écosystème ARM64 déjà très riche.

Multipass 1.8 macOS

Écrit par David Legrand

Tiens, en parlant de ça :

Sommaire de l'article

Introduction

Ça juste marche

Paramétrer vos instances

Multipass : le WSL de macOS ?

Fermer

Commentaires (25)


C’est pas mal ça… Y’a un petit coté vagrant en plus de la virtualisation pure qui est pas dégueu


J’adorerais voir un WSL sous Mac OS, qui sous Windows permets d’avoir un vrai système Linux complet et d’éviter de tout flinguer si on fait une connerie dessus. En plus d’avoir une très forte intégration avec le système qui permets de l’utiliser de manière performante avec des outils comme VSCode.


Oui le problème c’est de ne pas avoir d’espace de fichiers partagé ou d’équivalent de WSLg pour le moment. Espérons que ça viendra avec le temps (côté Apple ou Canonical :chinois:). Mais Apple poussera plutôt le fait que macOS est sur base UNIX donc n’ayant pas besoin d’un WSL.


Tu as Lima qui marche plutôt bien: https://github.com/lima-vm/lima.



Le homedir sous MacOS est automatiquement monté en SSHFS comme homedir sous Linux. Ca marche super bien. Par contre, je crois que c’est de la ligne de commande seulement.


Je pose la question ici à tout hasard même si ce n’est pas un forum : mon père a une image Vista qu’il utilise avec VirtualBox sur son Mac Intel depuis des années, pour faire tourner un programme particulier.
Quelles sont les solutions pour récupérer cette image et la faire tourner sur un Mac ARM, à part Parallels ?


Virtualbox ?


Il me semble qu’il est impossible d’émuler un OS x64 ou x86 sur un hôte ARM, seulement de l’ARM.
C’est mort pour l’application de ton père.
Ou alors j’ai raté une étape?


darkjack

Il me semble qu’il est impossible d’émuler un OS x64 ou x86 sur un hôte ARM, seulement de l’ARM.
C’est mort pour l’application de ton père.
Ou alors j’ai raté une étape?


C’est possible pour les logiciels sur Windows en tout cas. Windows for ARM sait émuler les apps x64 et x86 depuis plusieurs mois (années ?) .
Peut êtrez que l’émulation “native” par le processeur est pas possible mais ça peut être fait via une couche soft


felicienfrancois

C’est possible pour les logiciels sur Windows en tout cas. Windows for ARM sait émuler les apps x64 et x86 depuis plusieurs mois (années ?) .
Peut êtrez que l’émulation “native” par le processeur est pas possible mais ça peut être fait via une couche soft


Merci pour l’info!



David_L a dit:


Virtualbox ?



darkjack a dit:


Il me semble qu’il est impossible d’émuler un OS x64 ou x86 sur un hôte ARM, seulement de l’ARM. C’est mort pour l’application de ton père. Ou alors j’ai raté une étape?




Je crois que tu as raison. J’ai vu que pour VirtualBox ça ne fonctionnait pas en tous cas.




felicienfrancois a dit:


C’est possible pour les logiciels sur Windows en tout cas. Windows for ARM sait émuler les apps x64 et x86 depuis plusieurs mois (années ?) . Peut êtrez que l’émulation “native” par le processeur est pas possible mais ça peut être fait via une couche soft




Je note l’idée de passer par Windows for ARM, merci.



Le truc un peu original c’est que mon père a seulement besoin de faire tourner un programme MS-DOS (!), il s’agit d’un programme qu’il a écrit en C à la fin des années 80 pour gérer ses comptes. Ça devrait pouvoir se porter en mode “ncurses” sur un terminal Unix Mac, moyennant quelques adaptations du code.


As-tu essayé DOSBox-X ? Apparemment, c’est un fork de DOSBox et qui dispose d’une build tournant nativement sur M1.



Article sur Medium : https://nomadic-dmitry.medium.com/apple-silicon-m1-how-to-run-dos-games-and-apps-b5858e51e339



Site du logiciel : https://dosbox-x.com


Euh.. j’ai téléchargé et installé un ubuntu sur mon mac mini m1 hier, en moins d’une minute.



Docker, tout simplement…


Ce n’est pas exactement la même chose, mais je suppose que tu le sais très bien ;) Sinon pour Docker sur M1, attention à un point pour le moment :




System requirements
You must install Rosetta 2 as some binaries are still Darwin/AMD64.




David_L a dit:


Ce n’est pas exactement la même chose, mais je suppose que tu le sais très bien ;) Sinon pour Docker sur M1, attention à un point pour le moment :




Yes, rosetta2 est activé chez moi depuis le premier jour. Forcément.. il reste tellement de choses pas encore réécrites ;-)



Et pour Ubuntu, en usage occasionnel Docker fait parfaitement l’affaire et c’est nettement plus rapide ET safe quand tu peux dropper/recréer le container à volonté 😉



Avisance a dit:


As-tu essayé DOSBox-X ? Apparemment, c’est un fork de DOSBox et qui dispose d’une build tournant nativement sur M1.



Article sur Medium : https://nomadic-dmitry.medium.com/apple-silicon-m1-how-to-run-dos-games-and-apps-b5858e51e339



Site du logiciel : https://dosbox-x.com




Merci pour cette idée, ça a l’air idéal et peu compliqué à mettre en oeuvre.
:chinois:



elec a dit:


Euh.. j’ai téléchargé et installé un ubuntu sur mon mac mini m1 hier, en moins d’une minute.



Docker, tout simplement…




Un Ubuntu compilé pour quel CPU ?



Dans mon cas je veux faire tourner un MS-DOS (ou compatible, en tous cas c’est du x86) voire un Windows (a priori x86), sur un Mac M1. Je ne crois pas que Docker me permette de faire ça.




David_L a dit:


Ce n’est pas exactement la même chose, mais je suppose que tu le sais très bien ;) Sinon pour Docker sur M1, attention à un point pour le moment :
System requirements
You must install Rosetta 2 as some binaries are still Darwin/AMD64.




Je te cite pour solliciter ta confirmation de ce que j’ai répondu à “elec” juste au-dessus.



felicienfrancois a dit:


C’est possible pour les logiciels sur Windows en tout cas. Windows for ARM sait émuler les apps x64 et x86 depuis plusieurs mois (années ?) . Peut êtrez que l’émulation “native” par le processeur est pas possible mais ça peut être fait via une couche soft




Question de novice en Windows : Windows for ARM, en existe-t-il des versions gratuites à télécharger ?


La seule méthode que j’ai trouvée consiste à créer un compte Insider ici : https://insider.windows.com/en-us/register



Puis à télécharger un fichier VHDX ici :
https://www.microsoft.com/en-us/software-download/windowsinsiderpreviewARM64



Et l’installer via Parallels Desktop.


Avisance

La seule méthode que j’ai trouvée consiste à créer un compte Insider ici : https://insider.windows.com/en-us/register



Puis à télécharger un fichier VHDX ici :
https://www.microsoft.com/en-us/software-download/windowsinsiderpreviewARM64



Et l’installer via Parallels Desktop.


Décidément quel expert :-) . Encore merci.


OlivierJ

Décidément quel expert :-) . Encore merci.


Avec plaisir. ;)


OlivierJ

Décidément quel expert :-) . Encore merci.



OlivierJ a dit:


Le truc un peu original c’est que mon père a seulement besoin de faire tourner un programme MS-DOS (!), il s’agit d’un programme qu’il a écrit en C à la fin des années 80 pour gérer ses comptes. Ça devrait pouvoir se porter en mode “ncurses” sur un terminal Unix Mac, moyennant quelques adaptations du code.




Alors je vais faire le sale con de manager mais chercher des solutions techniques alors que ton père a juste à dépenser quelques euros dans une application genre lynxo ou pilote budget me semble un effort démesuré :transpi:



https://www.techadvisor.fr/banc-essai/telephones/application-gestion-budget-3787805/



(ceci même si je suis content d’en apprendre via les commentaires sur l’émulation d’apps anciennes sous ARM/OSX bien entendu :D )



yvan a dit:


Alors je vais faire le sale con de manager mais chercher des solutions techniques alors que ton père a juste à dépenser quelques euros dans une application genre lynxo ou pilote budget me semble un effort démesuré :transpi:




Merci pour les liens.
Cela dit il n’est plus tout jeune et a l’habitude de son programme qu’il a fait sur mesure (il n’a pas dû trouver ce qui lui convenait à l’époque) et qu’il a fait évoluer depuis la fin des années 80. Par ailleurs il préfère sûrement concevoir ses budgets sur un ordinateur que sur un mobile (même moi je ne pourrais pas faire ça sur mobile, c’est pas fait pour ça c’est trop étriqué). En tous cas ce n’est pas une question de payer pour un programme puisqu’il en achète.


Avec ces applis pas besoin de saisies, elles s’interfacent avec les banques et même l’analytique des dépenses est en partie automatisable donc principalement ça sert à vérifier de manière centralisée interbancaire ce qui se passe… quasi que de la consultation, faisable sur tablettes aussi.