psi*_*lia 9 linux filesystems ext3 partitioning loopback
我需要创建一个带有两个空文件系统的磁盘映像。我已经使用
dd if=/dev/zero of=./disk.img bs=1MiB count=1024
Run Code Online (Sandbox Code Playgroud)
接下来,我使用fdisk disk.img;创建了 2 个主分区;一种是 FAT32,另一种是 EXT3。现在,我必须格式化两个分区才能创建要挂载为-o loop devices. 但我不明白如何格式化它们?我不能使用mkfs.vfat的disk.img。所以我完全糊涂了。
解决方案:感谢@pjc50 的回答,我找到了非常简单的解决方案:
sudo aptitude install multipath-tools
sudo kpartx -a disk.img #it maps (mounts) found partitions to /dev/mapper/loop...
sudo mkfs.vfat -F 32 -n boot /dev/mapper/loop0p1
sudo mkfs.ext3 -L rootfs /dev/mapper/loop0p2
Run Code Online (Sandbox Code Playgroud)
此解决方案的一个缺点是需要超级用户权限。
看来您可以使用 kpartx 工具:http ://robert.penz.name/73/kpartx-a-tool-for-mounting-partitions-within-an-image-file/
Kpartx 可用于为任何分区块设备的分区设置设备映射。它是 Linux 多路径工具的一部分。使用 kpartx -l imagefile 可以获得映像文件中分区的概览,使用 kpartx -a imagefile 可以通过 /dev/mapper/loop0pX(X 是分区编号)访问分区。您现在可以使用 mount /dev/mapper/loop0pX /mnt/ -o loop,ro 挂载它。卸载后,您可以使用 kpartx -d imagefile 断开映射器设备。
您可以通过首先安装您的分区来/dev/loop?使用losetup该-o选项来为您的分区指定合适的偏移量。可以根据fdisk -l disk.img( start_sector * sector_size)的输出计算偏移量。
例如:
losetup -o32256 /dev/loop1 ./disk.img # mount first partition
Run Code Online (Sandbox Code Playgroud)
安装后,您可以继续使用mkfs.*以下命令格式化分区:
mkfs.vfat -F32 /dev/loop1
Run Code Online (Sandbox Code Playgroud)
有关更多详细信息和示例,请参阅以下文章:
| 归档时间: |
|
| 查看次数: |
7353 次 |
| 最近记录: |