GPT(33)와 첫 번째 정렬 파티션(2048) 사이의 여유 섹터를 사용하여 GPT 디스크의 GRUB 레거시 부팅용 파티션을 만드는 방법은 무엇입니까?
만약 내가다른 모든 부문은 분할되었습니다., fdisk
, gdisk
및 parted
사용 가능한 무료 섹터가 없다고 불평합니다.
내가 한 일은 다음과 같습니다.
- 다음 명령을 사용하여 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 정렬을 고수할 수도 있습니다. 어느 쪽이든 해를 끼치지는 않습니다.