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:
- Na barra lateral, abra Máquinas virtuais e clique no botão ⋯ na linha da máquina.
- 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.»
- 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.
- Clique em 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ão | Camada | O 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 pessoal | Apaga 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 sistema | Volta 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:
| Imagem | O que o navegador mostra | A linha de informação da barra de ferramentas indica |
|---|---|---|
disk.img | A 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.img | A /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>.img | Um ponto de controlo de disk.img, tirado a cada arranque. | partition @…MiB |
checkpoints/home/<ts>.img | Um 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
- Escolha Espaços de trabalho › Abrir ficheiro ext4….
- 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é à pastaprofiles/<uuid>/de uma máquina e selecionedisk.img,home.imgou um ficheiro dentro decheckpoints/. - 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.
Navegar, pré-visualizar e extrair
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:
| Resumo | Significado |
|---|---|
| «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
e2fsckdo 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 executae2fscknos 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.imgcom 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:
| Chave | Efeito | Predefinição |
|---|---|---|
vm.homeImageGB | Tamanho 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.mtu | Limite 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.allowGraphics | Reativa 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.terminalBell | Permite 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.homeImageGBafeta 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 --rmarranca 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.