Como corrigir o UUID no Grub após a restauração de outra máquina?

22

Desejo restaurar um backup completo do tar do Ubuntu 12.04 com todas as minhas personalizações, documentos, software instalado etc. em uma máquina diferente.

Fiz o backup com os seguintes comandos:

sudo su
cd /
tar cvpzf ububackup.tgz --exclude=/ububackup.tgz --exclude=/proc --exclude=/lost+found --exclude=/sys --exclude=/mnt --exclude=/tmp --exclude=/media /

No novo computador, fiz uma nova instalação do Ubuntu 12.04, movi o arquivo de backup para ele e depois o restaurei com o seguinte:

tar xvpfz backup.tgz -C /

Como esperado (veja a resposta de Mike Whatever para esta pergunta: Copie a distribuição do Ubuntu com todas as configurações de um computador para outro ) esse problema foi resolvido. Quando ligo o computador, recebo um erro:

error: no such device: ...

press any key to continue ...

Acredito que a razão pela qual o Grub está quebrado é que o UUID que ele está procurando correspondências no disco rígido antigo e não no disco rígido do computador.

Como posso corrigir meu grub para reconhecer o novo disco rígido? Procurei on-line por ajuda "Fix UUB GRUB", mas as etapas pareciam desatualizadas ou complexas. A resposta de Mike a que vinculei acima me dá esperança de que exista uma maneira bastante simples de reparar isso.

snowguy
fonte
1
Por que você não usa o clonezilla (clonezilla.org) para tirar uma foto do seu computador antigo e restaurá-lo no novo? Eu acho que seria realmente mais fácil porque você parece querer manter absolutamente tudo como está. Caso contrário, fazer um backup (/ home, / etc, / usr / local, / var) e restaurar seus dados e personalizações, exceto os softwares, também é muito fácil ... Para resolver seu problema atual, você precisará alterar o UUID (s) em / etc / fstab e /boot/grub/menu.lst. Você pode usar o CD de instalação do Ubuntu para obter o (s) UUID (s) [gparted ou linha de comando] e fazer as alterações.
Golboth

Respostas:

19

Para resolver seu problema atual, você precisará alterar os UUIDs em "/ etc / fstab" e "/boot/grub/grub.cfg" (muito complicado).

Você pode usar o CD de instalação do Ubuntu para obter o (s) UUID (s) com gparted (basta clicar com o botão direito do mouse na partição para a qual você deseja obter o UUID e clicar em "Informações", selecione UUID e copie-o com CTRL + C) ou linha de comando ( sudo blkid).

Então você tem que editar "/ etc / fstab" no volume certo com o gedit, nano ou então.

Em um terminal, digite:

gksudo gedit /etc/fstab

e substitua os UUIDs antigos pelos novos.

IMPORTANTE: É claro que, se você usar um CD de inicialização, será necessário adicionar "/ media / xxxxx" antes de "/ etc / fstab": "/ media / xxxxx / etc / fstab". Você também pode usar gksudo gedite abrir o arquivo para se editar.

AVISO: Modificar "/boot/grub/grub.cfg" é muito complicado. Normalmente deverá ser gerada com o comando sudo update-grub.

Substitua os UUIDs antigos pelos novos em "/boot/grub/grub.cfg" digitando o seguinte em um terminal:

gksudo gedit /boot/grub/grub.cfg

IMPORTANTE: É claro que, se você usar um CD de inicialização, precisará adicionar "/ media / xxxxx" antes de "/boot/grub/grub.cfg": "/ media / xxxxx / boot / grub / grub. cfg ". Você também pode usar gksudo gedite abrir o arquivo para se editar.

Se você usar a solução complicada, eu recomendo que você inicie sudo update-grubdepois de inicializar o sistema com êxito.

Uma maneira mais limpa, porém simples, de reconfigurar o grub corretamente pode estar usando um disco de reparo de inicialização como "Boot-Repair-Disk": http://sourceforge.net/p/boot-repair-cd/home/Home/

Espero que isso ajude você a resolver seu problema.

No entanto, você pode considerar o uso do Clonezilla para replicar o computador antigo no novo, conforme indicado no meu comentário.

Golboth
fonte
Obrigado Golboth. Acabei usando sua sugestão de usar o disco de reparo de inicialização e funcionou.
Snowguy
observe que o clonezilla pode não consertar isso. Eu apenas copiei todo o meu disco rígido (via clonezilla) para um SSD e tinha exatamente o mesmo UUID para hdd e SSD, acabei alterando o uuid manualmente no ssd e, em seguida, nos arquivos acima mencionados no ssd para ainda ter o disco rígido de fallback como possível inicialização do sistema
Dennis Nolte
3

Presumivelmente, isso significa que o grub inicia e exibe uma opção para inicializar no Ubuntu, mas quando você seleciona que ele não inicializa?

Existem duas opções, eu acho:

  1. Use o editor de linha do GRUB para modificar a opção de inicialização do linux para carregar corretamente o linux (e execute o grub-install como root para definir permanentemente a configuração correta).
  2. Inicialize a partir de um pendrive USB do Ubuntu, monte a partição do disco do ubuntu, faça chroot nela e execute o grub-install.

O primeiro caso deve ser mais fácil se você tiver o Ubuntu e apenas um disco rígido; nesse caso, selecione a opção "Recuperação do Ubuntu" e pressione "e" para editar:

A entrada deve ser algo como:

insmod gzio
insmod part_msdos
insmod ext2
set root=('hd0,msdos0')
search --no-floppy --fs-uuid --set=root XXXXXX
linux /boot/vmlinuz-YYYYY root=UUID=XXXXXX ro recovery nomodeset
initrd /boot/initrd.img-YYYYY

Remova a linha "search" e substitua "root = UUID = XXXXX" na linha "linux" por "root = / dev / sda1". Tente inicializar isso e, esperançosamente, após um breve período, ele fornecerá o menu de recuperação do Ubuntu, que deve ter uma opção de grub, que deve reinstalar o grub corretamente.

Caso contrário, ou se você preferir não mexer diretamente com o grub (que deve exibir um aviso de saúde, use um CD / USB stick conforme documentado em https://help.ubuntu.com/community/Grub2/Installing#Reinstalling_GRUB_2

cronite
fonte
Para sua informação, quando iniciei, não vi a opção de inicialização do grub (talvez porque ela foi inicializada diretamente no Ubuntu, pois era o único sistema operacional). De qualquer forma, agradeço sua ajuda. Acabei criando um disco de reparo de inicialização.
Snowguy
Muito obrigado! Sua resposta me salvou de um final ruim, quando eu mudei tolamente o UUID do meu fstab e o Ubuntu não podia mais começar!
reexmonkey
0

No meu caso, o UUID que o grub instalou era diferente do meu UUID ( sudo blkid) atual para a minha partição do Windows (confirmada em grub.cfg). Eu tentei vários métodos sem êxito. Por fim, montei a partição do Windows com o gerenciador de arquivos e executei update-grubnovamente e o UUID foi atualizado com sucesso no grub.cfg.

Tavo
fonte
O programa é chamado update-grube não grub-update. Isso não é óbvio, já que os comandos mais grub começam grub-....
Fa11enAngel
0

O que fiz em vez de editar o fstab e o grub:

  1. Eu fiz backup desses arquivos na nova instalação do ubuntu ( tar -cvf /somedir/boot.tar /etc/fstab /boot/grub/grub.cfg)
  2. Restaurado do backup ( tar -xvpf /mnt/remotebk/full.tar)
  3. copiar arquivo fstab restaurado ( cp /etc/fstab /somedir/fstab.restored)
  4. restaurar meus novos arquivos de instalação ( tar -xvpf /somedir/boot.tar -C /)
  5. Reiniciou e funcionou.

Estou usando máquinas virtuais vmware, fiz esse processo para mover um servidor linux de um host para outro host.

Roberto Dimas
fonte