我有一个 Frankenstein Linux,它可以在论坛中多人使用的特定设备上运行。我找到了一种方法来改进论坛上某个人的工作,该人分享了他的 ISO,并希望将我的图像分享给这个原始 ISO 文件的创建者。
ISO 不需要包含安装文件。它只是一个带有引导分区的工作 Linux 分区。我可以这样做吗:
sudo dd if=/dev/sda of=/home/pi/Downloads/WorkingLinux.iso bs=1M
或者我需要从另一个角度来处理它?
答案1
是的,您正在考虑的命令肯定会生成一个可以写入另一个类似磁盘的磁盘映像文件。但ISO
只有当磁盘实际上包含要刻录到 CD-ROM 或 DVD 上的 ISO9660 文件系统时,才将其称为文件才有意义。 ISO9660 标准及其扩展定义了从 CD-ROM 启动的过程,该过程与在类似硬盘的介质上处理启动的方式有很大不同。较新的 UDF 文件系统规范大致相同,但适用于更大容量和/或可重写光学介质。
许多现代 Linux ISO 映像现在都具有这样的功能:它们也可以写入类似硬盘的介质(例如 USB 记忆棒、SD 卡或类似介质),并且它们可以启动 - 但这实际上与ISO9660 文件系统格式。这些映像经过了额外的isohybrid
过程,在 ISO 映像中添加了一个额外的类似硬盘的分区表,从而允许同一映像文件支持两种不同类型的引导过程:一种用于类硬盘介质,另一种用于类硬盘介质。光学媒体。
将某个东西称为ISO
映像文件就意味着您可以将其刻录到 CD-ROM、DVD 或蓝光光盘,并且它将生成一张可用的光盘。如果实际情况并非如此(即使用的文件系统类型既不是 ISO9660 也不是 UDF,或者它包含分区表和多个分区),那么您不应该使用后缀.iso
,而应该使用.img
或.ima
。这些后缀被认为是更通用的“磁盘或文件系统映像文件”,并且根本不包含任何与光盘相关的隐含声明。
是的,这只是一个小小的挑剔,但这是我最讨厌的事情。
答案2
我还可以说“是的,您正在考虑的命令肯定会生成一个可以写入另一个类似磁盘的磁盘映像文件”。
但这并不是最有效的方法。另一种方法是使用克隆属,它是一个用于克隆或创建驱动器内容 [压缩] 映像的工具。
- 下载 Clonezilla iso 文件,
- 创建 USB 启动驱动器,
- 从它启动并
- 让 Clonezilla 为您做这件事。
Clonezilla 足够聪明,可以仅复制文件系统中已使用的块并跳过可用空间。它还会压缩图像,因此它速度更快,并且创建的图像要小得多(与您在问题中建议的纯克隆相比)。该映像不是一个文件,而是一个包含一组文件的目录,您可以使用 Clonezilla 从该映像进行恢复。
Clonezilla 还具有多个检查点,可帮助您识别驱动器,并确保在备份时从正确的驱动器读取数据,在恢复时向正确的驱动器写入数据。