grub2を再インストールしないと、Clonezillaクローンは起動しません。

grub2を再インストールしないと、Clonezillaクローンは起動しません。

次のパーティションを持つマシンを複製しました。

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コメントアウトを削除します。
  • search --no-floppy --fs-uuid --set=root ${hints} ${fs_uuid}grub.cfgが作成されたときに追加されないようにするには、grub-mkconfig_libを編集してこの行をコメントアウトします。
  • (そして再生成grub.cfg
  • 高度なclonezillaインストールを選択し、その後MBRを再インストールするように指示します(オプション-j1。オプション-g auto「クライアントディスクMBRにgrubを再インストールする」がデフォルトで選択されています)。

私が試すことができる他のものがありますか?

私はhd0が「sda1」をリストしたことを確認しましたが、/boot/grub2/device.mapレプリカをインストールしたときに他のコンピュータのHDがsda1として検出されたので、これは犯人ではないかもしれません。

(ここやスーパーユーザーがこの質問に適しているかどうかはわかりません。適切に移行されてよかったです。)

答え1

最後に、元のシステムのブートパーティションをパーティション複製して別のシステムにインストールし、詳細オプションで「-j1」を選択して問題を解決しました。

追加の手順は少し迷惑ですが、少なくともブートパーティションのレプリカを復元するには数秒しかかかりません。

答え2

この問題を解決するための作業プロセスは、インストール/複製が失敗した場合、またはMBRディスクが破損した後にGRUB(2)を手動でインストールする必要があることです。

それでは、再起動後に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を実行すると、システムは正常に戻ります。私はClonezilla 2016-02-10(メインノートブックディスクをより大きなSSDに移行)を使用して複製されたOpenSuse Leap 42.2でこれを行いました。

参考資料:Linuxで起動できないGRUB 2を救出する方法
Ubuntuで破損したGRUB 2ブートローダを修正

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

長い話を短く

GPTにインストールされているUbuntuでは、システムにログインしてBootRepairを使用してください。


@jamと同じ問題がありましたが、私の場合は次のような問題がありました。

  • Ubuntu 16.04、複製したい
  • ソースディスク(HDD、500GB)
    • 膜バイオリアクター
    • Windowsデュアルブート
  • ターゲットディスク(SSD、256GB)
    • GPT

そのため、/homeディスク全体の代わりにClonezillaを使用して、Linuxパーティション(システムの場合はsda5、システムの場合はsda6)のみを複製しました。

そのためにSSDにクリアUbuntuをインストールし、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が特別なことをしているかどうかはわかりませんが、GRUBの再インストールを確認しましたが、今はすべてうまくいきます!

答え4

ディスク、パーティション、Clonezillaバージョンなどで何を試しても、MBRブート(Centos 7)とまったく同じ問題がありました。 - Clonezillaを使用したにもかかわらず、スレッドで前述のPartedMagic ISOを購入しました。 、手動介入なしで複製されたディスクが起動されるため、プロセスが終了すると魔法が機能します。

クレイグ

関連情報