파티션 디스크 이미지 파일

파티션 디스크 이미지 파일

다음 명령을 사용하여 원시 디스크 이미지를 분할하고 싶습니다.

#creating the blank image
$ dd if=/dev/zero of=example.img bs=1M count=50

#write the partition table
$ parted example.img mktable msdos

#creating partition but not the file system
#creating fat32 primary partition 1 to 15 MB
$ parted example.img mkpart p fat32 1 15
#creating ext3 primary partition 16 to end
$ parted example.img mkpart p ext3 16 -0

이 명령은 파일 시스템을 생성하지 않습니다. 어떻게 해야 하나요? mkfs명령을 입력 하려고 하는데 parted다음과 같이 표시됩니다.명령어를 찾을수 없음. 외부에서 파일 시스템을 만드는 방법은 무엇입니까?

답변1

이 명령을 사용하여 kpartx루프백 장치를 만든 다음 포맷할 수 있습니다.

kpartx -a /path/to/imagefile.img  # Presents partitions from the image file
mkfs.vfat /dev/mapper/loop0p1   # Format partition 1
mkfs.ext3 /dev/mapper/loop0p2   # Format partition 2
kpartx -d /path/to/imagefile.img  # Unmaps the partitions from the image file

관련 kpartx 예는 여기에 있습니다.

답변2

losetup최신 버전의 옵션을 받으세요 -P. 에서 인용남자 8은 실패했다:

-P, --partscan
          Force the kernel to scan the partition table on a newly created loop device.

이렇게 하면 장치 losetup -f my_partitioned.img가 생성될 /dev/loop0뿐만 아니라 장치도 분할됩니다.

$ ls -l /dev/loop0*
brw-rw---- 1 root disk   7, 0 Oct  5 18:43 /dev/loop0
brw-rw---- 1 root disk 259, 0 Oct  5 18:43 /dev/loop0p1
brw-rw---- 1 root disk 259, 1 Oct  5 18:43 /dev/loop0p2

답변3

예를 들어 mkfs가 가리키는 위치가 있도록 파일과 연결된 루프백 장치를 mkfs.ext4사용해야 합니다 . 루프 장치의 파티션을 식별하기 위해 losetup이를 사용해야 할 수도 있습니다 .partprobe

관련 정보