类似于 Mac OS X 用户可以创建和安装空白 .dmg 文件、随意添加和删除文件以及将该映像移动到任何他们想要的位置……就好像它是一个虚拟 USB 驱动器一样。
Ubuntu 有类似的解决方案吗?我知道“磁盘映像装载程序”允许我们装载和编辑现有的 .img 文件,但有没有同样简单的方法来创建/格式化空的 .img 文件?到目前为止,我发现的每种解决方案都实现了复制/克隆已经存在的驱动器,但我不想要那样。
编辑:我根据下面接受的答案创建了一个脚本 GUI 应用程序。它只是一个基于 YAD 和 .sh 文件的对话框,旨在让不太熟悉命令行的人更容易处理 dd 命令/安装/格式化过程。
答案1
是的。
这是从头开始创建自定义图像的分步指南;
我假设如下:
- 图片大小应为 100 MiB
- 映像分区表应为 MBR
- 映像应包含单个 FAT32 主分区
创建空白图像
创建空白图像:
dd if=/dev/zero of=image.img iflag=fullblock bs=1M count=100 && sync
ubuntu@ubuntu ~/tmp % dd if=/dev/zero of=image.img iflag=fullblock bs=1M count=100 && sync
100+0 records in
100+0 records out
104857600 bytes (105 MB) copied, 0.0415825 s, 2.5 GB/s
ubuntu@ubuntu ~/tmp % tree
.
└── image.img
0 directories, 1 file
挂载空白图像
列出已经繁忙的环回设备:
losetup
ubuntu@ubuntu ~/tmp % losetup
NAME SIZELIMIT OFFSET AUTOCLEAR RO BACK-FILE
/dev/loop0 0 0 0 1 /cdrom/casper/filesystem.squashfs
将映像挂载到第一个可用的环回设备上:
sudo losetup loop1 image.img
ubuntu@ubuntu ~/tmp % sudo losetup loop1 image.img
ubuntu@ubuntu ~/tmp % losetup
NAME SIZELIMIT OFFSET AUTOCLEAR RO BACK-FILE
/dev/loop0 0 0 0 1 /cdrom/casper/filesystem.squashfs
/dev/loop1 0 0 0 0 /home/ubuntu/tmp/image.img
对空白图像进行分区/格式化
运行gparted
并传递环回设备作为参数:
sudo -H gparted /dev/loop1
点击“设备”->“创建分区表...”:
点击“应用”:
点击“分区”->“新建”:
从下拉菜单中选择“fat32”:
点击“添加”:
点击绿色勾号:
点击“应用”:
点击“关闭”:
并关闭 Gparted。
卸载映像
最后,从环回设备中卸载映像:
sudo losetup -d /dev/loop1
ubuntu@ubuntu ~/tmp % sudo losetup -d /dev/loop1
ubuntu@ubuntu ~/tmp % losetup
NAME SIZELIMIT OFFSET AUTOCLEAR RO BACK-FILE
/dev/loop0 0 0 1 1 /cdrom/casper/filesystem.squashfs
您可以将创建的图像用于任何您想要的用途;例如,您可以将其用作虚拟 USB 驱动器:
sudo losetup loop1 image.img
打开文件:
答案2
首先需要安装 hfsutils 包:
sudo apt-get install hfsutils
现在,创建一个图像文件,大小固定:
sudo dd if=/dev/zero of=/root/file.img bs=1M count=130
然后,格式化图像文件:
sudo hformat -l File /root/file.img
之后,挂载映像:
sudo mkdir /mnt/file
sudo mount -t hfs -o loop /root/file.img /mnt/file
将您的文件复制到新安装的卷中,并在完成卸载后:
sudo umount /mnt/file
我提到了这个关联找到解决方案。Ps
:我在我的 Ubuntu MATE 14.04.3 上测试成功