Avancé
Ce chapitre rassemble les surfaces pour utilisateurs avancés — celles dont on se sert de temps en temps, pas tous les jours. Il couvre le retour du dossier personnel d'une machine à un amorçage antérieur avec Rembobiner le dossier personnel…, le navigateur de fichiers ext4 intégré qui ouvre les images disque d'une machine directement sur votre Mac sans démarrer la VM, la vérification native du système de fichiers et quelques valeurs de configuration de bas niveau.
Une machine (un espace de travail, dans l'éditeur de réglages) conserve ses données dans deux images disque Linux ext4 : le disque système et l'image du dossier personnel. Tout ce qui suit suppose que vous maîtrisez le modèle de stockage décrit dans Machines et Réglages des ressources.
Rembobiner le dossier personnel d'une machine
À chaque démarrage réussi d'une machine, Bromure prend un point de contrôle en copie sur écriture de son image de dossier personnel — le /home/ubuntu qui contient vos checkouts de projets, vos dotfiles, .ssh, l'historique du shell et l'état des agents. Les points de contrôle sont conservés par paliers : les derniers amorçages, puis un par jour pendant une semaine, puis un par semaine pendant un mois. Ils n'occupent réellement de l'espace disque qu'à mesure que le dossier personnel actuel s'en éloigne.
Rembobiner le dossier personnel… est la façon courante de s'en servir :
- Dans la barre latérale, ouvrez Machines virtuelles et cliquez sur le bouton ⋯ de la ligne de la machine.
- Choisissez Rembobiner le dossier personnel…. Une feuille intitulée Rembobiner le dossier personnel de « ‹machine› » s'ouvre : « Chaque point est le dossier personnel tel qu'il était au début de cet amorçage. Le prochain démarrage part de celui que vous choisissez ; le dossier personnel actuel est conservé comme nouveau point, vous pouvez donc annuler ici. »
- Choisissez un point dans la liste. Chaque ligne affiche la date et l'heure, l'ancienneté et la taille du point de contrôle sur le disque.
- Cliquez sur Rembobiner.
Une fois l'opération terminée, la feuille indique « Terminé — le prochain démarrage de « ‹machine› » partira de son dossier personnel du ‹date›. » Rien d'autre ne change : le disque système, les réglages de la machine et ses identifiants restent tels quels.
À savoir :
- La machine doit être éteinte. L'image du dossier personnel est remplacée en entier ; elle ne peut donc pas être en cours d'utilisation. Tant que la machine tourne, la feuille indique « La machine est en marche — son dossier personnel ne peut pas être remplacé pendant son utilisation. Éteignez-la d'abord. » et propose un bouton Éteindre ; Rembobiner reste désactivé jusqu'à ce que la machine soit éteinte.
- Un rembobinage peut être annulé. Avant le remplacement, le dossier personnel actuel devient un nouveau point de retour en haut de la même liste. Pour annuler, rouvrez Rembobiner le dossier personnel… et choisissez-le.
- Pas encore de points. Une machine qui n'a jamais démarré, ou qui vient d'être créée, affiche « Aucun point de retour pour l'instant — un point est pris à chaque démarrage de cette machine. »
- Machines plus anciennes. Une machine qui garde encore son dossier personnel dans un dossier du Mac (l'ancien dossier personnel partagé) n'a pas d'image à rembobiner ; la feuille indique « Cette machine garde son dossier personnel sur le Mac, pas dans une image — rien à rembobiner. » Mettez d'abord à niveau son stockage depuis le panneau Ressources.
- Machines distantes. Dans une fenêtre miroir de client riche, Rembobiner le dossier personnel… fonctionne de la même façon, avec les points de contrôle du serveur.
Les autres actions de stockage
Le panneau Ressources de la machine (⋯ › Modifier… › Ressources) conserve les anciennes actions par couche. Elles sont désactivées tant que la fenêtre de la machine est ouverte (« Fermez d'abord la fenêtre de session. ») :
| Bouton | Couche | Ce qu'il fait |
|---|---|---|
| Restaurer le dossier personnel… | Dossier personnel (ext4) | Le même retour arrière que Rembobiner le dossier personnel…, sous forme d'alerte avec une liste déroulante de points : Restaurer / Annuler. Un point de contrôle du dossier personnel actuel est pris d'abord. |
| Effacer le dossier personnel… | Dossier personnel | Efface tout sous /home/ubuntu — clones de projets, historique du shell, caches, la paire de clés SSH de la machine. Les fichiers gérés par Bromure (.bashrc, .gitconfig, configs des CLI) sont reconstruits à partir des réglages de la machine au prochain lancement. |
| Réinitialiser vers la base… | Disque système | Reclone le disque système depuis l'image de base. Tout ce qui a été installé avec apt et les modifications sous /etc, /var, /usr, /opt sont perdus ; le dossier personnel survit. |
Le menu ⋯ de la machine propose aussi Réinitialiser le disque, la même réinitialisation du disque système. Voir Réglages des ressources pour le panneau complet.
Le navigateur de fichiers ext4
macOS ne prend pas en charge ext4 nativement ; normalement, le seul moyen de voir l'intérieur des images disque d'une machine est de démarrer la VM. Bromure évite cela grâce à son propre lecteur et éditeur ext4 sans dépendance : il analyse directement le format sur disque et vous montre l'arborescence.
Espaces de travail › Ouvrir un fichier ext4… ouvre n'importe quel .img ext4 (ou ext2, ou ext3) — un système de fichiers brut ou un disque partitionné MBR/GPT — dans une fenêtre de type Finder. Rien n'est monté, aucune VM ne démarre, et aucun privilège élevé n'est requis.
Remarque : L'image s'ouvre en lecture seule par défaut — sans danger même si une VM a encore le disque attaché. L'édition est une étape distincte et explicitement verrouillée (voir Éditer une image).
Ce que vous pouvez ouvrir
Une machine réside sous ~/Library/Application Support/BromureAC/profiles/<uuid>/. Deux images y méritent d'être parcourues, ainsi que leurs points de contrôle de retour arrière :
| Image | Ce que montre le navigateur | La ligne d'information de la barre d'outils indique |
|---|---|---|
disk.img | La racine système Ubuntu — /etc, /var, /usr, /opt, et ainsi de suite. Le disque est une disposition GPT (une partition EFI plus la racine ext4) ; le navigateur localise automatiquement la racine ext4. | partition @…MiB |
home.img | Le /home/ubuntu de l'invité directement à la racine du système de fichiers — dotfiles, checkouts de projets, .ssh, historique du shell, et le dossier propre à Bromure, .bromure/. | raw |
checkpoints/<ts>.img | Un point de contrôle de disk.img, pris à chaque amorçage. | partition @…MiB |
checkpoints/home/<ts>.img | Un point de contrôle de home.img, pris à chaque amorçage — les points que liste Rembobiner le dossier personnel…. | raw |
L'image du dossier personnel se comporte ainsi parce que l'invité la monte par-dessus /home/ubuntu au démarrage : le répertoire racine de l'image est donc ce dossier personnel. Les nœuds Kubernetes, les registres et le connecteur de messagerie gardent plutôt leurs disques sous kube/<id>/nodes/<uuid>/, et s'ouvrent de la même façon.
Ouvrir une image
- Choisissez Espaces de travail › Ouvrir un fichier ext4….
- Un panneau d'ouverture intitulé Ouvrir une image disque ext4 apparaît — « Choisissez une image disque .img ext4 (brute ou partitionnée). » — démarrant dans
~/Library/Application Support/BromureAC. Naviguez dans le dossierprofiles/<uuid>/d'une machine et sélectionnezdisk.img,home.img, ou un fichier souscheckpoints/. - Le navigateur s'ouvre dans une fenêtre intitulée ext4 — « nomfichier », affichant la racine du système de fichiers.
La ligne d'information de la barre d'outils résume le volume : son étiquette, sa taille totale, si le système de fichiers a été trouvé brut ou à un décalage de partition, et son état — clean, not cleanly unmounted, ou journal needs recovery. Il y a une fenêtre par image ; rouvrir une image déjà ouverte met simplement sa fenêtre au premier plan.
Parcourir, prévisualiser et extraire
La vue principale est un tableau à trois colonnes — Nom, Taille et Type — avec les répertoires listés en premier. Le type distingue les dossiers, les fichiers et les liens symboliques, ainsi que les types de nœuds Unix spéciaux (Char, Block, FIFO, Socket).
- Naviguer — double-cliquez sur un dossier pour y entrer ; cliquez sur la flèche Haut de la barre d'outils pour revenir en arrière. Le fil d'Ariane indique le chemin actuel.
- Prévisualiser — double-cliquez sur un fichier, ou cliquez dessus avec le bouton droit et choisissez Prévisualiser. Les fichiers texte s'affichent en texte ; les fichiers binaires s'affichent sous forme de vidage hexadécimal. Dans les deux cas, la prévisualisation est plafonnée au premier 1 MiB, et le pied de page indique combien d'octets sur le total du fichier sont affichés. Un lien symbolique se prévisualise sous forme de son chemin cible.
- Extraire — cliquez avec le bouton droit sur un fichier et choisissez Extraire… pour écrire son contenu complet sur votre Mac via un panneau d'enregistrement. C'est le chemin en lecture seule que vous utiliserez le plus souvent.
Éditer une image
L'édition est délibérément verrouillée. Cliquez sur Activer l'édition… dans la barre d'outils ; l'alerte Activer l'édition de cette image disque ? avertit :
N'éditez une image que si la VM de son espace de travail est arrêtée. Écrire sur un disque qu'une VM en cours d'exécution a ouvert le corrompra.
Cliquez sur Activer l'édition et l'image se rouvre en lecture-écriture, avec un badge orange Édition dans la barre d'outils. Le menu contextuel d'un fichier gagne alors Remplacer… : sélectionnez un fichier de l'hôte dont le contenu écrase le fichier sélectionné sur place. L'éditeur recalcule la somme de contrôle de l'inode, si bien que le résultat reste cohérent.
Avertissement : Le remplacement est uniquement sur place. Le nouveau contenu doit tenir dans les blocs déjà alloués au fichier — un fichier plus volumineux est refusé avec Ce fichier aurait besoin de s'agrandir (agrandir, créer et supprimer des fichiers n'est pas activé). Les fichiers à données en ligne (inline-data) ne peuvent pas être édités. Les écritures sont refusées tant que le journal nécessite une récupération — exécutez d'abord fsck (ci-dessous). Et n'éditez jamais une image qu'une VM en cours d'exécution a attachée.
Vérifier et réparer un disque
Bromure vérifie et répare les images ext4 avec son propre vérificateur intégré — il n'y a rien à installer (macOS ne fournit pas e2fsprogs, et Bromure ne l'utilise pas). Vous le rencontrez à trois endroits :
- Automatiquement, au démarrage. Quand l'amorçage d'une machine s'arrête sur des erreurs de système de fichiers, sa scène affiche ERREUR DE DISQUE — « Le disque système a échoué à sa vérification de système de fichiers au démarrage, et l'amorçage ne peut pas continuer. » — avec Réparer le disque et Réinitialiser le disque système…. Réparer le disque arrête la VM, exécute le vérificateur sur le disque système et redémarre ; rien n'est supprimé. Si l'amorçage suivant échoue encore, la réinitialisation est la voie à suivre. Voir Dépannage.
- Dans le navigateur ext4. Le bouton Exécuter fsck… de la barre d'outils.
- En ligne de commande.
bromure-cli vm fsck <workspace> [--repair] [--home]— voir CLI, API et MCP.
Dans le navigateur, Exécuter fsck… demande Vérifier cette image ? — « Cette opération rejoue le journal du système de fichiers s'il est sale et vérifie les métadonnées. La VM de l'espace de travail doit être arrêtée. L'image peut être modifiée. » — avec Exécuter fsck et Annuler. Le résultat apparaît dans une feuille intitulée fsck.ext4, avec un résumé d'une ligne au-dessus de la sortie complète :
| Résumé | Signification |
|---|---|
| « Le système de fichiers est propre. » | Rien à faire. |
| « Système de fichiers réparé ; il est maintenant cohérent. » | Le journal a été rejoué ; l'image correspond exactement à ce que le noyau de l'invité a validé en dernier. |
| « Le système de fichiers comporte des erreurs que ce vérificateur ne peut pas réparer. » | Des dommages qui vont au-delà d'un journal inachevé. |
L'image est ensuite rouverte, et le navigateur montre l'état réparé.
Ce que le vérificateur fait, et ne fait pas :
- Réparer rejoue le journal du système de fichiers et efface l'indicateur « nécessite une récupération ». C'est toute l'histoire pour presque tous les disques Bromure endommagés : les images deviennent sales quand une VM est arrêtée en pleine écriture ou plante, pas par dégradation des données.
- Vérifier contrôle toujours les sommes de contrôle du superbloc et des descripteurs de groupe, puis parcourt l'arborescence depuis la racine en validant la somme de contrôle et l'arbre d'extents de chaque inode atteignable. Il signale ce qu'il trouve mais ne le corrige pas.
- Pour les dommages que le vérificateur ne peut pas réparer, le vrai remède est le
e2fsckde Linux lui-même, dans une VM. L'invité vérifie déjà l'image du dossier personnel à chaque démarrage, et les nœuds Kubernetes et les registres se rabattent sur une machine jetable qui exécute automatiquemente2fscksur leurs disques. Pour le disque système d'un espace de travail, Réinitialiser vers la base… le reclone sans toucher au dossier personnel.
Quand recourir à ces outils
- Annuler des dégâts dans votre dossier personnel — un agent a supprimé le mauvais dossier, ou un changement de dotfile a cassé votre shell : Rembobiner le dossier personnel… jusqu'au dernier bon amorçage.
- Récupérer un fichier d'une machine que vous préférez ne pas démarrer — extrayez une modification non commitée ou un journal de
home.imgavec Extraire…. - Inspecter un point de contrôle avant de rembobiner, pour confirmer qu'il contient ce que vous attendez : ouvrez-le depuis
checkpoints/home/dans le navigateur ext4. - Sauver une machine qui ne démarre pas — laissez Réparer le disque rejouer le journal ; si un fichier de configuration défectueux est en cause, remplacez-le sur place avec le navigateur et exécutez fsck. Voir Dépannage pour le diagnostic des échecs de démarrage.
Valeurs par défaut pour développeurs
Quelques réglages de bas niveau sont lus depuis le domaine UserDefaults de l'application, io.bromure.agentic-coding. Définissez-les avec defaults write pendant que l'application n'est pas en cours d'exécution, puis relancez :
| Clé | Effet | Défaut |
|---|---|---|
vm.homeImageGB | Taille apparente (visible par l'invité), en GiB, d'une image ext4 de répertoire personnel nouvellement créée. Le fichier de l'hôte est creux (sparse), donc cela ne coûte rien au départ. Bornée à 8–1024. Un ancien dossier personnel migré vers sa première image reçoit au moins 64. | 16 |
vm.mtu | Borne du MTU pour la carte réseau principale de la VM d'une machine, écrite dans l'invité à chaque démarrage. La valeur par défaut de 1280 est compatible VPN (WireGuard, IKEv2, et chemins PMTU d'entreprise). | 1280 |
terminal.allowGraphics | Réactive le rendu d'images dans le terminal (protocole graphique de kitty) depuis l'invité. Désactivé par défaut, car cela implique que l'hôte décode des octets d'image fournis par l'invité — et ce même canal pourrait dessiner une fausse interface par-dessus le terminal. Ne l'activez que si vous voulez que les agents affichent des images en ligne et que vous acceptez ce risque. | NO |
ui.terminalBell | Autorise la sonnerie du terminal. Désactivé par défaut : les agents font sonner la cloche à la fin de chaque tour, et l'état dans la barre latérale vous renseigne déjà. | NO |
Par exemple, pour que les images de dossier personnel des futures machines apparaissent comme faisant 128 GiB :
defaults write io.bromure.agentic-coding vm.homeImageGB -int 128
Remarque :
vm.homeImageGBn'affecte que les images de dossier personnel créées après la modification ; les images existantes conservent leur taille. Une image de dossier personnel peut être agrandie ultérieurement, mais pas réduite.
Astuce : Pour un travail réellement jetable,
bromure-cli vm run --rmdémarre un espace de travail jetable de style Docker dont le disque est supprimé à l'arrêt de la VM — documenté dans CLI, API et MCP.
La liste complète des clés UserDefaults et des variables d'environnement se trouve dans l'Annexe.