次のパーティションを持つマシンのクローンを取得しました:
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 Promptで次の操作を行わないとマシンを起動できません。
grub> set root=(hd0,1)
grub> linux /boot/vmlinuz-<version> root=/dev/sda1
grub> initrd /boot/initrd.img-<version>
grub> boot
これらの手順を必要としないイメージを取得したいのですが、問題がどこにあるのかわかりません(grub config、他のシステムファイル、clonezilla)。これまでに試したこと:
GRUB_DISABLE_LINUX_UUID=true
」のコメントを外しましたsearch --no-floppy --fs-uuid --set=root ${hints} ${fs_uuid}
のような行をコメント化してgrub.cfgが生成されるときに追加されないようにgrub-mkconfig_libを編集しましたgrub.cfg
)私が試すことができる他のことはありますか?
/boot/grub2/device.map
がhd0の「sda1」をリストしていることに気づきましたが、クローンをインストールするときに他のマシンのHDがsda1として検出されているため、これが原因ではないようです。
(ここで、またはスーパーユーザーの方が問題に適しているかどうかはわかりませんでしたが、適切に移行できてうれしいです。)
最後に、元のマシンのブートパーティションのパーティションクローンを取得し、詳細オプションから「-j1」を選択して他のマシンにインストールすることで、これを解決しました。
追加の手順を実行するのが少し面倒ですが、少なくともブートパーティションのクローンを復元するには数秒しかかかりません。
これを修正するための作業手順では、インストール/クローンの失敗、または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を使用して複製されたOpenSuse Leap 42.2でこれを行いました(プライマリラップトップディスクをより大きなSSDに移行)。
参考文献: 起動しないものを救う方法GRUB 2
壊れた修復GRUB Ubuntuの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/
GPTにインストールされたUbuntuでは、システムにログインした後、BootRepairを使用します。
@jamと同じ問題がありましたが、私の場合、私は持っています:
そのため、Linuxパーティションのみをクローンしました(sda5-システムの場合、sda6の場合は/home
)ディスク全体ではなく、Clonezillaを使用します。
それを可能にするために、私はSSDにclear ubuntuをインストールし、HDDで作成されたとおりにパーティションを作成し、さらにESP(EFI System Partition)を追加しました。次に、このパーティションを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にありました。 this スレッドにはいくつか有用なものがありましたが、最も簡単な方法は BootRepair を使用することでした。 BootRepairによって実行された特別な作業があるかどうかはわかりませんが、GRUBを再インストールすることを確認したところ、すべて正常に動作しました!
私はMBRブートでこれとまったく同じ問題(Centos 7)を抱えていました-ディスク、パーティション、Clonezillaのバージョンなどの観点から何を試してもかまいませんでした-最後に、スレッドで以前に参照されたPartedMagic ISOを購入しました-とはいえそれはCLonezillaを使用しました-クローンされたディスクは手動の介入なしで起動するので、プロセスの最後に明らかにいくつかの魔法を実行しました。
クレイグ