{ "meta": { "title": "Restaurando um backup — fluxos completos e personalizados ProxMenux", "description": "O fluxo de trabalho completo de restauração. Documenta as três ações disponíveis em qualquer backup (ver, baixar, restaurar), a verificação de compatibilidade e seus resultados, os modos de restauração Full e Custom, a classificação do caminho que decide o que se aplica ao vivo e o que espera pela próxima inicialização, o expedidor on-boot e o passe de reinstalação do componente pós-boot.", "ogTitle": "Cópia de segurança ProxMenux — restauração", "ogDescription": "Fluxos de restauração completos e personalizados com a verificação de compatibilidade, classificação de caminho, despacho on-boot e reinstalação pós-boot.", "twitterTitle": "Restaurando uma cópia de segurança de ProxMenux", "twitterDescription": "Como um backup de host ProxMenux é transformado de volta em um host Proxmox funcionando." }, "header": { "title": "Restaurar uma cópia de segurança", "description": "O fluxo de trabalho completo de restauração: de escolher um arquivo para uma máquina de trabalho. Documenta a verificação de compatibilidade, os dois modos de restauração, o expedidor on-boot, o passe de reinstalação pós-boot, e os mecanismos que tornam previsível o cross-host e o cross-kernel.", "section": "Cópias de segurança e restauro" }, "intro": { "title": "A restauração reproduz a fonte, não apenas os arquivos", "body": "Restaurar um backup ProxMenux exige mais que extrair arquivos. Antes das alterações, o manifesto é consultado para detectar diferenças entre origem e destino, caminhos que poderiam impedir o boot são excluídos e ajustes do usuário que não podem ser copiados literalmente são adaptados. Após a reinicialização necessária, tenta-se reinstalar os componentes compatíveis registrados (driver NVIDIA, Coral TPU e ferramentas GPU) para o kernel em execução no destino. Um único arquivo orienta a compatibilidade, a classificação dos caminhos e o trabalho durante e após o boot. Verifique os resultados dos componentes e os logs para confirmar o resultado." }, "threeActions": { "heading": "Três ações em um backup", "intro": "A seleção de uma cópia de segurança da lista abre um menu com três ações.", "actionRows": [ { "action": "Ver", "detail": "Abre uma visão somente de leitura do arquivo: conteúdo manifest.json (nome do host de origem, versão PVE, kernel, hardware, componentes instalados), a lista de caminhos dentro do rootfs/, e uma diff do que mudaria no host atual se o backup fosse aplicado." }, { "action": "Transferir", "detail": "Exporta o arquivo como um arquivo portátil .tar.zst (tar comprimido com zstd). Pode ser extraído em qualquer sistema Linux com tar --zstd -xf FILE.tar.zst, ou em macOS/Windows com qualquer ferramenta que suporte zstd (7-Zip, PeaZip, Keka...). A árvore extraída contém manifest.json, metadata/ e rootfs/ — exatamente o mesmo layout que a restauração consome. Útil para inspeção offline ou para restauração em um host sem acesso ao destino original (PBS, Borg)." }, { "action": "Restaurar", "detail": "O caminho de escrita. Extrai o arquivo em um diretório de encenação, executa a verificação de compatibilidade e apresenta o seletor de modo (Full ou Custom)." } ] }, "compatibilityCheck": { "heading": "Verificação da compatibilidade", "intro": "Antes de qualquer arquivo ser escrito, hb_compat_check compara o estado descrito no manifesto contra o host alvo. A verificação executa somente leitura e produz quatro saídas independentes que impulsionam o resto da restauração.", "outputRows": [ { "output": "Marca da direcção", "detail": "HB_COMPAT_KERNEL_DIRECTION assume same, bk_newer ou bk_older ao comparar as versões principais do kernel do backup e do destino. Orienta o filtro de caminhos seguros entre kernels, ativo apenas em bk_older, e a adaptação de ajustes descrita na página correspondente." }, { "output": "Lista de caminhos excluídos", "detail": "RS_SKIP_PATHS — cada caminho que a restauração não deve aplicar-se. Populado por dois mecanismos: deriva de hardware (falta de NIC, falta de ID de armazenamento, estrangeiro ZFS pool) e — quando a direcção é bk_older — a lista dos caminhos insegura." }, { "output": "Plano de remapeamento da NIC", "detail": "Quando um NIC no alvo tem o mesmo MAC que um na fonte, mas um nome diferente (típico após uma troca de placa-mãe), a verificação de compatibilidade registra um plano de renome (HB_NIC_REMAP) que irá reescrever /etc/network/interfaces durante a restauração." }, { "output": "Plano de reversão", "detail": "Calculado por compute_rollback_plan.sh. Lista VMs, LXCs e componentes presentes no destino e ausentes do backup. A confirmação permite remover os hóspedes adicionais antes de reiniciar. A remoção dos componentes continua manual e a exclusão dos hóspedes pode falhar, sem garantia de correspondência exata." } ], "reportBody": "A verificação também emite um relatório estruturado (HB_COMPAT_RESULTS) classificado como PASS / INFO / WARN / FAIL. AVISO e entradas de FAIL superfície no painel pré-restaurar; a restauração se recusa a prosseguir apenas quando um FAIL está presente que o usuário não pode resolver clicando em Continuar." }, "twoModes": { "heading": "Restauração completa vs Restauração personalizada", "intro": "Após a verificação de compatibilidade, aparece a escolha do modo. Ela determina o que aplicar e não como: os dois modos usam o mesmo processo.", "modeRows": [ { "mode": "Restauração completa", "detail": "Aplica cada caminho no arquivo que sobrevive aos filtros de deriva e cross-kernel. Também executa a instalação do pacote e o componente auto-reinstalar passe. Este é o padrão e a escolha recomendada — o objetivo é reproduzir a fonte, não pegar peças." }, { "mode": "Restauração personalizada", "detail": "Abre uma lista de verificação mostrando cada caminho que o arquivo carrega. O usuário marca um subconjunto. Os caminhos bloqueados pelo filtro do kernel cruzado aparecem acinzentados e não podem ser selecionados. A instalação do pacote e a auto-reinstalação do componente são ignoradas por padrão no modo Personalizado — o usuário está sinalizando que deseja uma aplicação parcial, não uma reprodução completa." } ] }, "pathClassification": { "heading": "Como os caminhos são classificados", "intro": "Cada caminho selecionado para a restauração é classificado por hb_classify_path em uma das três categorias. A categoria determina quando o caminho é aplicado ao sistema e porquê.", "rows": [ { "class": "hot", "detail": "Caminhos aplicados imediatamente para o sistema de execução. O serviço que os consome capta a mudança por conta própria ou na próxima recarga — não é necessário reiniciar. Estes são a maior parte de um backup: /etc/ssh, /etc/apt, /etc/cron.*, /root, /usr/local/bin, arquivos de configuração de serviço geral, etc." }, { "class": "reboot", "detail": "Caminhos adiados para a próxima inicialização, em vez de aplicados imediatamente por este processo. Afetam a configuração de boot: a geração do carregador lê /etc/default/grub, as montagens usam /etc/fstab e a carga de módulos usa /etc/modules. Os arquivos pendentes são aplicados após reiniciar e os artefatos de boot necessários são então regenerados. Exemplos: /etc/default/grub, /etc/kernel, /etc/modules, /etc/fstab, /etc/zfs, /etc/modprobe.d." }, { "class": "dangerous", "detail": "Caminhos NÃO aplicados no sistema em execução: uma escrita a quente poderia corromper o estado ou cortar a ligação ativa. Ficam no conjunto pendente: /etc/network é escrito no início do arranque seguinte, antes de a rede arrancar, e /etc/pve é escrito pelo dispatcher pós-arranque quando o sistema de ficheiros do cluster está disponível. Exemplos: /etc/pve (pmxcfs é uma montagem FUSE com a configuração ativa do cluster), /var/lib/pve-cluster (dados ativos do cluster, guardados no diretório de recuperação apenas para recuperação manual), /etc/network (poderia reconfigurar a própria interface usada pela ligação SSH e cortar a sessão)." } ] }, "fullFlow": { "heading": "O fluxo de trabalho completo de restauração", "intro": "O pipeline completo da seleção de arquivos para uma máquina de trabalho restaurada. Cada etapa alimenta a seguinte; o estado escrito por fases anteriores é consumido por fases posteriores.", "diagram": "┌─────────────────────────────────────────────────────────────────┐\n│ Archive → staging_root/ │\n│ manifest.json metadata/ rootfs/ │\n└──────────────────────────────┬──────────────────────────────────┘\n │\n ▼\n ┌─────────────────────────────────────────────────────────┐\n │ 1. hb_compat_check │\n │ · hardware drift → RS_SKIP_PATHS │\n │ · kernel direction → same / bk_newer / bk_older │\n │ · NIC remap plan │\n │ · hydration plan (bk_older only) │\n │ · rollback plan │\n └──────────────────────────────┬──────────────────────────┘\n │\n ▼\n ┌─────────────────────────────────────────────────────────┐\n │ 2. Confirmation dialog │\n │ Shows: hot count, pending count, drift, hydration, │\n │ NIC remap, cross-kernel note, reinstalls preview │\n └──────────────────────────────┬──────────────────────────┘\n │ (accepted)\n ▼\n ┌─────────────────────────────────────────────────────────┐\n │ 3. Apply hot paths → LIVE │\n │ _rs_apply rsyncs each hot path │\n │ from staging_root/rootfs to / │\n │ (skips paths in RS_SKIP_PATHS) │\n └──────────────────────────────┬──────────────────────────┘\n │\n ▼\n ┌─────────────────────────────────────────────────────────┐\n │ 4. _rs_prepare_pending_restore │\n │ /var/lib/proxmenux/pending-restore/ │\n │ ├── apply-on-boot.list │\n │ ├── plan.env │\n │ ├── rs-skip-paths.txt │\n │ └── rootfs/ (deferred paths) │\n │ Enable proxmenux-restore-onboot.service │\n └──────────────────────────────┬──────────────────────────┘\n │\n ▼\n ┌─────────────────────────────────────────────────────────┐\n │ 4b. _rs_import_data_pools │\n │ Imports non-root ZFS pools whose disks are all │\n │ present; retries with -f on foreign hostid; │\n │ skips with a warning when disks are missing. │\n │ Log: /var/log/proxmenux/restore-datapools-*.log │\n └──────────────────────────────┬──────────────────────────┘\n │\n ▼\n ┌─────────────────────────────────────────────────────────┐\n │ 5. _rs_run_complete_extras │\n │ packages.manual.list │\n │ → cascade-safe filter │\n │ → apt-get install │\n └──────────────────────────────┬──────────────────────────┘\n │\n ▼\n ┌─────────────────────────────────────────────────────────┐\n │ 6. REBOOT │\n └──────────────────────────────┬──────────────────────────┘\n │\n ▼\n ┌─────────────────────────────────────────────────────────┐\n │ 7. apply_pending_restore.sh (on early boot) │\n │ Reads plan.env │\n │ Applies apply-on-boot.list (filtered) │\n │ Installs the postboot systemd unit │\n └──────────────────────────────┬──────────────────────────┘\n │\n ▼\n ┌─────────────────────────────────────────────────────────┐\n │ 8. apply_cluster_postboot.sh (~10 minutes) │\n │ Runs after pve-cluster is up │\n │ · Applies /etc/pve entries to pmxcfs │\n │ · update-initramfs -u -k all │\n │ · update-grub / proxmox-boot-tool refresh │\n │ · component --auto-reinstall (nvidia, coral, ...) │\n │ · Boot sanity check │\n │ · Notification: \"Host restore finished\" │\n └─────────────────────────────────────────────────────────┘" }, "pendingMachinery": { "heading": "A máquina de restauro pendente", "intro": "Os caminhos classificados como reboot ou dangerous, e a hidratação escreve, são encenados para o próximo boot em vez de serem aplicados ao vivo. Isto é feito através de um pequeno conjunto de arquivos auto-suficientes sob /var/lib/proxmenux/pending-restore/:", "rows": [ { "file": "apply-on-boot.list", "content": "Um caminho relativo por linha — o conjunto exato de caminhos apply_pending_restore.sh será aplicado a partir dos rootfs encenados. A leitura deste ficheiro diz ao utilizador exactamente o que irá mudar na próxima inicialização." }, { "file": "plan.env", "content": "Variáveis de ambiente carregadas pelo script de inicialização: ID da restauração, indicadores de compatibilidade (HB_COMPAT_CROSS_VERSION, HB_COMPAT_KERNEL_DIRECTION, HB_HYDRATION_APPLIED), consentimento para reversão e opções do cluster." }, { "file": "rs-skip-paths.txt", "content": "A lista final RS_SKIP_PATHS, persistiu assim que apply_pending_restore.sh aplica as mesmas exclusões após reinicialização que foram computadas durante a etapa interativa. Impedi que caminhos inseguros sejam restaurados no momento do arranque." }, { "file": "rootfs/", "content": "Os próprios arquivos encenados — os bytes exatos que serão estabelecidos. Mantido no mesmo sistema de arquivos que / para que o rsync on-boot é rápido e não depende de armazenamento externo ainda sendo acessível no arranque." } ], "unitBody": "A unidade systemd proxmenux-restore-onboot.service é ativada ao fim da etapa interativa. Esse serviço executa uma vez no início do próximo boot, chama apply_pending_restore.sh e depois se desativa. A condição ConditionPathExists=/var/lib/proxmenux/pending-restore/state impede qualquer ação quando não há restauração pendente." }, "postbootDispatcher": { "heading": "O expedidor pós-boot — apply_cluster_postboot.sh", "intro": "Onde termina o passo interativo e onde acontece a reprodução real do hospedeiro. O apply_cluster_postboot.sh é instalado como uma segunda unidade systemd de um tiro (proxmenux-apply-cluster-postboot.service) cujos alvos After=/Wants= garantem que ele seja executado apenas após pve-cluster e network-online estão em cima. Aqui é onde o hospedeiro-visível restaurar ações terra.", "tasks": [ { "task": "Aplicar /etc/pve", "detail": "/etc/pve é uma montagem FUSE ao vivo pmxcfs — não pode ser escrita no arranque inicial. O expedidor copia arquivos dos rootfs pendentes para o /etc/pve ao vivo uma vez que o sistema de arquivos de cluster está acima, um arquivo de cada vez, sem reiniciar pve-cluster. O /var/lib/pve-cluster/config.db capturado do backup (ou o config.db.raw-fallback) é materializado com o systemctl stop pve-cluster → cópia de arquivo atômico → systemctl start pve-cluster padrão, então pmxcfs re-ler o estado restaurado no caminho de volta." }, { "task": "Reconstruir initramfs e bootloader", "detail": "Executa update-initramfs -u -k all através de cada kernel instalado, em seguida, update-grub (GRUB instala) ou proxmox-boot-tool refresh (systemd-boot / ZFS instala). Pulou se o passo interativo determinou que nada mudou nos caminhos que afetam essas ferramentas." }, { "task": "Reinstalar automaticamente o componente", "detail": "Lê components_status.json restaurado e percorre os instaladores compatíveis (nvidia_driver, coral_driver, amdgpu_top, intel_gpu_tools). Cada instalador selecionado usa --auto-reinstall, lê o estado registrado e reinstala para o ambiente de destino, recompilando módulos quando necessário. A operação espera o reboot para usar o kernel então ativo. Falhas individuais são registradas e não interrompem o próximo componente." }, { "task": "Verificação da inicialização", "detail": "Antes de iniciar a notificação de conclusão, verifica que proxmox-boot-tool status mostra um ESP configurado, cada /boot/vmlinuz-* tem um diretório /lib/modules/<ver> correspondente, e /vmlinuz resolve. Qualquer inconsistência aparece na notificação em vez de ser escondida." }, { "task": "Notificação de conclusão", "detail": "Envia o evento Host restore finished através de hb_notify_lifecycle. Inclui duração total, contagem de caminhos aplicados, avisos de verificação de sanidade, se houver, e um link para o log em /var/log/proxmenux/proxmenux-cluster-postboot-*.log. Se as notificações não forem configuradas, o evento é silencioso — o registro ainda registra tudo." } ] }, "liveProgress": { "heading": "Progresso ao vivo na aba Backups do Monitor", "body": "Após a reinicialização da guia Backups do ProxMenux Monitor, um cartão pós-restore ao vivo reflete o estado do proxmenux-apply-cluster-postboot.service enquanto ele é executado. O cartão é conduzido pelo /var/lib/proxmenux/restore-state.json, que o expedidor atualiza em cada marco (aplicar configuração de cluster, reconstruir initramfs, atualizar carregador de boot, reinstalar por componente, verificar sanidade de inicialização, finalizar).", "fields": [ { "name": "Emblema de estado", "detail": "Um dos estados Restauração em andamento, Restauração concluída ou Restauração falhou. O cartão consulta o arquivo a cada 2 segundos durante a execução e a cada 30 segundos depois." }, { "name": "Barra de progresso + contador de passos", "detail": "Mostra N/M steps e o nome da etapa atual. Durante a restauração, o tempo estimado é calculado com base nas etapas concluídas e no tempo decorrido." }, { "name": "Lista de componentes", "detail": "Uma linha por driver sendo reinstalado (NVIDIA, ferramentas Intel GPU, ferramentas AMD, Coral TPU) com installing / ok / failed mais um link para o log por componente em /var/log/proxmenux/component-*.log." }, { "name": "Importação de pools de dados", "detail": "O bloco data_pools_import mostra cinco linhas coloridas: Importados, Forçados (com -f por hostid de outro host), Ignorados, discos parciais (apenas alguns discos presentes), Ignorados, discos ausentes (nenhum disco presente) e Falhas. O estado fica em /var/lib/proxmenux/restore-state.json e o log bruto da execução em /var/log/proxmenux/restore-datapools-<timestamp>.log." }, { "name": "Avisos de integridade de inicialização", "detail": "O processo verifica diretórios /lib/modules/<kernel> ausentes, falta de configuração ESP e links simbólicos /vmlinuz com destino inexistente. Os avisos aparecem em uma faixa colorida." }, { "name": "Delta de reversão", "detail": "Lista VMs, LXCs e componentes que existem no alvo, mas não estavam na cópia de segurança restaurada — as mesmas entradas surgiram na janela de rollback destrutivo pré-restore. Cada linha carrega o comando de limpeza manual." }, { "name": "Cauda de log", "detail": "A última 600 linhas de proxmenux-cluster-postboot-<ts>.log, com Apenas questões filtro que mantém apenas linhas correspondentes error, warning, failed, ✗ ou traceback." } ], "dismissBody": "Uma vez que a restauração é completo ou falhado, um botão de Dispensa colapsa o cartão. O arquivo de estado está preservado e o botão Histórico reabre-o mais qualquer restauração anterior (as últimas execuções 20 são arquivadas sob /var/lib/proxmenux/restore-history/).", "imageAlt": "Janela Detalhes do progresso da restauração no ProxMenux Monitor durante a execução: indicador azul, etapa Reconstruindo initramfs, tempo restante estimado, barra parcialmente preenchida e últimas linhas do log em tempo real.", "imageCaption": "O modal Detalhes enquanto o expedidor pós-boot ainda está em execução — emblema, passo atual, tempo restante e cauda de log ao vivo.", "detailsImageAlt": "O mesmo modo Detalhes após a restauração ter terminado, com o emblema verde Restaurar completo, a duração total de execução (0m53s), uma barra de progresso 6/6, o delta de Rollback vazio e o log de postboot arquivado.", "detailsImageCaption": "O mesmo modal uma vez que a execução tenha terminado — emblema, duração total, barra de progresso preenchida e o log de postboot arquivado." }, "postbootExample": { "heading": "Como é o post-boot na consola", "body": "No console físico, um processo encerrado com sucesso mostra [ OK ] Finished proxmenux-apply-cluster-postboot.service, geralmente perto dos OK de multi-user.target e graphical.target. Isso marca o fim do processo. Ainda podem existir falhas de componentes ou avisos de boot registrados; confira os estados e logs no Monitor antes de considerar o host totalmente restaurado.", "imageAlt": "Console físico Proxmox com '[ OK ] Finished proxmenux-apply-cluster-postboot.service - ProxMenux Apply Cluster Configs (post-boot).', seguido de OK para multi-user.target e graphical.target, com a solicitação de login acima.", "imageCaption": "Console físico ao fim do processo. 'Finished proxmenux-apply-cluster-postboot.service' marca a conclusão, também indicada por 'Host restore finished' no Monitor. Os resultados dos componentes e os avisos ainda precisam ser verificados." }, "tenMinutes": { "heading": "Por que os últimos dez minutos importam", "intro": "A reinicialização em si leva segundos, mas o expedidor pós-boot passa cerca de dez minutos terminando a restauração. Durante esta janela, o host é acessível e o login funciona, mas alguns serviços (principalmente GPU-driver-dependentes) ainda não estão disponíveis. Discriminação de tempo para um host Proxmox típico com NVIDIA + Coral instalado:", "rows": [ { "stage": "Boot + pve-cluster pronto", "time": "~30 s", "detail": "Inicialização padrão do Proxmox. SSH, interface web e login ficam disponíveis ao fim desta etapa." }, { "stage": "Aplicar /etc/pve aos pmxcfs", "time": "~10 s", "detail": "Rápido — pequenos arquivos de configuração copiados um por um para o sistema de arquivos de cluster ao vivo." }, { "stage": "Reconstruir initramfs entre kernels", "time": "3–5 min", "detail": "update-initramfs -u -k all reconstrói uma imagem initramfs por kernel instalado. O volume da espera." }, { "stage": "Reconstruir a configuração do carregador de arranque", "time": "10–30 s", "detail": "update-grub ou proxmox-boot-tool refresh. Rápido mesmo em ZFS." }, { "stage": "Reinstalação do controlador NVIDIA (se aplicável)", "time": "5–10 min", "detail": "Baixa a versão gravada do driver, compila os módulos DKMS contra o kernel atual, aplica o patch ProxMenux se a fonte o tiver. Uma tarefa mais longa." }, { "stage": "Reinstalação do Coral e de outros componentes", "time": "3–5 min", "detail": "Compilação DKMS para Coral, apt install para intel-gpu-tools e download e instalação do .deb para amdgpu_top." }, { "stage": "Verificação de inicialização e notificação", "time": "~2 s", "detail": "Exige poucos recursos. A notificação informa o usuário assim que a execução termina." } ], "outroBody": "Nesse intervalo, ferramentas podem faltar após o login (nvidia-smi não encontrado, coral não detectado) porque a reinstalação continua em segundo plano. A notificação marca o fim do processo; confira resultados dos componentes, avisos e logs para distinguir sucessos de falhas individuais." }, "destructiveRollback": { "heading": "O retrocesso destrutivo opcional", "body": "A restauração é aditiva por padrão: VMs, LXCs e componentes adicionais permanecem. Se houver diferenças, a confirmação oferece Executar reversão destrutiva?, com Não por padrão. Aceitar chama _rs_execute_rollback antes do reboot para tentar excluir as VMs e os LXCs adicionais listados. Componentes são indicados para desinstalação manual, pois a automática não foi implementada. Falhas de exclusão são informadas e o processo continua, sem garantia de correspondência exata. Confira nomes e VMIDs/CTIDs antes dessa opção destrutiva." }, "logs": { "heading": "Onde ficam os logs", "rows": [ { "log": "/var/log/proxmenux/restore-YYYYMMDD_HHMMSS.log", "detail": "Gravado na etapa interativa: resultados de compatibilidade, filtro de diferenças, plano de adaptação, saídas da aplicação em execução e da preparação pendente, instalação de pacotes." }, { "log": "/var/log/proxmenux/apply-pending-YYYYMMDD_HHMMSS.log", "detail": "Gravado por apply_pending_restore.sh no início do boot: carregamento de plan.env, processamento de apply-on-boot e filtro dos caminhos excluídos." }, { "log": "/var/log/proxmenux/proxmenux-cluster-postboot-YYYYMMDD_HHMMSS.log", "detail": "Escrito por apply_cluster_postboot.sh. Contém: pve-cluster aplicar, initramfs e saída bootloader, por componente saída instalador, verificação de sanidade, carga útil de notificação." }, { "log": "/var/log/proxmenux/component--YYYYMMDD_HHMMSS.log", "detail": "Um log por componente instalador (nvidia, coral, etc.) que correu na passagem pós-boot. Útil quando a reinstalação de um componente específico falhou e o usuário precisa da própria saída da ferramenta." }, { "log": "/var/log/proxmenux/restore-datapools-YYYYMMDD_HHMMSS.log", "detail": "Escrito por _rs_import_data_pools. Contém: enumeração de pools não-root do manifesto, resultado por pool (importado de forma limpa, importado com -f para hostida estrangeira, ignorado devido à falta de discos, ou falhou), e a saída bruta de cada chamada zpool import." } ] }, "whereNext": { "heading": "Para onde ir a seguir", "items": [ { "label": "Restauração do kernel cruzado", "href": "/docs/backup-restore/cross-kernel", "tail": " — o filtro seguro de direcção e o passe de hidratação invocado quando o núcleo alvo difere do do backup." }, { "label": "Como funciona", "href": "/docs/backup-restore/how-it-works", "tail": " — a estrutura do arquivo, o manifesto e o inventário de aplicativos usados pela restauração." }, { "label": "Trabalhos agendados", "href": "/docs/backup-restore/scheduled-jobs", "tail": " — o fluxo não acompanhado que produz os arquivos que esta página consome." } ] } }