如何将 iso9660 ISO 转换为 USB ISO

如何将 iso9660 ISO 转换为 USB ISO

我有一个基于 Ubuntu 的定制 GCompris ISO。它旨在刻录到 CD(iso 9660 FS 类型)上。当我尝试将其刻录到 USB 时,U 盘“变成”了 CD,无法启动……

不久前,有人将这个 ISO 作为学校项目进行制作,他说他不记得自己最初是如何制作它的,但这与提取 squashfs 并使用 chroot 重新创建它有关。

你们中有人能给我指出一步一步的指南,教我如何从顶部开始做这件事吗?

答案1

以下是使用相同实用程序的答案ipse 琵琶答案,但要提供完整的程序和更多细节,正如 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
  1. 确定你的 ISO 是否是非混合的,运行:

    fdisk -l <your.iso>
    

    您将看到类似这样的输出(具体内容可能有所不同):

    Disk your.iso: 709.3 MiB, 743718912 bytes, 1452576 sectors
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    

    如果您已经有混合 ISO,您将看到如下输出(以 Ubuntu Trusty Desktop 为例;所有 Ubuntu ISO 都是混合的;此处的标准输出格式已被破坏):

    Disk ubuntu-14.04.4-desktop-amd64.iso: 1020 MiB, 1069547520 bytes, 2088960 sectors
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disklabel type: dos
    Disk identifier: 0x1a447608
    
    Device                            Boot Start     End Sectors  Size Id Type
    ubuntu-14.04.4-desktop-amd64.iso1 *        0 2088959 2088960 1020M  0 Empty
    ubuntu-14.04.4-desktop-amd64.iso2      26268   30811    4544  2.2M ef EFI (FAT-12/16/32)
    
  2. 如果你的 ISO 是已经杂交,跳到第 4 步。如果你有一个非杂交ISO,按如下方式安装适当的软件包:在 Debian Linux 发行版中,运行以 root 身份(例如使用sudo):

    apt-get install syslinux isolinux syslinux-utils syslinux-efi
    
  3. 混合:如果您想要保留原始的、未混合的 ISO,请先制作一份新副本,我们将其称为your.hybrid.iso。在新副本上,运行:

    isohybrid <your.hybrid.iso>
    

    注意:这将覆盖现有 ISO 的内容。如果您不需要原始 ISO,只需对其进行操作即可。

  4. 从 ISO 制作可启动磁盘(例如 USB 闪存驱动器)

    1. 确定分配给 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通常是小写字母。

      1. 插入 USB 驱动器,并/dev/sdX通过观察输出来记下设备文件syslog
    2. 卸载闪存驱动器的所有分区(如果已自动安装)。

    3. 将文件转储到 USB 驱动器。使用极其谨慎 dd将 ISO 转储到驱动器

      1. 一定要确保在以下命令中将 X 替换为与驱动器的设备文件关联的字母,并且参数中不要出现拼写错误(例如多余的空格)!!如果搞砸了,可能会毁掉整个系统。

      2. 以 root 身份运行:

        dd if=<your.hybridized.iso> of=/dev/sdX bs=4M && sync
        
  5. 移除 USB 驱动器,将其插入要启动的机器,然后以 BIOS 模式从 USB 驱动器启动。默认情况下,将创建 BIOS 模式可启动驱动器,但有一个选项可以创建 UEFI 可启动驱动器。有关更多信息,isohybrid请参阅。man isohybrid

  6. 享受安装您的新操作系统!

答案2

通过 安装名为“syslinux”的程序sudo apt-get install syslinux。然后创建/获取 ISO9660 文件(例如 filename.iso)。在终端窗口中输入:isohybrid filename.iso。现在 iso 文件是混合文件,您可以将其用作 CD 和 USB 映像文件。混合过程将更改文件的校验和。确保根据新校验和进行检查。

您可以在此处找到更多详细信息:http://www.syslinux.org/wiki/index.php?title=Isohybrid

相关内容