GRUBを使用してハードドライブにGParted Liveをインストールする方法の公式記事に従います。https://gparted.org/livehd.phpしかし、私はそれを動作させることはできません。にFATパーティションを作成し、/dev/sdb3
にマウントし、/mnt
zipファイルからすべてのファイルを抽出し、フォルダ名をlive
に変更しましたlive-hd
。次に、開始項目を追加しました。
menuentry "GParted live" {
set root=(hd1,3)
linux /live-hd/vmlinuz boot=live config union=overlay username=user components noswap noeject vga=788 ip= net.ifnames=0 live-media-path=/live-hd bootfrom=/dev/sdb3 toram=filesystem.squashfs
initrd /live-hd/initrd.img
}
それからgrubを更新しましたsudo update-grub2
。しかし、GPartedで起動するとエラーが発生します。
Invalid sector size 65535
You need to load kernel first
私が理解したように、これは最初(hd0,4)
のディスク、4番目のパーティションを意味するので、(/dev/sdb4)
私の場合は2番目のディスク、3番目のパーティションになります(hd1,3)
/dev/sdb3
。私は何が間違っていましたか?
私のディスクレイアウトは次のとおりです。
$ parted -l
Model: ATA Samsung SSD 850 (scsi)
Disk /dev/sdb: 250GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 135MB 134MB linux-swap(v1) linux-swap swap
2 135MB 673MB 538MB fat32 EFI System Partition boot, esp
4 673MB 249GB 249GB ext4 Ubuntu 20.04
3 249GB 250GB 629MB fat32 GPARTED msftdata
修正する
他のGRUBエントリを見ましたが、/boot/grub/grub.cfg
これはUbuntu 20.04とWindowsの起動に使用するものです。
# Ubuntu 20.04
menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-0f745246-0966-49bb-8aff-b832b71a53a0' {
recordfail
load_video
gfxmode $linux_gfx_mode
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_gpt
insmod ext2
set root='hd1,gpt4'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd1,gpt4 --hint-efi=hd1,gpt4 --hint-baremetal=ahci1,gpt4 0f745246-0966-49bb-8aff-b832b71a53a0
else
search --no-floppy --fs-uuid --set=root 0f745246-0966-49bb-8aff-b832b71a53a0
fi
linux /boot/vmlinuz-5.13.0-39-generic root=UUID=0f745246-0966-49bb-8aff-b832b71a53a0 ro
initrd /boot/initrd.img-5.13.0-39-generic
}
# Windows
menuentry 'Windows Boot Manager (on /dev/sdb2)' --class windows --class os $menuentry_id_option 'osprober-efi-94C2-ECC1' {
insmod part_gpt
insmod fat
set root='hd1,gpt2'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd1,gpt2 --hint-efi=hd1,gpt2 --hint-baremetal=ahci1,gpt2 94C2-ECC1
else
search --no-floppy --fs-uuid --set=root 94C2-ECC1
fi
chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}
だからGPartedエントリを次のように変更しました。
menuentry "Gparted live" {
insmod part_gpt
insmod ext2
insmod fat
set root='hd1,gpt3'
linux /live-hd/vmlinuz boot=live config union=overlay username=user components noswap noeject vga=788 ip= net.ifnames=0 live-media-path=/live-hd bootfrom=UUID=606E-0DF2 toram=filesystem.squashfs
initrd /live-hd/initrd.img
}
アイテムを変更しました。
set root=(hd1,3)
到着
set root='hd1,gpt3'
しかし、エラーが発生しました。disk hd1,gpt3 not found
テストのためにUbuntuをリカバリモードで起動するための別のエントリを追加しました。
menuentry "Ubuntu Runlevel 1" {
insmod gzio
insmod part_gpt
insmod ext2
set root='hd1,gpt4'
linux /boot/vmlinuz-5.13.0-39-generic root=UUID=0f745246-0966-49bb-8aff-b832b71a53a0 ro 1
initrd /boot/initrd.img-5.13.0-39-generic
}
したがって、ここのUUIDとパーティションUUIDset root='hd1,gpt4'
は通常のUbuntuブートエントリと同じですが、機能しません。
答え1
しばらく調査したところ、ついに問題に対する解決策を見つけました。これが私の最後のGRUB2メニュー項目です。
menuentry "Gparted live" {
insmod part_gpt
insmod ext2
insmod fat
set root='hd1,gpt3'
search --no-floppy --fs-uuid --set=root 606E-0DF2
linux /live-hd/vmlinuz root=/dev/sdb3 boot=live config union=overlay username=user components noswap noeject vga=788 ip= net.ifnames=0 live-media-path=/live-hd toram=filesystem.squashfs
initrd /live-hd/initrd.img
}
元のコードをいくつか修正したので、どの問題が解決されたのか正確にはわかりません。search --no-floppy --fs-uuid --set=root 606E-0DF2
行を追加してroot=/dev/sdb3
最初のパラメータに移動しました。linux