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)첫 번째 디스크, 네 번째 파티션을 의미하므로 (/dev/sdb4)제 경우에는 두 번째 디스크, 세 번째 파티션이 됩니다 (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 및 파티션 UUID set 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

관련 정보