별도의 .img 준비 만들기

별도의 .img 준비 만들기

문제가 있다"별도의 명령줄은 동일한 결과를 제공하지 않습니다.", 정답 선택("parted"를 사용하여 IMG 파일 시스템 및 파티션 생성)은 다음과 같습니다.

# parted MyDrive.img \
    mklabel msdos \
    mkpart primary NTFS 1 1024 \
    set 1 lba on \
    align-check optimal 1 \
    print

Model:  (file)
Disk /dev/shm/MyDrive.img: 1074MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start   End     Size    Type     File system  Flags
  1      1049kB  1074MB  1073MB  primary  ntfs         lba

fat32/ext4도 마찬가지입니다. 하지만 /dev/loop( ) sudo losetup loop1 MyDrive.img에 이미지를 마운트하면 작동하지 않습니다 unknown partition.

따라서 주문이 불완전합니다.

누군가 루프에 설치할 때 인식되도록 ext4/ntfs/fat32( GPT및 ) 에 대한 .img 생성 순서를 도와줄 수 있습니까 (준비 작업)MSDOS

감사해요!

답변1

파티셔닝이 필요하지 않은 경우 요청하신 방법과 더 쉬운 방법을 제공해 드리겠습니다. 나는 ext4 예제만 수행할 것이며 나머지는 추론할 수 있을 것입니다.

파티션이 있는 이미지 파일:

#!/bin/sh

FILE=MyDrive.img

# create new 2Gb image file, will overwrite $FILE if it already exists
dd if=/dev/zero of=$FILE bs=1M count=2048

# make two 1Gb partitions and record the offsets
offset1=$(parted $FILE \
    mklabel msdos \
    mkpart primary ext2 1 1024 \
    unit B \
    print | awk '$1 == 1 {gsub("B","",$2); print $2}')
offset2=$(parted $FILE \
    mkpart primary ext2 1024 2048 \
    unit B \
    print | awk '$1 == 2 {gsub("B","",$2); print $2}')

# loop mount the partitions and record the device
loop1=$(losetup -o $offset1 -f $FILE --show)
loop2=$(losetup -o $offset2 -f $FILE --show)

# create and mount the filesystems
mkdir -p /tmp/mnt{1,2}
mkfs.ext4 $loop1
mount $loop1 /tmp/mnt1
mkfs.ext4 $loop2
mount $loop2 /tmp/mnt2

# file write test
touch /tmp/mnt1/file_on_partition_1
touch /tmp/mnt2/file_on_partition_2

# cleanup
umount /tmp/mnt1 /tmp/mnt2
losetup -d $loop1 $loop2

파티션이 없는 이미지 파일:

#!/bin/sh

FILE=MyDrive.img

# create new 2Gb image file, will overwrite $FILE if it already exists
dd if=/dev/zero of=$FILE bs=1M count=2048

# create and mount filesystem
mkfs.ext4 -F $FILE
mount $FILE /mnt

# file write test
touch /tmp/mnt/file_in_imagefile

# cleanup
umount /mnt

이것이 설명이 필요 없고 쉘 스크립트로 이 답변을 표현하기가 더 쉽기를 바랍니다.

관련 정보