解决方法
环回的步骤
>使用dd if = / dev / zero of = $1 bs = 512 count = $(($2/512))创建归零磁盘映像文件
>使用parted -s $mklabel msdos创建分区表
>创建具有parted -s $1的分区“mkpart primary 0%100%”
>将分区附加到循环sudo losetup –find $1 –offset $OFFSET_TO_PARTITION_BYTES
>使用mkfs.ext4和mkfs.ext4制作文件系统-I 128 -L BOOT -b 2048 -O ^ has_journal / dev / loop0 $SIZE_IN_2048_BLOCKS
> mount / dev / loop0
使用环回是因为
>在第4步& 5,mkfs没有偏移选项,因此使用losetup来解决该问题
>在步骤6中,mount允许使用操作系统ext4驱动程序
Looback解决方法
对第4步和第2步的狡猾解决方法5:
> xmount –in dd –out vdi disk.img mnt /
> vdfuse -f mnt / disk.vdi -r ./mnt2
> ./mnt2现在将有两个文件:EntireDisk和Partition1
>在./mnt2/Partition1处指向mkfs.ext4
第6步的解决方案:
>按照步骤5的所有步骤进行操作
>使用fuseext2挂载./mnt2/Partition1
警告
警告:ext4支持不会在他们的文档中公布,并且尝试mount会发出警告:
This is experimental code,opening rw a real file system could be dangerous for your data. Please add "-o ro" if you want to open the file system image in read-only mode,or "-o rw+" if you accept the risk to test this module
更新
vdfuse应该能够在没有xmount帮助的情况下挂载原始映像,但是有一个错误忽略了RAW选项.
我在这里跟踪并修复了一个补丁:
https://bugs.launchpad.net/ubuntu/+source/virtualbox-ose/+bug/1019075