Клон Clonezilla не загрузится без переустановки grub2

Клон Clonezilla не загрузится без переустановки grub2

Я взял клон машины со следующими разделами:

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

Они упоминаются по метке в

/etc/fstab:

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

и 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>
}

Я пытаюсь установить этот клон на другую идентичную машину. Установка проходит успешно, но я не могу загрузить машину, не выполнив следующее в приглашении grub, в которое она меня выбрасывает:

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

Я бы предпочел получить образ, который не требует этих шагов, но я не уверен, в чем проблема (конфигурация grub, другие системные файлы, clonezilla). Что я пробовал до сих пор:

  • Отредактировал /etc/defaults/grub и раскомментировал ' GRUB_DISABLE_LINUX_UUID=true'
  • Отредактировал grub-mkconfig_lib, чтобы закомментировать строки, подобные search --no-floppy --fs-uuid --set=root ${hints} ${fs_uuid}тем, которые не будут добавляться при генерации grub.cfg.
  • (и заново сгенерирован grub.cfg)
  • Выбрал расширенную установку Clonezilla и указал ей переустановить MBR после этого (опция -j1. опция -g auto «Переустановить grub в MBR клиентского диска» уже была выбрана по умолчанию)

Что еще я могу попробовать?

Я заметил, что /boot/grub2/device.mapдля hd0 указано «sda1», но при установке клона жесткий диск другой машины определяется как sda1, поэтому не думаю, что это может быть причиной.

(Я не был уверен, что лучше подходит для этого вопроса: here или Superuser, но я буду рад, если его перенесут соответствующим образом.)

решение1

В конце концов я решил эту проблему, взяв клон раздела загрузочного раздела исходной машины и установив его на другие машины, выбрав «-j1» в дополнительных параметрах.

Немного раздражает необходимость в дополнительном шаге, но, по крайней мере, восстановление клона загрузочного раздела занимает всего несколько секунд.

решение2

Для исправления этой проблемы нам придется вручную установить GRUB(2) после неудачной установки/клонирования или повреждения диска MBR.

Теперь, после перезапуска, давайте исправим загрузку 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

После успешной загрузки Linux давайте сделаем восстановление постоянным:

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

если вы получаете ошибкуupdate-grub command not foundне волнуйтесь, это просто скрипт оболочки, который был создан, чтобы упростить жизнь. На самом деле, он делает:

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

После запуска grub-install ... ваша система должна вернуться в нормальное состояние. Я сделал это с клонированным OpenSuse Leap 42.2 с помощью Clonezilla 2016-02-10 (перенес основной диск ноутбука на больший SSD).

Ссылки:Как спасти незагружающийся GRUB 2 в Linux
Восстановление сломанного загрузчика GRUB 2 в Ubuntu

Вот альтернативный подход, который работает без загрузки 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

Ссылка:http://redsunsoft.com/2016/06/how-to-repair-a-server-stuck-at-the-grub-prompt/

решение3

TL;DR

В Ubuntu, установленном на GPT, используйте BootRepair после входа в систему.


Была та же проблема, что и у @jam, но в моем случае:

  • Ubuntu 16.04, который я хотел клонировать
  • исходный диск (HDD, 500 ГБ)
    • МБР
    • двойная загрузка с windows
  • целевой диск (SSD, 256 ГБ)
    • ГПТ

Итак, я клонировал с помощью Clonezilla только разделы Linux (sda5 — для системы, sda6 — для /home), а не весь диск.

Чтобы это стало возможным, я установил clear ubuntu на SSD, создал разделы так же, как на HDD, а также добавил ESP (системный раздел EFI). Затем я перезаписал эти разделы с помощью Clonezilla (разделы HDD на SSD). В результате я получил приглашение GRUB.

Затем я сделал

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

как это сделал @jam и предложил @wp78de (и это также было сказано в его ссылках).

Затем я сделал update-grubи застрял grub-installс ошибкой

grub-install: error: will not proceed with blocklists

Причина была в GPT. Там были некоторые полезные вещиэтотпоток, но самый простой подход был использоватьBootRepair. Я не знаю, была ли выполнена какая-то специальная работа BootRepair, но я проверил, переустановил ли GRUB, и теперь все работает отлично!

решение4

У меня была точно такая же проблема (Centos 7) с загрузкой MBR - неважно, что я пробовал с дисками, разделами, версиями Clonezilla и т. д. - в конце концов я купил PartedMagic ISO, на который ссылались ранее в теме - и хотя он использовал CLonezilla - он, очевидно, сотворил какую-то магию в конце процесса, поскольку клонированные диски загружались без ручного вмешательства.

Крейг

Связанный контент