O clone Clonezilla não inicializa sem reinstalar o grub2

2

Eu peguei um clone de uma máquina com as seguintes partições:

Device                   Type        Label
/dev/sda 
    /dev/sda1            Ext4        boot
    /dev/sda2            Linux LVM      
    /dev/system/         LV system     
    /dev/system/home     LV          home
    /dev/system/root     LV          root
    /dev/system/swap     LV          swap

Estes são referenciados pelo rótulo

/ etc / fstab:

LABEL=root     /        ext4
LABEL=boot     /boot    ext4
LABEL=home     /home    ext4
LABEL=swap     /swap    swap

e grub.cfg:

menuentry 'openSUSE, with linux <version>' --class opensuse --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-<version>-simple-<UUID>' {
    insmod ext2
    set root='hd0,msdos1'
    linux /vmlinuz-<version> root=/dev/mapper/system-root resume=/dev/disk/by-label/swap <other options>
    initrd /initrd-<version>
}

Estou tentando instalar esse clone em outra máquina idêntica. A instalação é bem-sucedida, mas não consigo inicializar na máquina sem fazer o seguinte no prompt do grub, o que me faz perder:

grub> set root=(hd0,1)
grub> linux /boot/vmlinuz-<version> root=/dev/sda1
grub> initrd /boot/initrd.img-<version>
grub> boot

Eu prefiro muito mais obter uma imagem que não requeira essas etapas, mas não tenho certeza de onde está o problema (configuração do grub, outros arquivos de sistema, clonezilla). Coisas que tentei até agora:

  • Editado / etc / defaults / grub e uncommented ' GRUB_DISABLE_LINUX_UUID=true '
  • Editado grub-mkconfig_lib para comentar as linhas como search --no-floppy --fs-uuid --set=root ${hints} ${fs_uuid} para evitar que elas sejam adicionadas quando o grub.cfg for gerado
  • (e gerado novamente grub.cfg )
  • Clonezilla avançado selecionado é instalado e instruído a reinstalar o MBR posteriormente (opção -j1. opção -g auto "Reinstalar o grub no disco cliente MBR" já estava selecionado por padrão)

Alguma outra coisa que eu possa tentar?

Eu notei que /boot/grub2/device.map lista "sda1" para hd0, mas o HD da outra máquina está sendo detectado como sda1 quando eu instalo o clone, então não creio que seja provável que seja o culpado.

(Eu não tinha certeza se aqui ou Superusuário era o melhor ajuste para a pergunta, estou feliz por ele ser migrado conforme apropriado.)

    
por jam 25.05.2017 / 14:47

3 respostas

2

No final, resolvi isso pegando um clone de partição da partição de inicialização da máquina original e instalando isso nas outras máquinas com "-j1" selecionado nas opções avançadas.

Ligeiramente irritante ter o passo extra, mas pelo menos restaurar um clone da partição de inicialização leva apenas alguns segundos.

    
por 26.06.2017 / 11:16
0

O procedimento de trabalho para corrigir isso, temos que instalar manualmente o GRUB (2) após uma falha na instalação / clonagem, ou corrupção de disco do MBR.

Agora, depois de reiniciar, vamos corrigir o boot do grub:

sh:grub>set pager=1 # for paging long command outputs; There must be no spaces on either side of the equals sign. 
grub> set root=(hd0,XY)
'grub> insmod /boot/grub/linux.mod # AFAIK, optional step
grub> linux /boot/vmlinuz-4.4.92-36-default root=/dev/sdaXY
grub> initrd /boot/initrd.img-4.4.92-36-default
grub> boot

Depois de inicializar com sucesso no seu Linux, vamos tornar o reparo permanente:

# update-grub
# grub-install /dev/sda #or what ever your system disk is

se você receber o erro update-grub command not found não se preocupe, é simplesmente um script de shell que foi criado para facilitar as coisas. De forma aguda, faz:

set -e
exec grub2-mkconfig -o /boot/grub/grub.cfg "$@"

Depois de executar o grub-install ... seu sistema deve voltar ao normal. Eu fiz isso com um OpenSuse Leap 42.2 clonado usando o Clonezilla 2016-02-10 (disco de laptop primário migrado para um SSD maior).

Refs: Como resgatar um GRUB 2 não-inicializável no Linux
Reparando um carregador de boot quebrado do GRUB 2 no Ubuntu

Aqui está uma abordagem alternativa que funciona sem inicializar no Linux:

$ sudo fdisk -l (From this you need to find the device name of your physical drive that won't boot, something like "/dev/sdxy″ - where x is the drive and y is the root partition. Since I was using a software RAID, root (/) was on md1)
$ sudo mount /dev/sdxy /mnt (Mount the root partition)
$ sudo mount --bind /dev /mnt/dev
$ sudo mount --bind /proc /mnt/proc
$ sudo mount --bind /sys /mnt/sys
$ sudo chroot /mnt  (This will change the root of executables to your your drive that won't boot)
$ grub-mkconfig -o /boot/grub/grub.cfg (insure that there are NO error messages)
$ grub-install /dev/sdx (NOTE that this is the drive and not the partition. try grub-install --recheck /dev/sdxy if it fails)
Ctrl+D (to exit out of chroot)
$ sudo umount /mnt/dev
$ sudo umount /mnt/proc
$ sudo umount /mnt/sys
$ sudo umount /mnt

Ref: link

    
por 03.12.2017 / 05:49
0

TL; DR

On Ubuntu installed on GPT use BootRepair after you logged in system.

Tive o mesmo problema que @jam, mas no meu caso eu tenho:

  • Ubuntu 16.04, que eu queria clonar
  • disco de origem (HDD, 500 GB)
    • MBR
    • inicialização dupla com janelas
  • disco de destino (SSD, 256 GB)
    • GPT

Então, eu clonei apenas as partições do Linux (sda5 - para o sistema, sda6 para /home ) com o Clonezilla, não o disco inteiro.

Para tornar isso possível, instalei o ubuntu no SSD, criei partições como elas foram feitas no HDD e também adicionei o ESP (EFI System Partition). Então eu substituí essas partições com o Clonezilla (partições de HDD para SSD). Como resultado, recebi o prompt do GRUB.

Então eu fiz

grub> set root=(hd0,gpt2)  # NOTICE: used gptX instead of simple number
grub> linux /boot/vmlinuz-<version> root=/dev/sda1
grub> initrd /boot/initrd.img-<version>
grub> boot

como @jam did e @ wp78de sugeriram (e também foi dito em seus representantes).

Em seguida, fiz update-grub e colei grub-install com erro

grub-install: error: will not proceed with blocklists

O motivo estava no GPT. Havia algumas coisas úteis em isto , mas a abordagem mais simples era usar BootRepair . Eu não sei, se houve algum trabalho especial realizado pelo BootRepair, mas eu verifiquei para reinstalar o GRUB e agora tudo funciona bem!

    
por 22.10.2018 / 22:20