Avanzado
Este capítulo reúne las superficies para usuarios avanzados — las que usas de vez en cuando, no a diario. Cubre cómo devolver la carpeta personal de una máquina a un arranque anterior con Rebobinar la carpeta personal…, el explorador de archivos ext4 integrado, que abre las imágenes de disco de una máquina directamente en tu Mac sin arrancar la VM, la comprobación nativa del sistema de archivos y algunos valores de configuración de bajo nivel.
Una máquina (un espacio de trabajo, en el editor de ajustes) guarda sus datos en dos imágenes de disco Linux ext4: el disco de sistema y la imagen de la carpeta personal. Todo lo que sigue da por hecho que conoces el modelo de almacenamiento descrito en Máquinas y Ajustes de recursos.
Rebobinar la carpeta personal de una máquina
Cada vez que una máquina arranca correctamente, Bromure toma un punto de control copy-on-write de su imagen de la carpeta personal — el /home/ubuntu que contiene los checkouts de tus proyectos, dotfiles, .ssh, el historial del shell y el estado de los agentes. Los puntos de control se conservan por escalones: los últimos arranques, luego uno al día durante una semana, luego uno a la semana durante un mes. Solo ocupan espacio real en disco a medida que la carpeta personal actual se aleja de ellos.
Rebobinar la carpeta personal… es la forma habitual de usarlos:
- En la barra lateral, abre Máquinas virtuales y haz clic en el botón ⋯ de la fila de la máquina.
- Elige Rebobinar la carpeta personal…. Se abre una hoja titulada Rebobinar la carpeta personal de «‹máquina›»: «Cada punto es la carpeta personal tal como estaba cuando empezó ese arranque. El próximo inicio arranca desde el que elijas; la carpeta personal actual se conserva como un punto nuevo, así que esto se puede deshacer aquí.»
- Elige un punto de la lista. Cada fila muestra la fecha y la hora, cuánto tiempo hace y el tamaño del punto de control en disco.
- Haz clic en Rebobinar.
Al terminar, la hoja indica «Listo — el próximo inicio de «‹máquina›» arranca desde su carpeta personal del ‹fecha›.» Nada más cambia: el disco de sistema, los ajustes de la máquina y sus credenciales se quedan como están.
Conviene saber:
- La máquina debe estar apagada. La imagen de la carpeta personal se sustituye entera, así que no puede estar en uso. Mientras la máquina está en marcha, la hoja indica «La máquina está en marcha — su carpeta personal no se puede sustituir mientras está en uso. Apágala primero.» y ofrece un botón Apagar; Rebobinar sigue desactivado hasta que la máquina esté apagada.
- Un rebobinado se puede deshacer. Antes de la sustitución, la carpeta personal actual se convierte en un punto de reversión nuevo en lo alto de la misma lista. Para deshacerlo, vuelve a abrir Rebobinar la carpeta personal… y elígelo.
- Aún no hay puntos. Una máquina que nunca ha arrancado, o que se acaba de crear, muestra «Aún no hay puntos de reversión — se toma uno cada vez que esta máquina arranca.»
- Máquinas antiguas. Una máquina que aún guarda su carpeta personal en una carpeta del Mac (la antigua carpeta personal compartida) no tiene imagen que rebobinar; la hoja indica «Esta máquina guarda su carpeta personal en el Mac, no en una imagen — no hay nada que rebobinar.» Actualiza primero su almacenamiento desde el panel Recursos.
- Máquinas remotas. En una ventana espejo de cliente enriquecido, Rebobinar la carpeta personal… funciona igual, con los puntos de control del servidor.
Las otras acciones de almacenamiento
El panel Recursos de la máquina (⋯ › Editar… › Recursos) conserva las acciones antiguas, por capa. Están desactivadas mientras la ventana de la máquina esté abierta («Cierra primero la ventana de la sesión.»):
| Botón | Capa | Qué hace |
|---|---|---|
| Restaurar carpeta personal… | Carpeta personal (ext4) | La misma reversión que Rebobinar la carpeta personal…, como una alerta con una lista desplegable de puntos: Restaurar / Cancelar. Antes se toma un punto de control de la carpeta personal actual. |
| Borrar carpeta personal… | Carpeta personal | Borra todo lo que hay bajo /home/ubuntu — clones de proyectos, historial del shell, cachés, el par de claves SSH de la máquina. Los archivos que gestiona Bromure (.bashrc, .gitconfig, configuraciones de las CLI) se regeneran a partir de los ajustes de la máquina en el siguiente arranque. |
| Restablecer a la base… | Disco de sistema | Vuelve a clonar el disco de sistema desde la imagen base. Todo lo instalado con apt y los cambios en /etc, /var, /usr, /opt se pierden; la carpeta personal sobrevive. |
El menú ⋯ de la máquina también tiene Restablecer el disco, el mismo restablecimiento del disco de sistema. Consulta Ajustes de recursos para el panel completo.
El explorador de archivos ext4
macOS no admite ext4 de forma nativa, así que normalmente la única manera de ver el interior de las imágenes de disco de una máquina es arrancar la VM. Bromure lo evita con su propio lector y escritor de ext4 sin dependencias: analiza directamente el formato en disco y te muestra el árbol.
Espacios de trabajo › Abrir archivo ext4… abre cualquier .img ext4 (también ext2 o ext3) — un sistema de archivos en bruto o un disco particionado MBR/GPT — en una ventana estilo Finder. No se monta nada, no arranca ninguna VM y no se necesitan privilegios elevados.
Nota: La imagen se abre en modo solo lectura de forma predeterminada, algo seguro incluso si una VM todavía tiene el disco conectado. La edición es un paso independiente y explícitamente restringido (consulta Editar una imagen).
Qué puedes abrir
Una máquina reside en ~/Library/Application Support/BromureAC/profiles/<uuid>/. Vale la pena explorar dos imágenes allí, además de sus puntos de control de reversión:
| Imagen | Qué muestra el explorador | La línea de información de la barra de herramientas indica |
|---|---|---|
disk.img | La raíz del sistema Ubuntu — /etc, /var, /usr, /opt, etcétera. El disco tiene un diseño GPT (una partición EFI más la raíz ext4); el explorador localiza la raíz ext4 automáticamente. | partition @…MiB |
home.img | El /home/ubuntu del invitado directamente en la raíz del sistema de archivos — dotfiles, checkouts de proyectos, .ssh, historial del shell y la carpeta propia de Bromure, .bromure/. | raw |
checkpoints/<ts>.img | Un punto de control de disk.img, tomado en cada arranque. | partition @…MiB |
checkpoints/home/<ts>.img | Un punto de control de home.img, tomado en cada arranque — los puntos que muestra Rebobinar la carpeta personal…. | raw |
La imagen de la carpeta personal se comporta así porque el invitado la monta sobre /home/ubuntu al arrancar, de modo que el directorio raíz de la propia imagen es esa carpeta personal. Los nodos de Kubernetes, los registros y el conector de mensajería guardan en cambio sus discos en kube/<id>/nodes/<uuid>/, y se abren de la misma forma.
Abrir una imagen
- Elige Espacios de trabajo › Abrir archivo ext4….
- Aparece un panel de apertura titulado Abrir imagen de disco ext4 — «Elige una imagen de disco .img ext4 (en bruto o particionada).» — que comienza en
~/Library/Application Support/BromureAC. Navega hasta la carpetaprofiles/<uuid>/de una máquina y eligedisk.img,home.imgo un archivo bajocheckpoints/. - El explorador se abre en una ventana titulada ext4 — «nombredearchivo», mostrando la raíz del sistema de archivos.
La línea de información de la barra de herramientas resume el volumen: su etiqueta, el tamaño total, si el sistema de archivos se encontró en bruto o en un desplazamiento de partición, y su estado — clean, not cleanly unmounted o journal needs recovery. Hay una ventana por imagen; volver a abrir una imagen que ya está abierta simplemente enfoca su ventana.
Explorar, previsualizar y extraer
La vista principal es una tabla de tres columnas — Nombre, Tamaño y Tipo — con los directorios listados primero. El tipo distingue carpetas, archivos y enlaces simbólicos, así como los tipos de nodo especiales de Unix (Char, Block, FIFO, Socket).
- Navegar — haz doble clic en una carpeta para entrar; haz clic en la flecha Arriba de la barra de herramientas para retroceder. La ruta de navegación muestra la ubicación actual.
- Previsualizar — haz doble clic en un archivo, o haz clic derecho sobre él y elige Previsualizar. Los archivos de texto se muestran como texto; los archivos binarios se muestran como un volcado hexadecimal. En cualquier caso, la previsualización está limitada al primer 1 MiB, y el pie de página indica cuántos de los bytes totales del archivo se muestran. Un enlace simbólico se previsualiza como la ruta de su destino.
- Extraer — haz clic derecho en un archivo y elige Extraer… para escribir su contenido completo en tu Mac mediante un panel de guardado. Esta es la vía de solo lectura que usarás con más frecuencia.
Editar una imagen
La edición está deliberadamente detrás de una barrera. Haz clic en Habilitar edición… en la barra de herramientas; la alerta ¿Habilitar la edición de esta imagen de disco? advierte:
Edita solo una imagen cuya VM de espacio de trabajo esté detenida. Escribir en un disco que una VM en ejecución tiene abierto lo corromperá.
Haz clic en Habilitar edición y la imagen se reabre en modo lectura-escritura, con una insignia naranja Editando en la barra de herramientas. El menú contextual de un archivo obtiene entonces Reemplazar…: elige un archivo del anfitrión cuyo contenido sobrescriba el archivo seleccionado in situ. El editor recalcula la suma de comprobación del inodo, de modo que el resultado permanece coherente.
Advertencia: El reemplazo es solo in situ. El nuevo contenido debe caber en los bloques ya asignados del archivo — un archivo más grande se rechaza con Ese archivo tendría que crecer (crecer, crear y eliminar archivos no está habilitado). Los archivos con datos en línea no se pueden editar. Las escrituras se rechazan mientras el diario necesita recuperación — ejecuta primero fsck (más abajo). Y nunca edites una imagen que una VM en ejecución tenga conectada.
Comprobar y reparar un disco
Bromure comprueba y repara las imágenes ext4 con su propio comprobador integrado — no hay nada que instalar (macOS no incluye e2fsprogs, y Bromure no lo usa). Te lo encontrarás en tres sitios:
- Automáticamente, al arrancar. Cuando el arranque de una máquina se detiene por errores del sistema de archivos, su escenario muestra ERROR DE DISCO — «El disco de sistema no superó la comprobación del sistema de archivos al arrancar, y el arranque no puede continuar.» — con Reparar disco y Restablecer disco del sistema…. Reparar disco detiene la VM, ejecuta el comprobador sobre el disco de sistema y vuelve a arrancar; no se elimina nada. Si el siguiente arranque vuelve a fallar, restablecer es el camino a seguir. Consulta Solución de problemas.
- En el explorador ext4. El botón Ejecutar fsck… de la barra de herramientas.
- Desde la línea de comandos.
bromure-cli vm fsck <workspace> [--repair] [--home]— consulta CLI, API y MCP.
En el explorador, Ejecutar fsck… pregunta ¿Comprobar esta imagen? — «Esto reproduce el diario del sistema de archivos si está sucio y verifica los metadatos. La VM del espacio de trabajo debe estar detenida. Puede modificar la imagen.» — con Ejecutar fsck y Cancelar. El resultado aparece en una hoja titulada fsck.ext4, con un resumen de una línea sobre la salida completa:
| Resumen | Significado |
|---|---|
| «El sistema de archivos está limpio.» | No hay nada que hacer. |
| «Sistema de archivos reparado; ahora es coherente.» | Se reprodujo el diario; la imagen es ahora exactamente lo último que confirmó el kernel del invitado. |
| «El sistema de archivos tiene errores que este comprobador no puede reparar.» | Daños que van más allá de un diario inacabado. |
Después la imagen se vuelve a abrir, así que el explorador muestra el estado reparado.
Qué hace el comprobador, y qué no:
- Reparar reproduce el diario del sistema de archivos y borra el indicador «necesita recuperación». Es toda la historia para casi cualquier disco de Bromure dañado: las imágenes quedan sucias cuando una VM se detiene a mitad de una escritura o se cae, no por degradación de los datos.
- Verificar comprueba siempre las sumas de comprobación del superbloque y de los descriptores de grupo, y luego recorre el árbol desde la raíz validando la suma de comprobación y el árbol de extents de cada inodo alcanzable. Informa de lo que encuentra, pero no lo corrige.
- Para los daños que el comprobador no puede reparar, la solución honesta es el propio
e2fsckde Linux dentro de una VM. El invitado ya comprueba la imagen de la carpeta personal en cada arranque, y los nodos de Kubernetes y los registros recurren a una máquina desechable que ejecutae2fscksobre sus discos automáticamente. Para el disco de sistema de un espacio de trabajo, Restablecer a la base… lo vuelve a clonar y deja intacta la carpeta personal.
Cuándo recurrir a estas herramientas
- Deshacer daños en tu carpeta personal — un agente borró la carpeta equivocada, o un cambio en un dotfile rompió tu shell: Rebobinar la carpeta personal… hasta el último arranque bueno.
- Recuperar un archivo de una máquina que prefieres no arrancar — saca un cambio sin confirmar o un registro de
home.imgcon Extraer…. - Inspeccionar un punto de control antes de rebobinar, para confirmar que contiene lo que esperas: ábrelo desde
checkpoints/home/en el explorador ext4. - Rescatar una máquina que no arranca — deja que Reparar disco reproduzca el diario; si la causa es un archivo de configuración defectuoso, sustitúyelo in situ con el explorador y ejecuta fsck. Consulta Solución de problemas para diagnosticar fallos de arranque.
Valores predeterminados para desarrolladores
Unos cuantos ajustes de bajo nivel se leen del dominio de UserDefaults de la app, io.bromure.agentic-coding. Configúralos con defaults write mientras la app no esté en ejecución, y luego reiníciala:
| Clave | Efecto | Predeterminado |
|---|---|---|
vm.homeImageGB | Tamaño aparente (visible para el invitado), en GiB, de una imagen de inicio ext4 recién creada. El archivo del anfitrión es disperso, por lo que esto no cuesta nada de entrada. Limitado a 8–1024. Una carpeta personal heredada que migra a su primera imagen recibe al menos 64. | 16 |
vm.mtu | Límite de MTU para la NIC principal de la VM de una máquina, escrito en el invitado en cada arranque. El valor predeterminado de 1280 es seguro para VPN (WireGuard, IKEv2 y rutas PMTU corporativas). | 1280 |
terminal.allowGraphics | Reactiva el renderizado de imágenes en el terminal (protocolo de gráficos de kitty) desde el invitado. Desactivado de forma predeterminada, porque implica que el anfitrión descodifica bytes de imagen suministrados por el invitado — y ese mismo canal podría dibujar una interfaz falsa sobre el terminal. Actívalo solo si quieres que los agentes muestren imágenes en línea y aceptas ese riesgo. | NO |
ui.terminalBell | Deja sonar la campana de un terminal. Desactivado de forma predeterminada: los agentes hacen sonar la campana al final de cada turno, y el estado de la barra lateral ya te avisa. | NO |
Por ejemplo, para que las imágenes de la carpeta personal de las futuras máquinas aparezcan como 128 GiB:
defaults write io.bromure.agentic-coding vm.homeImageGB -int 128
Nota:
vm.homeImageGBafecta solo a las imágenes de la carpeta personal creadas después del cambio; las imágenes existentes conservan su tamaño. Una imagen de la carpeta personal se puede ampliar más adelante, pero no reducir.
Consejo: Para trabajo genuinamente desechable,
bromure-cli vm run --rmarranca un espacio de trabajo desechable al estilo Docker cuyo disco se elimina cuando la VM se detiene — documentado en CLI, API y MCP.
La lista completa de claves de UserDefaults y variables de entorno está en el Apéndice.