백업 GUID 파티션 테이블을 생성하는 방법

백업 GUID 파티션 테이블을 생성하는 방법

Qemu + OVMF + CLOVER + FV2를 사용하여 물리적 디스크에서 OSX 설치를 부팅하려고 합니다(여기에 PS/2 드라이버가 있습니다). https://bitbucket.org/timmycook/virtioinputdxeVmWare FileVault(FV2)의 경우 디스크의 일부 파티션을 숨겨야 합니다. 부트로더를 다른 드라이브에 넣을 수도 있지만 다른 파티션을 숨기는 한 가지 방법은 여기에 설명된 대로 선형 RAID를 사용하는 것 같습니다.https://wiki.archlinux.org/index.php/QEMU.

해당 기사에서는 MBR을 소개했는데, 디스크 끝에 파티션 정보가 있는 경우 GUID 파티션 테이블을 어떻게 생성하나요?

다음과 같이 분할된 테이블이 있다고 가정합니다.

Main partition table begins at sector 2 and ends at sector 3
First usable sector is 4, last usable sector is 242187496
Partitions will be aligned on 4-sector boundaries
Total free space is 64 sectors (32.0 KiB)

Number  Start (sector)    End (sector)  Size       Code  Name
 1              68           65535   32.0 MiB    EF00  EFI System
 2           65536         8454143   4.0 GiB     8300  Linux filesystem
 3         8454144        90765255   39.2 GiB    0700  Microsoft basic data
 4        90765256       174554311   40.0 GiB    AF0A  Apple APFS
 5       174554312       242187496   32.3 GiB    0700  Microsoft basic data

파티션 4만 포함하는 선형 md 드라이브를 생성하는 방법은 무엇입니까? 파티션에 충분한 공간이 없기 때문에 Fallocate를 사용하여 임시 파티션을 만들 수 없습니다.

답변1

위 글에서는 주로 다른 기존 장치에 16K를 연결하기 위한 가상 장치를 생성하는 방법을 설명했습니다. GPT 파티션 테이블을 추가하려면 앞에 1M 정도를 더 추가하고 다음 항목도 추가해야 합니다.

dd if=/dev/zero of=/path/to/prepend bs=1M count=1
dd if=/dev/zero of=/path/to/append  bs=1M count=1

losetup -f /path/to/prepend
losetup -f /path/to/append

# now we map 3 devices together
mdadm --build --verbose /dev/md0 --chunk=16 --level=linear --raid-devices=3 /dev/loop0 /dev/sdX4 /dev/loop1

이제 gdisk1M부터 시작하여 길이가 최소 41894528K((174554312-90765256)/2)인 /dev/md0에 GPT 파티션을 생성할 수 있습니다.

조심하세요! 잘못 계산하면 gdisk선행 공간과 추가 공간에 파티션 테이블이 생성될 뿐만 아니라 OSX 디스크의 일부 데이터가 손상될 수도 있습니다. 따라서 테스트를 위해 읽기 전용 루프 장치를 만듭니다.

losstup --읽기 전용 -f /dev/sdX4

...첫 번째 mdadm 명령 대신 이를 사용하여 /dev/sdX4GPT 테이블을 생성하고 부트로더를 설치합니다.

관련 정보