次のコマンドを使用してRAWディスクイメージを分割したいと思います。
#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
答え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