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
이제 gdisk
1M부터 시작하여 길이가 최소 41894528K((174554312-90765256)/2)인 /dev/md0에 GPT 파티션을 생성할 수 있습니다.
조심하세요! 잘못 계산하면 gdisk
선행 공간과 추가 공간에 파티션 테이블이 생성될 뿐만 아니라 OSX 디스크의 일부 데이터가 손상될 수도 있습니다. 따라서 테스트를 위해 읽기 전용 루프 장치를 만듭니다.
losstup --읽기 전용 -f /dev/sdX4
...첫 번째 mdadm 명령 대신 이를 사용하여 /dev/sdX4
GPT 테이블을 생성하고 부트로더를 설치합니다.