创建空白磁盘映像用于文件存储

创建空白磁盘映像用于文件存储

类似于 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

截图1

点击“设备”->“创建分区表...”:

截图2

点击“应用”:

截图3

点击“分区”->“新建”:

截图4

从下拉菜单中选择“fat32”:

截图5

点击“添加”:

截图6

点击绿色勾号:

截图7

点击“应用”:

截图8

点击“关闭”:

截图9

并关闭 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

打开文件:

截图10

截图11

答案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 上测试成功

相关内容