Esta resposta é um bom ponto de partida, mas não é suficiente em sistemas UEFI.
Aqui está um guia passo-a-passo que funcionou para mim.
Esta resposta assume os seguintes nomes de partições:
Device Purpose
-------------------------
/dev/sda2 EFI partition
/dev/sda5 /boot
/dev/sda6 /
Uma mídia inicializável (USB ao vivo, etc.) com o Ubuntu ou alguma outra distribuição Linux é necessária. Faça backups antes de seguir estas etapas.
-
Inicialize a partir da mídia do Ubuntu e abra o Terminal ( Ctrl + Alt + T ). Torne-se root:
sudo su
-
Montar sistemas de arquivos de
/
,/boot
e a partição EFI:cd /mnt mkdir efi boot os mount /dev/sda2 efi mount /dev/sda5 boot mount /dev/sda6 os
-
Copie o conteúdo da partição
/boot
no diretório/boot
na partição/
:cp -r boot/* os/boot
-
Evite que o Ubuntu monte
/boot
automaticamente. Anote também o UUID da partição raiz. Abra/etc/fstab
no seu editor preferido:gedit os/etc/fstab
Veja como foi o meu (salvo nos comentários):
UUID=df89aab6-941d-4ffa-9681-e16fc94641d3 / ext4 errors=remount-ro 0 1 UUID=f7c32b17-a2f1-4eb3-a8e7-414b6a228a72 /boot ext4 defaults 0 2 UUID=2252-1B80 /boot/efi vfat umask=0077 0 1 UUID=a80bb662-d531-408b-bc23-b47f28c44ec4 /home ext4 defaults 0 2 /swapfile none swap sw 0 0
Comentei a segunda linha, que monta
/boot
. Eu também copiei o UUID da partição/
, precisaremos disso daqui a pouco. -
Atualize a configuração do GRUB na partição EFI. Esta etapa é crucial em sistemas UEFI.
cd /mnt/efi/EFI/ubuntu cp grub.cfg grub.cfg.bak gedit grub.cfg
Meu
grub.cfg
ficou assim:search.fs_uuid f7c32b17-a2f1-4eb3-a8e7-414b6a228a72 root hd1,gpt5 set prefix=($root)'/grub' configfile $prefix/grub.cfg
Eu tive que atualizar: 1. o UUID, 2. o número da partição e 3. o prefixo. O arquivo modificado é assim:
search.fs_uuid df89aab6-941d-4ffa-9681-e16fc94641d3 root hd1,gpt6 set prefix=($root)'/boot/grub' configfile $prefix/grub.cfg
Note que é o mesmo UUID que recebi de
/etc/fstab
e tive que prefixar/boot
para o prefixo. -
Reinicie no Ubuntu no seu disco rígido. Ele deve inicializar bem. Certifique-se de que
/boot
não esteja montado -grep /boot /etc/mtab
não deve produzir nada. Formate a antiga partição/boot
(não confunda com% atual/boot
, que é um diretório regular) e atualize a configuração do GRUB:sudo mkfs.ext4 /dev/sda5 sudo update-grub
-
Reinicialize mais uma vez, confirme se o sistema operacional está ativo e faça o que quiser com sua partição ex-boot.