나는 FAT32 파일 시스템을 포함 할 수있는 최소 크기의 파일을 만들려고하는데,이 파일 시스템은 디렉토리의 내용 (ESP 구조)을 미러링합니다. 이것은 UEFI 부팅 가능한 ISO 이미지를 만드는 데 필요합니다.
파일을 성공적으로 만들었지 만 (ISO 이미지 부팅), 내용의 실제 크기가 아닌 고정 된 크기로 파일을 만들어야했습니다.
달성하기 위해 내가 한 일은 다음과 같습니다.
BOOT_IMG_DATA=$(mktemp -d)
BOOT_IMG=$ISO_DIR/boot/efi.img
mkdir -p $(dirname $BOOT_IMG)
truncate -s 4M $BOOT_IMG
mkfs.vfat $BOOT_IMG
mount $BOOT_IMG $BOOT_IMG_DATA
mkdir -p $BOOT_IMG_DATA/efi/boot
grub-mkimage \
-C xz \
-O x86_64-efi \
-p /boot/grub \
-o $BOOT_IMG_DATA/efi/boot/bootx64.efi \
boot linux search normal configfile \
part_gpt btrfs fat iso9660 loopback \
test keystatus gfxmenu regexp probe \
efi_gop efi_uga all_video gfxterm font \
echo read ls cat png jpeg halt reboot
umount $BOOT_IMG_DATA
이 코드는 UEFI 부팅 가능한 ISO 이미지를 생성하는 스크립트의 일부입니다. 전체 스크립트는 다음과 같습니다. https://github.com/Nitrux/mkiso/blob/master/mkiso#L79-L100 .
ESP 데이터 (디렉토리 및 파일)와 FAT32 메타 데이터를 모두 담을 수있는 정확한 크기의 ESP 구조를 포함하는 파일을 만드는 방법이 필요합니다. 이것을 어떻게 할 수 있습니까?
@ DavidC.Rankin, 내가 필요한 건
—
Luis Lavaire
size
매개 변수, 그 경우.
디스크 이미지를 만든 다음 보관을 위해 축소합니다.
—
juniorRubyist
mkfs.vfat -C /path/to/image_to_create.img size
어디에서size
당신은 이미지를 원하십니까? 그런 다음mount
이미지를 복사하고 필요에 따라 파일을 복사하십시오. 같은 일을 할 수 있습니다.dd
다음 전화mkfs.vfat
이미지 자체에.