섹터 34~2047을 사용하여 GRUB BIOS 부팅 파티션을 만드는 방법은 무엇입니까?

섹터 34~2047을 사용하여 GRUB BIOS 부팅 파티션을 만드는 방법은 무엇입니까?

GPT(33)와 첫 번째 정렬 파티션(2048) 사이의 여유 섹터를 사용하여 GPT 디스크의 GRUB 레거시 부팅용 파티션을 만드는 방법은 무엇입니까?

만약 내가다른 모든 부문은 분할되었습니다., fdisk, gdiskparted사용 가능한 무료 섹터가 없다고 불평합니다.

내가 한 일은 다음과 같습니다.

  • 다음 명령을 사용하여 GPT를 텍스트 파일로 내보냅니다.sfdisk
  • 수동으로 지정하여 다른 파티션 추가
    • 첫 번째 LBA(2048년부터 34개)
    • 파티션 번호
    • 시작섹터(34)
    • 규모(2014년 업계)
    • GUID(21686148-6449-6E6F-744E-656564454649)
  • 수정된 버전을 디스크에 복원
  • partprobe사용 가능한 파티션 수 새로 고침 실행
  • 파티션 유형 변경(BIOS 부팅) 사용fdisk

이것이 까다로운 해결 방법이라는 것을 알고 있지만 먼저 다른 파티션을 파괴하지 않고 일반 도구를 사용하여 이를 수행하는 방법을 찾을 수 없습니다.

답변1

parted일반적으로 매우 잘 작동합니다. 정렬 문제에 대해 경고하지만 이 경우 무시할 수 있습니다.

# truncate -s 1G foobar.img
# parted foobar.img
GNU Parted 3.4
Using /dev/shm/foobar.img
Welcome to GNU Parted! Type 'help' to view a list of commands.

(parted) unit s
(parted) mklabel gpt
(parted) disk_set pmbr_boot on

(parted) print free
Model:  (file)
Disk /dev/shm/foobar.img: 2097152s
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: pmbr_boot

Number  Start  End       Size      File system  Name  Flags
        34s    2097118s  2097085s  Free Space

(parted) mkpart linux 2048s 2097118s
(parted) set 1 lvm on

섹터 34에 grub 파티션을 만듭니다.

(parted) mkpart grub 34s 2047s
Warning: The resulting partition is not properly aligned for best performance: 34s % 2048s != 0s
Ignore/Cancel? Ignore
(parted) set 2 bios_grub on

최종 결과는 레거시 MBR 헤더(일부 시스템에 필요)에 부팅 플래그가 설정되고 첫 번째 1MiB 앞에 grub 파티션이 압축된 GPT 파티션 테이블입니다.

(parted) print free
Model:  (file)
Disk /dev/shm/foobar.img: 2097152s
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: pmbr_boot

Number  Start  End       Size      File system  Name   Flags
 2      34s    2047s     2014s                  grub   bios_grub
 1      2048s  2097118s  2095071s               linux  lvm

물론 완전히 새로운 파티션 테이블에는 이것이 필요하지 않습니다. 그럽 파티션의 MiB 정렬을 고수할 수도 있습니다. 어느 쪽이든 해를 끼치지는 않습니다.

관련 정보