Avançado

Este capítulo reúne as superfícies para utilizadores avançados — as que usa de vez em quando, não todos os dias. Abrange o regresso da pasta pessoal de uma máquina a um arranque anterior com Rebobinar a pasta pessoal…, o navegador de ficheiros ext4 integrado, que abre as imagens de disco de uma máquina diretamente no seu Mac sem arrancar a VM, a verificação nativa do sistema de ficheiros e alguns valores de configuração de baixo nível.

Uma máquina (um espaço de trabalho, no editor de definições) guarda os seus dados em duas imagens de disco Linux ext4: o disco de sistema e a imagem da pasta pessoal. Tudo o que se segue pressupõe que está à vontade com o modelo de armazenamento descrito em Máquinas e Definições de recursos.

Rebobinar a pasta pessoal de uma máquina

Sempre que uma máquina arranca com sucesso, o Bromure tira um ponto de controlo copy-on-write da sua imagem da pasta pessoal — a /home/ubuntu que contém os checkouts dos seus projetos, dotfiles, .ssh, histórico da shell e o estado dos agentes. Os pontos de controlo são mantidos por escalões: os últimos arranques, depois um por dia durante uma semana, depois um por semana durante um mês. Só ocupam espaço em disco real à medida que a pasta pessoal atual se afasta deles.

Rebobinar a pasta pessoal… é a forma habitual de os usar:

  1. Na barra lateral, abra Máquinas virtuais e clique no botão ⋯ na linha da máquina.
  2. Escolha Rebobinar a pasta pessoal…. Abre-se uma folha intitulada Rebobinar a pasta pessoal de «‹máquina›»: «Cada ponto é a pasta pessoal tal como estava quando esse arranque começou. O próximo arranque parte do ponto que escolher; a pasta pessoal atual é guardada como um novo ponto, por isso isto pode ser anulado aqui.»
  3. Escolha um ponto na lista. Cada linha mostra a data e a hora, há quanto tempo foi e o tamanho do ponto de controlo em disco.
  4. Clique em Rebobinar.
A folha Rebobinar a pasta pessoal de «Web app», a explicar que cada ponto é a pasta pessoal tal como estava quando esse arranque começou, com a mensagem Ainda não há pontos de reversão — é tirado um sempre que esta máquina arranca, e os botões Cancelar e Rebobinar

Quando termina, a folha indica «Concluído — o próximo arranque de «‹máquina›» parte da sua pasta pessoal de ‹data›.» Mais nada muda: o disco de sistema, as definições da máquina e as suas credenciais ficam como estão.

A saber:

  • A máquina tem de estar desligada. A imagem da pasta pessoal é trocada por inteiro, por isso não pode estar em uso. Enquanto a máquina está a correr, a folha indica «A máquina está a correr — a pasta pessoal não pode ser trocada enquanto está em uso. Desligue-a primeiro.» e oferece um botão Desligar; Rebobinar fica desativado até a máquina estar desligada.
  • Um rebobinar pode ser anulado. Antes da troca, a pasta pessoal atual torna-se um novo ponto de reversão no topo da mesma lista. Para anular, abra novamente Rebobinar a pasta pessoal… e escolha-o.
  • Ainda sem pontos. Uma máquina que nunca arrancou, ou que acabou de ser criada, mostra «Ainda não há pontos de reversão — é tirado um sempre que esta máquina arranca.»
  • Máquinas mais antigas. Uma máquina que ainda guarda a pasta pessoal numa pasta do Mac (a antiga pasta pessoal partilhada) não tem imagem para rebobinar; a folha indica «Esta máquina guarda a pasta pessoal no Mac, não numa imagem — nada para rebobinar.» Atualize primeiro o armazenamento no painel Recursos.
  • Máquinas remotas. Numa janela espelho de cliente rico, Rebobinar a pasta pessoal… funciona da mesma forma, com os pontos de controlo do servidor.

As outras ações de armazenamento

O painel Recursos da máquina (⋯ › Editar… › Recursos) mantém as ações mais antigas, por camada. Ficam desativadas enquanto a janela da máquina estiver aberta («Feche primeiro a janela da sessão.»):

BotãoCamadaO que faz
Restaurar pasta pessoal…Pasta pessoal (ext4)A mesma reversão que Rebobinar a pasta pessoal…, como um alerta com uma lista pendente de pontos: Restaurar / Cancelar. Primeiro é tirado um ponto de controlo da pasta pessoal atual.
Apagar pasta pessoal…Pasta pessoalApaga tudo em /home/ubuntu — clones de projetos, histórico da shell, caches, o par de chaves SSH da máquina. Os ficheiros geridos pelo Bromure (.bashrc, .gitconfig, configurações das CLIs) são reconstruídos a partir das definições da máquina no próximo arranque.
Redefinir para a base…Disco de sistemaVolta a clonar o disco de sistema a partir da imagem de base. Tudo o que foi instalado com apt e as alterações em /etc, /var, /usr, /opt perdem-se; a pasta pessoal sobrevive.

O menu ⋯ da máquina também tem Redefinir disco, a mesma redefinição do disco de sistema. Consulte Definições de recursos para o painel completo.

O navegador de ficheiros ext4

O macOS não suporta ext4 nativamente, por isso normalmente a única forma de ver o interior das imagens de disco de uma máquina é arrancar a VM. O Bromure evita isso com o seu próprio leitor e escritor de ext4 sem dependências: analisa diretamente o formato em disco e mostra-lhe a árvore.

Espaços de trabalho › Abrir ficheiro ext4… abre qualquer .img ext4 (também ext2 ou ext3) — um sistema de ficheiros em bruto ou um disco particionado MBR/GPT — numa janela ao estilo do Finder. Nada é montado, nenhuma VM arranca e não são necessários privilégios elevados.

Nota: A imagem abre em modo só de leitura por predefinição — seguro mesmo que uma VM ainda tenha o disco associado. A edição é um passo distinto e explicitamente controlado (consulte Editar uma imagem).

O que pode abrir

Uma máquina reside em ~/Library/Application Support/BromureAC/profiles/<uuid>/. Duas imagens aí vale a pena navegar, além dos seus pontos de controlo de reversão:

ImagemO que o navegador mostraA linha de informação da barra de ferramentas indica
disk.imgA raiz do sistema Ubuntu — /etc, /var, /usr, /opt, e assim por diante. O disco tem uma disposição GPT (uma partição EFI mais a raiz ext4); o navegador localiza a raiz ext4 automaticamente.partition @…MiB
home.imgA /home/ubuntu do convidado diretamente na raiz do sistema de ficheiros — dotfiles, checkouts de projetos, .ssh, histórico da shell e a pasta própria do Bromure, .bromure/.raw
checkpoints/<ts>.imgUm ponto de controlo de disk.img, tirado a cada arranque.partition @…MiB
checkpoints/home/<ts>.imgUm ponto de controlo de home.img, tirado a cada arranque — os pontos que Rebobinar a pasta pessoal… lista.raw

A imagem da pasta pessoal comporta-se assim porque o convidado a monta por cima de /home/ubuntu no arranque, pelo que o diretório raiz da própria imagem é essa pasta pessoal. Os nós Kubernetes, os registos e o conector de mensagens guardam os seus discos em kube/<id>/nodes/<uuid>/, e abrem-se da mesma forma.

Abrir uma imagem

  1. Escolha Espaços de trabalho › Abrir ficheiro ext4….
  2. Aparece um painel de abertura intitulado Abrir imagem de disco ext4 — «Escolha uma imagem de disco ext4 .img (em bruto ou particionada).» — a começar em ~/Library/Application Support/BromureAC. Navegue até à pasta profiles/<uuid>/ de uma máquina e selecione disk.img, home.img ou um ficheiro dentro de checkpoints/.
  3. O navegador abre numa janela intitulada ext4 — «nome do ficheiro», mostrando a raiz do sistema de ficheiros.

A linha de informação da barra de ferramentas resume o volume: a etiqueta, o tamanho total, se o sistema de ficheiros foi encontrado em bruto ou num deslocamento de partição, e o seu estado — clean, not cleanly unmounted ou journal needs recovery. Há uma janela por imagem; reabrir uma imagem que já está aberta apenas foca a sua janela.

A vista principal é uma tabela de três colunas — Nome, Tamanho e Tipo — com as diretorias listadas primeiro. O tipo distingue pastas, ficheiros e ligações simbólicas, bem como os tipos de nó Unix especiais (Char, Block, FIFO, Socket).

  • Navegar — faça duplo clique numa pasta para entrar nela; clique na seta Subir da barra de ferramentas para voltar atrás. O caminho de navegação mostra o caminho atual.
  • Pré-visualizar — faça duplo clique num ficheiro, ou clique com o botão direito e escolha Pré-visualizar. Os ficheiros de texto são apresentados como texto; os ficheiros binários são apresentados como um despejo hexadecimal. Em qualquer caso, a pré-visualização é limitada ao primeiro 1 MiB, e o rodapé indica quantos dos bytes totais do ficheiro são mostrados. Uma ligação simbólica é pré-visualizada como o seu caminho de destino.
  • Extrair — clique com o botão direito num ficheiro e escolha Extrair… para gravar todo o seu conteúdo no seu Mac através de um painel de gravação. Este é o caminho só de leitura que usará com mais frequência.

Editar uma imagem

A edição está deliberadamente protegida por uma barreira. Clique em Ativar edição… na barra de ferramentas; o alerta Ativar a edição desta imagem de disco? avisa:

Edite apenas uma imagem cuja VM do espaço de trabalho esteja parada. Escrever num disco que uma VM em execução tem aberto irá corrompê-lo.

Clique em Ativar edição e a imagem reabre em modo de leitura-escrita, com um emblema A editar cor de laranja na barra de ferramentas. O menu de contexto de um ficheiro ganha então Substituir…: escolha um ficheiro do anfitrião cujo conteúdo sobrescreve o ficheiro selecionado no local. O editor recalcula a soma de verificação do inode, para que o resultado permaneça consistente.

Aviso: A substituição é apenas no local. O novo conteúdo tem de caber nos blocos já alocados do ficheiro — um ficheiro maior é recusado com Esse ficheiro teria de crescer (aumentar, criar e eliminar ficheiros não está ativado). Ficheiros com dados inline não podem ser editados. As escritas são recusadas enquanto o journal necessitar de recuperação — execute primeiro o fsck (abaixo). E nunca edite uma imagem que uma VM em execução tenha associada.

Verificar e reparar um disco

O Bromure verifica e repara imagens ext4 com o seu próprio verificador integrado — não há nada para instalar (o macOS não inclui e2fsprogs, e o Bromure não o usa). Encontra-o em três sítios:

  • Automaticamente, no arranque. Quando o arranque de uma máquina para devido a erros do sistema de ficheiros, o seu palco mostra ERRO DE DISCO — «O disco de sistema falhou a verificação do sistema de ficheiros no arranque, e o arranque não pode continuar.» — com Reparar disco e Redefinir disco do sistema…. Reparar disco para a VM, executa o verificador no disco de sistema e arranca de novo; nada é eliminado. Se o arranque seguinte voltar a falhar, redefinir é o caminho a seguir. Consulte Resolução de problemas.
  • No navegador ext4. O botão Executar fsck… da barra de ferramentas.
  • Na linha de comandos. bromure-cli vm fsck <workspace> [--repair] [--home] — consulte CLI, API e MCP.

No navegador, Executar fsck… pergunta Verificar esta imagem? — «Isto reproduz o journal do sistema de ficheiros se estiver sujo e verifica os metadados. A VM do espaço de trabalho tem de estar parada. Pode modificar a imagem.» — com Executar fsck e Cancelar. O resultado aparece numa folha intitulada fsck.ext4, com um resumo de uma linha por cima da saída completa:

ResumoSignificado
«O sistema de ficheiros está limpo.»Nada a fazer.
«Sistema de ficheiros reparado; está agora consistente.»O journal foi reproduzido; a imagem é agora exatamente o que o kernel do convidado confirmou por último.
«O sistema de ficheiros tem erros que este verificador não consegue reparar.»Danos para além de um journal inacabado.

A imagem é depois reaberta, para que o navegador mostre o estado reparado.

O que o verificador faz, e o que não faz:

  • Reparar reproduz o journal do sistema de ficheiros e limpa o indicador «precisa de recuperação». É toda a história para quase todos os discos Bromure danificados: as imagens ficam sujas quando uma VM é parada a meio de uma escrita ou morre, não por degradação dos dados.
  • Verificar confere sempre as somas de verificação do superbloco e dos descritores de grupo e depois percorre a árvore a partir da raiz, validando a soma de verificação e a árvore de extents de cada inode alcançável. Relata o que encontra, mas não o corrige.
  • Para danos que o verificador não consegue reparar, a solução honesta é o próprio e2fsck do Linux, dentro de uma VM. O convidado já verifica a imagem da pasta pessoal em cada arranque, e os nós Kubernetes e os registos recorrem a uma máquina descartável que executa e2fsck nos seus discos automaticamente. Para o disco de sistema de um espaço de trabalho, Redefinir para a base… volta a cloná-lo e deixa a pasta pessoal intacta.

Quando recorrer a estas ferramentas

  • Desfazer danos na sua pasta pessoal — um agente apagou a pasta errada, ou uma alteração num dotfile partiu a sua shell: Rebobinar a pasta pessoal… até ao último arranque bom.
  • Recuperar um ficheiro de uma máquina que prefere não arrancar — retire uma alteração não confirmada ou um registo de home.img com Extrair….
  • Inspecionar um ponto de controlo antes de rebobinar, para confirmar que contém o que espera: abra-o a partir de checkpoints/home/ no navegador ext4.
  • Salvar uma máquina que não arranca — deixe Reparar disco reproduzir o journal; se a causa for um ficheiro de configuração defeituoso, substitua-o no local com o navegador e execute o fsck. Consulte Resolução de problemas para o diagnóstico de falhas de arranque.

Predefinições para programadores

Alguns parâmetros de baixo nível são lidos do domínio UserDefaults da aplicação, io.bromure.agentic-coding. Defina-os com defaults write enquanto a aplicação não estiver em execução e depois reinicie:

ChaveEfeitoPredefinição
vm.homeImageGBTamanho aparente (visível pelo convidado), em GiB, de uma imagem de pasta pessoal ext4 recém-criada. O ficheiro do anfitrião é esparso, pelo que isto não tem custo inicial. Limitado a 8–1024. Uma pasta pessoal antiga que migra para a sua primeira imagem recebe pelo menos 64.16
vm.mtuLimite de MTU para a NIC principal da VM de uma máquina, escrito no convidado em cada arranque. A predefinição de 1280 é segura para VPN (WireGuard, IKEv2 e caminhos PMTU empresariais).1280
terminal.allowGraphicsReativa a renderização de imagens no terminal (protocolo de gráficos do kitty) a partir do convidado. Desligado por predefinição, porque implica que o anfitrião descodifica bytes de imagem fornecidos pelo convidado — e o mesmo canal poderia desenhar uma interface falsa por cima do terminal. Ligue-o apenas se quiser que os agentes apresentem imagens em linha e aceitar esse risco.NO
ui.terminalBellPermite que a campainha de um terminal toque. Desativado por predefinição: os agentes tocam a campainha no fim de cada turno, e o estado na barra lateral já o informa.NO

Por exemplo, para fazer com que as imagens de pasta pessoal de futuras máquinas apareçam como 128 GiB:

defaults write io.bromure.agentic-coding vm.homeImageGB -int 128

Nota: vm.homeImageGB afeta apenas as imagens de pasta pessoal criadas após a alteração; as imagens existentes mantêm o seu tamanho. Uma imagem de pasta pessoal pode ser aumentada mais tarde, mas não reduzida.

Dica: Para trabalho genuinamente descartável, bromure-cli vm run --rm arranca um espaço de trabalho descartável ao estilo do Docker cujo disco é eliminado quando a VM para — documentado em CLI, API e MCP.

A lista completa das chaves UserDefaults e das variáveis de ambiente está no Apêndice.