🐧 Lima – Ubuntu Cheat Sheet

lima

Lima (“Linux virtual machines”) est un outil open-source qui permet de lancer facilement des machines virtuelles Linux sur macOS (et aussi Linux). Il vise Ă  offrir une expĂ©rience “Linux-on-Mac” fluide pour les dĂ©veloppeurs, tout en gardant une gestion simple et intĂ©grĂ©e.

L’objectif est d’exĂ©cuter des outils Linux (Docker, Podman, Kubernetes, etc.) sur Mac dans un vrai environnement Linux, ce qui offre une compatibilitĂ© et un comportement identiques Ă  un vrai serveur Linux.

Installation

brew install lima

📩 Lister les templates Ubuntu disponibles

Il existe de nombreux templates disponibles (docker, podman, kubernetes, ubuntu, debian, fedora, opensuse, alpine, etc), mais ici, c’est Ubuntu qui nous intĂ©resse :

limactl start --list-templates | grep ubuntu

✅ Affiche les templates Ubuntu disponibles localement.

✅ Exemples de templates : - ubuntu : Derniùre LTS (ex: 22.04) - ubuntu-lts : Alias vers la derniùre LTS stable - ubuntu-20.04 : Ubuntu 20.04 LTS (Focal Fossa) - ubuntu-22.04 : Ubuntu 22.04 LTS (Jammy Jellyfish) - ubuntu-24.04 : Ubuntu 24.04 LTS (Noble Numbat)


🚀 CrĂ©er et dĂ©marrer une VM Ubuntu avec une version prĂ©cise

# Ubuntu LTS actuelle (ex: 22.04)
limactl start --name=ubuntu-lts template://ubuntu-lts

# Ubuntu 20.04 (Focal Fossa) avec 2 CPU et 4 Go de RAM
limactl start --name=ubuntu20 template://ubuntu-20.04 --cpus=2 --memory=4G

# Ubuntu 22.04 (Jammy Jellyfish) en mode Virtualization.framework avec Rosetta
limactl start --name=ubuntu22 template://ubuntu-22.04 --vm-type=vz --rosetta

# Ubuntu 24.04 (Noble Numbat) : 4 CPU, 8 Go de RAM, Virtualization.framework, Rosetta, montage virtiofs en écriture
limactl start --name=ubuntu24 template://ubuntu-24.04 --cpus=4 --memory=8G --vm-type=vz --rosetta --mount-type=virtiofs --mount-writable

# Version non-LTS (ex: 24.10) ou future
limactl start --name=ubuntu-dev template://ubuntu-25.04

đŸ› ïž ParamĂštres courants : - --cpus= : Nombre de CPU allouĂ© Ă  la VM. - --memory=G : Taille de la mĂ©moire en Go (ex: 8G pour 8 Go). - --disk=G : Taille du disque en Go (par dĂ©faut 100Go). - --vm-type={qemu, vz} : Type de machine virtuelle (vz pour macOS Ventura+ utilisant Virtualization.framework, plus performant). - --rosetta : Active Rosetta pour l’exĂ©cution de binaires x86_64 sur Mac Apple Silicon (nĂ©cessite --vm-type=vz). - --mount-type={9p, virtiofs, reverse-sshfs} : Type de montage (performant : virtiofs avec vz). - --mount-writable : Donne accĂšs en Ă©criture au montage du rĂ©pertoire de l’hĂŽte.

🐚 Alternative interactive :

limactl start

âžĄïž Choisir le template dans l’interface interactive.


đŸ–„ïž AccĂ©der Ă  la VM

# Ouvre un shell interactif sur la VM nommée (commande raccourcie)
lima 

# Ou, pour une VM nommée "ubuntu24"
lima ubuntu24

# Commande standard
limactl shell 

# Exemple :
limactl shell ubuntu24

# AccÚs SSH avancé (pour scripts)
ssh -o IdentitiesOnly=yes -i ~/.lima/_config/user -p 60022 lima@127.0.0.1

🛑 GĂ©rer la VM

limactl list                 # Lister toutes les VM
limactl stop         # ArrĂȘter une VM
limactl start        # DĂ©marrer une VM arrĂȘtĂ©e
limactl restart      # Redémarrer une VM
limactl delete       # Supprimer une VM (demande confirmation)

⚠ limactl delete supprime les disques et la configuration de la VM.


📂 Copier des fichiers entre hîte (Mac) et VM

lima cp <source> <destination>

Depuis le Mac vers la VM

limactl cp ./mon_fichier.txt ubuntu24:~/

Depuis la VM vers le Mac

limactl cp ubuntu24:~/rapport.pdf ./

Copier un répertoire récursivement

limactl cp -r  :

⚙ Personnaliser la configuration de la VM

Editer la configuration post-création

limactl edit 

Exemple (fragment) :

cpus: 4
memory: "8GiB"
disk: "50GiB"
mounts:
  - location: "~"
    writable: true
    #virtiofs: true  # Utiliser pour vz si nécessaire

AprĂšs modification, arrĂȘter et redĂ©marrer la VM :

limactl stop 
limactl start 

Création avancée avec fichier de configuration YAML

  1. Créez un fichier config.yaml avec le contenu souhaité :
images:
  - location: "https://cloud-images.ubuntu.com/releases/24.04/release/ubuntu-24.04-server-cloudimg-amd64.img"
    arch: "x86_64"
mounts:
  - location: "~"
    writable: true
cpus: 4
memory: "8GiB"
vmType: "vz"
rosetta: true
mountType: "virtiofs"
  1. Lancez Lima en spécifiant le fichier de configuration :
limactl start --name=ubuntu24-advanced --file config.yaml

📝 VĂ©rifier la version Ubuntu dans la VM

Une fois connecté à la VM :

lsb_release -a

Ou :

cat /etc/os-release

Commande depuis le Mac sans se connecter via un shell :

limactl shell ubuntu24 -- lsb_release -d

â„č Infos rapides sur les images


💡 Astuces Lima + Ubuntu


🔗 Liens utiles


Résumé workflow :
1. limactl start --name=... template://... (avec options)
2. limactl shell ... pour se connecter
3. Utiliser la VM comme un vrai systĂšme Ubuntu
4. limactl stop ... pour arrĂȘter

Pro tips :
- Pour les Mac Apple Silicon : toujours privilégier --vm-type=vz et --rosetta.
- --mount-type=virtiofs offre les meilleures performances de partage de fichiers.
- Configurer les montages en écriture avec --mount-writable.