Ubuntu Recuperar um Sistema

Um Ubuntu que não liga quase nunca está perdido. Na maioria das vezes, uma linha errada num arquivo, uma senha esquecida ou um carregador de boot apagado impedem o sistema de subir, enquanto os seus arquivos continuam intactos no disco. Nesta aula você aprende as ferramentas de resgate, da mais simples à mais poderosa.

Você vai aprender
  • A entrar no recovery mode e abrir um shell de root.
  • Por que o disco aparece "somente leitura" e como liberar a escrita.
  • A consertar um /etc/fstab errado e a redefinir uma senha esquecida.
  • A usar um pendrive live com chroot para reinstalar o GRUB.
  • Quando e como rodar o fsck.

Antes do comando: a escada do resgate

Comece sempre pelo degrau mais baixo. Só suba se ele não resolver:

  1. Console de texto (Ctrl+Alt+F3): quando só a parte gráfica travou. Veja Quando o Sistema Trava.
  2. Kernel anterior no menu do GRUB: quando o problema começou depois de uma atualização. Veja Boot, GRUB e Kernel.
  3. Recovery mode: o sistema começa a ligar, mas para no meio. Você ganha um shell de root.
  4. Pendrive live + chroot: nem o GRUB aparece, ou o recovery mode não abre.
  5. Reinstalar mantendo a pasta pessoal: o último recurso, depois de salvar os arquivos.
Primeiro os dados, depois o conserto

Se os arquivos são importantes e não há backup, copie-os para um HD externo antes de tentar consertos que mexem no disco (fsck, reinstalar o GRUB, particionar). Com um pendrive live, isso é só arrastar e soltar no app Arquivos.


Recovery mode

  1. Ligue e abra o menu do GRUB (Esc em UEFI, Shift em BIOS).
  2. Escolha Advanced options for Ubuntu.
  3. Escolha a linha que termina em (recovery mode), de preferência do kernel atual.
  4. Aparece o Recovery Menu. Escolha root (Drop to root shell prompt).
Recovery Menu (filesystem state: read-only)

resume          Resume normal boot
clean           Try to make free space
dpkg            Repair broken packages
fsck            Check all file systems
grub            Update grub bootloader
network         Enable networking
root            Drop to root shell prompt          « esta
system-summary  System summary

Repare em filesystem state: read-only: o disco foi montado somente leitura, para que nada seja estragado sem querer. Depois de root e Enter:

Press Enter for maintenance
(or press Control-D to continue):
#> touch /teste
touch: cannot touch '/teste': Read-only file system      « ainda não dá para escrever

Liberar a escrita: mount -o remount,rw /

mount
Monta sistemas de arquivos (veja mount e fstab).
-o remount,rw
Opções: remount = montar de novo o que já está montado; rw = read-write, leitura e escrita.
/
A partição raiz, onde está o sistema.
#> mount -o remount,rw /
#> touch /teste && rm /teste && echo "agora dá para escrever"
agora dá para escrever

Neste shell você é root: não use sudo, e cuidado redobrado com rm. Quando terminar, saia com exit (volta ao menu e escolha resume) ou reinicie com reboot.


Caso 1: o fstab errado impede o boot

Uma linha errada em /etc/fstab, como um HD externo que não está ligado, faz o boot parar no modo de emergência:

You are in emergency mode. After logging in, type "journalctl -xb" to view
system logs, "systemctl reboot" to reboot, or "exit" to boot into default mode.
Cannot open access to console, the root account is locked.
See sulogin(8) man page for more details.

Press Enter to continue.

No Ubuntu, a conta root não tem senha, então esse modo de emergência não abre o shell. Use o recovery mode:

#> mount -o remount,rw /
#> cp /etc/fstab /etc/fstab.bak                     « cópia de segurança
#> nano /etc/fstab

No arquivo, ponha # no começo da linha suspeita, para desativá-la sem apagar:

UUID=691a91a0-48e6-40f9-8aeb-72c0e2f0e05e /         ext4  defaults          0 1
UUID=4C2A-9F13                            /boot/efi vfat  umask=0077        0 1
#UUID=8d3e1f2a-…                          /dados    ext4  defaults          0 2   « desativada

Confira antes de reiniciar:

#> findmnt --verify
Success, no errors or warnings detected            « em inglês: o recovery não carrega o português
#> reboot
Para não acontecer de novo

Em discos que nem sempre estão ligados, use a opção nofail no fstab. O boot segue mesmo sem o disco.


Caso 2: esqueci a senha

No recovery mode, você é root e pode definir uma senha nova para qualquer usuário, sem saber a antiga:

passwd
Troca senhas (password).
ana
O usuário cuja senha será trocada. Sem o nome, trocaria a do root.
#> mount -o remount,rw /
#> passwd ana
New password:                                       « nada aparece enquanto digita
Retype new password:
passwd: password updated successfully
#> reboot

O recovery mode costuma estar em inglês, por isso as mensagens aparecem assim. Esqueceu o nome do usuário? ls /home mostra as pastas pessoais.

Isso mostra por que o disco precisa de criptografia

Qualquer pessoa com acesso físico ao computador faz esse mesmo procedimento. Em notebooks, ative a criptografia do disco na instalação: sem a senha do disco, o recovery mode não abre nada.

Senha do chaveiro

Depois de trocar a senha assim, o desktop pode pedir a senha antiga do "chaveiro" (onde ficam senhas de Wi-Fi e navegador). Se você não lembra dela, o jeito é criar um chaveiro novo; as senhas guardadas no antigo se perdem.


Caso 3: nem o GRUB aparece — pendrive live + chroot

Quando aparece grub rescue>, ou o computador diz que não há sistema operacional, o carregador de boot sumiu ou está quebrado. Você vai iniciar pelo pendrive de instalação do Ubuntu, "entrar" no sistema instalado e reinstalar o GRUB lá de dentro.

A palavra-chave é chroot (change root, "mudar a raiz"): ele faz o terminal tratar uma pasta como se fosse o /. Montando o disco do sistema em /mnt e rodando chroot /mnt, os comandos passam a agir no Ubuntu instalado, e não no pendrive.

  1. Inicie pelo pendrive e escolha Experimentar o Ubuntu. Abra o terminal.
  2. Descubra as partições. Procure a ext4 grande (o sistema) e a vfat pequena (EFI):
    $ lsblk -f -e7
    NAME        FSTYPE FSVER LABEL UUID                                 FSAVAIL FSUSE% MOUNTPOINTS
    nvme0n1
    ├─nvme0n1p1 vfat   FAT32       4C2A-9F13                                           « a EFI
    └─nvme0n1p2 ext4   1.0         691a91a0-48e6-40f9-8aeb-72c0e2f0e05e                « o sistema
    …

    O próprio pendrive também aparece na lista (geralmente sda, com sistema de arquivos iso9660); ignore-o.

  3. Monte o sistema em /mnt e a EFI dentro dele:
    $ sudo mount /dev/nvme0n1p2 /mnt
    $ sudo mount /dev/nvme0n1p1 /mnt/boot/efi
  4. Empreste ao sistema montado as pastas especiais do pendrive (dispositivos, processos, firmware):
    $ for d in dev sys; do sudo mount --rbind /$d /mnt/$d; done
    $ sudo mount -t proc proc /mnt/proc
    $ sudo mount --bind /run /mnt/run
  5. Entre no sistema instalado. O prompt muda para root@ubuntu:/#:
    $ sudo chroot /mnt
    #> cat /etc/hostname
    notebook                                            « é o sistema instalado, não o pendrive
  6. Reinstale o GRUB e gere o menu:
    #> grub-install
    Installing for x86_64-efi platform.
    Installation finished. No error reported.
    #> update-grub
    Sourcing file `/etc/default/grub'
    Generating grub configuration file ...
    Found linux image: /boot/vmlinuz-7.0.0-38-generic
    …
    done
  7. Saia do chroot com exit, desmonte tudo e reinicie sem o pendrive:
    $ sudo umount -R /mnt
    $ reboot
mount --rbind /dev /mnt/dev
Recursive bind: faz /mnt/dev mostrar o mesmo conteúdo de /dev, inclusive o que está montado dentro dele.
chroot /mnt
Abre um shell em que /mnt vira o /.
umount -R /mnt
Desmonta /mnt e tudo o que foi montado dentro dele.

Dentro do chroot você também pode consertar pacotes (dpkg --configure -a, apt install -f), refazer o initramfs (update-initramfs -u -k all) ou trocar senhas. Só não confie no uname -r: ele mostra o kernel do pendrive.

Atalho gráfico: Boot-Repair

O Boot-Repair é um programa gráfico, de terceiros, que automatiza esse conserto. No pendrive live: sudo add-apt-repository ppa:yannubuntu/boot-repair, sudo apt install boot-repair e clique em "Reparação recomendada". Ele também gera um relatório útil para pedir ajuda em fóruns.


Verificar o sistema de arquivos: fsck

Depois de uma queda de energia ou de erros como Input/output error, o sistema de arquivos pode ter inconsistências. O fsck (file system check) verifica e corrige.

Nunca rode fsck numa partição montada

Corrigir uma partição em uso pode destruir dados. Rode pelo pendrive live (com a partição desmontada) ou pela opção fsck do Recovery Menu.

sudo fsck
O verificador. Para ext4 ele chama o e2fsck.
-f
Force: verifica mesmo se a partição parece "limpa".
/dev/nvme0n1p2
A partição, desmontada.
$ findmnt /dev/nvme0n1p2                             « nada aparece = não está montada
$ sudo fsck -f /dev/nvme0n1p2
fsck from util-linux 2.41.3
e2fsck 1.47.2 (1-Jan-2025)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/nvme0n1p2: 412345/31227904 files (0.4% non-contiguous), 31234567/124895744 blocks
$ echo $?
0                                                   « 0 = nenhum erro; 1 = erros corrigidos

Se houver problemas, o e2fsck pergunta antes de cada correção. Para aceitar todas, use -y. As versões nessa saída são ilustrativas.


Formas diferentes de fazer

ProblemaFerramenta mais simplesSe não der
Desktop travadoConsole de texto (Ctrl+Alt+F3)SysRq (veja Quando o Sistema Trava)
Quebrou depois de atualizarKernel anterior no GRUBRecovery mode → dpkg
fstab errado / senha esquecidaRecovery mode → rootPendrive live, montar e editar
Recovery mode não abreTecla e no GRUB + init=/bin/bash no fim da linha linuxPendrive live + chroot
GRUB sumiuPendrive live + chroot + grub-installBoot-Repair
Disco com errosRecovery Menu → fsckPendrive live + fsck -f

Quando não funciona

"Read-only file system" no recovery mode
#> nano /etc/fstab
[ Error writing /etc/fstab: Read-only file system ]

O que aconteceu: esqueceu de liberar a escrita.

Como resolver: mount -o remount,rw / e tente de novo.

Montei o disco e só aparece a pasta EFI
$ sudo mount /dev/nvme0n1p1 /mnt
$ ls /mnt
EFI                                                 « montou a EFI, não o sistema

O que aconteceu: você montou a partição errada. É fácil confundir a EFI com o sistema.

Como resolver: sudo umount /mnt, rode lsblk -f de novo e escolha a partição ext4 grande. Se o disco for criptografado, abra-o antes com sudo cryptsetup open /dev/nvme0n1p3 disco.

grub-install: "cannot find EFI directory"

O que aconteceu: a partição EFI não foi montada em /mnt/boot/efi antes do chroot.

Como resolver: saia do chroot (exit), rode sudo mount /dev/nvme0n1p1 /mnt/boot/efi, entre de novo e repita.

Login volta sempre para a tela de login

O que aconteceu: as causas mais comuns são disco cheio ou arquivos da sua pasta pessoal pertencendo ao root (depois de rodar um programa gráfico com sudo).

Como resolver: no console de texto (Ctrl+Alt+F3), entre com seu usuário e confira df -h / e ls -la ~ | grep root. Para devolver a pasta pessoal: sudo chown -R ana:ana /home/ana.


Referência

ComandoPara quê
mount -o remount,rw /Liberar escrita no recovery mode
findmnt --verifyConferir o /etc/fstab
passwd usuarioDefinir nova senha (como root)
dpkg --configure -aTerminar instalações interrompidas
lsblk -fIdentificar partições e sistemas de arquivos
mount --rbind /dev /mnt/devPreparar o chroot
chroot /mntEntrar no sistema instalado a partir do pendrive
grub-install + update-grubReinstalar o carregador e refazer o menu
update-initramfs -u -k allRecriar o initramfs de todos os kernels
umount -R /mntDesmontar tudo de uma vez
fsck -f /dev/…Verificar uma partição desmontada
journalctl -b -1 -p errErros do boot anterior (o que falhou)

Exercícios

1. Liberar a escrita

No recovery mode, complete o comando que permite editar arquivos:

mount -o /

2. Senha esquecida

Como root, complete para definir uma nova senha para a usuária ana:

3. Entrar no sistema instalado

O sistema está montado em /mnt com /dev, /sys, /proc e /run preparados. Complete:

sudo /mnt

4. Quando é seguro rodar fsck numa partição?

5. O boot parou em "You are in emergency mode" e diz que a conta root está bloqueada. Qual é o próximo passo?


Resumo

  • Suba a escada aos poucos: console de texto → kernel anterior → recovery mode → pendrive + chroot → reinstalar.
  • No recovery mode, o disco começa somente leitura: mount -o remount,rw /.
  • fstab errado: comente a linha, confira com findmnt --verify; use nofail em discos removíveis.
  • Senha esquecida: passwd usuario como root. Criptografe o disco para que outros não façam o mesmo.
  • GRUB quebrado: pendrive, montar sistema e EFI, --rbind, chroot, grub-install, update-grub.
  • fsck só com a partição desmontada.