GRUB を使用するハードドライブの GParted Live - 無効なセクタサイズ 65535

GRUB を使用するハードドライブの GParted Live - 無効なセクタサイズ 65535

GRUBを使用してハードドライブにGParted Liveをインストールする方法の公式記事に従います。https://gparted.org/livehd.phpしかし、私はそれを動作させることはできません。にFATパーティションを作成し、/dev/sdb3にマウントし、/mntzipファイルからすべてのファイルを抽出し、フォルダ名を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

関連情報