如何将iso9660格式的ISO转换为USB ISO

我有一个基于Ubuntu的定制GCompris的ISO镜像。它打算刻录到光盘上(iso 9660文件系统类型)。当我尝试将其刻录到USB上时,U盘“变成”了光盘,无法启动...
那个曾经作为学校项目制作这个ISO的人说他不记得最初是如何制作的,但与提取squashfs并使用chroot重新创建有关。
你们中的任何人能否指导我从头开始的逐步操作指南?

你试过用dd命令吗?对于常规的Ubuntu ISO镜像文件,这个方法是有效的。 - You'reAGitForNotUsingGit
@AndroidDev 这取决于.iso文件中嵌入的文件系统类型。 - Matthieu
2个回答

这里是一个使用与ipse lute的答案相同的工具,但包含完整步骤和更多细节的答案,正如OP所要求的。
注意:此过程使用dd命令,请确保您知道如何正确使用它。

目的

本文档解释了如何将ISO 9660文件系统(.iso文件)进行“混合化”,以便可以从光盘和磁盘存储设备(如USB闪存驱动器)引导。这个过程是通过Syslinux项目开发的工具实现的:http://www.syslinux.org/wiki/index.php?title=The_Syslinux_Project


来源


步骤

初始设置:安装所需软件

sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu $(lsb_release -sc) main universe"

sudo apt-get install syslinux isolinux syslinux-utils syslinux-efi

确定您的ISO是否未混合化,请运行以下命令: fdisk -l 您将看到类似以下内容的输出(确切内容可能有所不同): 磁盘 your.iso: 709.3 MiB, 743718912 字节, 1452576 扇区 单位:扇区,大小为 1 * 512 = 512 字节 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 如果您已经有一个混合化的ISO,则会看到类似以下的输出(以Ubuntu Trusty Desktop为例;所有Ubuntu ISO都是混合化的;此处的stdout格式已被破坏): 磁盘 ubuntu-14.04.4-desktop-amd64.iso: 1020 MiB, 1069547520 字节, 2088960 扇区 单位:扇区,大小为 1 * 512 = 512 字节 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘标签类型:dos 磁盘标识符:0x1a447608
设备 启动 开始 结束 扇区数 大小 Id 类型 ubuntu-14.04.4-desktop-amd64.iso1 * 0 2088959 2088960 1020M 0 空 ubuntu-14.04.4-desktop-amd64.iso2 26268 30811 4544 2.2M ef EFI (FAT-12/16/32)
如果您的ISO已经是混合化的,请跳到第4步。如果您有一个未混合化的ISO,请按照以下方式安装适当的软件包:在Debian Linux发行版中,以root身份运行(例如使用sudo): apt-get install syslinux isolinux syslinux-utils syslinux-efi
混合化:如果您想保留原始的未混合化ISO,请先制作一个新副本,我们将其称为your.hybrid.iso。在新副本上运行: isohybrid 注意:这将覆盖现有ISO的内容。如果您不需要原始文件,请直接操作它。
从ISO制作可启动磁盘(例如USB闪存驱动器) 确定分配给USB驱动器的设备文件。打开终端并运行: tail -f /var/log/syslog 这将确保您在插入设备时能够绝对确定内核分配给设备的设备文件。 您应该看到类似以下的行: Aug 5 11:04:34 yourbox kernel: [2407408.163088] sd 23:0:0:0: [sdX] Attached SCSI removable disk 这表示USB驱动器被分配为/dev/sdX,其中X通常是小写字母。
插入USB驱动器,并通过观察syslog的输出来确定设备文件/dev/sdX。 如果有任何自动挂载的闪存驱动器分区,请卸载它们。 使用极度谨慎的dd将文件转储到USB驱动器: 确保在以下命令中将X替换为与驱动器设备文件相关联的字母,并且在参数中不要出现任何拼写错误(例如,多余的空格)!如果出错,可能会破坏整个系统。 以root身份运行: dd if= of=/dev/sdX bs=4M && sync
拔出USB驱动器,将其插入要引导的计算机,并以BIOS模式从USB驱动器引导。默认情况下,isohybrid将创建一个支持

1isohybrid和混合ISO文件的好解释。如果您使用Disks(别名为gnome-disks)或mkusb,则克隆过程将更安全。这些工具使用dd或等效方法进行克隆(在内部),但提供了一个最终检查点对话框,从而降低了覆盖有价值数据的风险。请参阅以下链接:https://help.ubuntu.com/community/Installation/FromUSBStick,https://help.ubuntu.com/community/mkusb - sudodus
1我希望 @PenguinCSC 能接受这个答案。 - Matthieu
1在尝试按照这个答案操作时,我遇到了一个错误:“isohybrid: hybridized-ubuntu-10.04-desktop-amd64.iso:引导加载程序没有isolinux.bin混合签名。请注意,isolinux-debug.bin不支持混合引导。”而且.iso文件没有被修改。最后我放弃了,使用了一个真正的光驱,这样就成功了。 - Julian
就好像 isohybrid 只是为 ISO 切换了一个标志。如果原始 ISO 不支持混合引导,它就不起作用。 - undefined

安装一个名为'syslinux'的程序,使用命令sudo apt-get install syslinux。然后创建/获取一个ISO9660文件(例如filename.iso)。在终端窗口中输入命令:isohybrid filename.iso。现在iso文件是混合型的,您可以将其用作CD和USB镜像文件。混合化过程会改变文件的校验和,请确保与新的校验和进行对比。
您可以在这里找到更多详细信息:http://www.syslinux.org/wiki/index.php?title=Isohybrid