如何将 .img 挂载为硬盘?

如何将 .img 挂载为硬盘?

我正在尝试从 Vanilla 版本安装 ChromiumOS。要安装到硬盘驱动器,建议将dd其安装到闪存驱动器,并将完成的闪存驱动器中的文件复制到您自己创建的相同分区。但是,如果我能以某种方式诱使 Ubuntu 将 .img 文件识别为实际的块设备或使用 GParted 打开它,我可以使用 GParted 的分区复制将其保留在扩展分区中的空白空间中,这样就可以从硬盘驱动器启动它,而无需进行中间的闪存驱动器复制。

这可能吗?(编辑:这是一个整个磁盘映像)

答案1

是的,但是有很多类型的“img”文件。为了便于讨论,我假设您的图像文件包含原始磁盘块,这就是dd所做的。

有一种 img 文件包含整个硬盘图像。另一种类型包含分割图像。

通过创建的 .img 文件的一般概念dd是,它包含磁盘块组成硬盘驱动器(或分区)的分区。区别如下:

如果 img 文件用于整个硬盘,则它包含:

  • 分区表(无论是 GPT、MBR 还是其他)。
  • 引导扇区(如果有)。
  • 全部硬盘的分区,每个分区都遵循分区表的布局/格式并包含文件系统特定的数据。

如果 img 文件用于分区,那么它只包含一个分区的数据,而没有任何分区表的“容器”数据。

想象一下你的整个硬盘就像一个从中间切开的橙子或柚子。你在橙子部分周围建了一些小墙。

分区表创建了这些小墙,而文件系统数据本身就是橙子汁。

听起来你的 img 文件是大概整个硬盘,因此它包含一个分区表。

您要做的是运行losetup命令将您的 img 文件“映射”到环回块设备。这会将您的文件(只是一个包含二进制数据的普通文件)转换为内核可以执行类似磁盘 I/O 的块设备。

例如,如果您的 img 是整个硬盘,那么您选择的环回设备节点/dev/loop3在功能上可视为等同于/dev/sda(整个硬盘)。如果您的 img 只是一个分区,那么环回设备在功能上可视为等同于/dev/sda1(只是一个分区)。

如果是整个硬盘,那么您可以运行gparted、、palimpsest等工具cfdisk来:

  • 识别分区表类型
  • 确定分区的位置、大小以及文件系统类型
  • 挂载各个分区来修改它们

如果只是一个分区,那么您可以mount直接在环回设备上运行该命令,例如mount /dev/loop3 /mnt/part

losetup(8) 手册页. 学会阅读手册页;我不会给你在命令行中输入的确切语法,因为这取决于你的系统配置。

相关内容