如何将 iso9660 ISO 转换为 USB ISO

Pen*_*CSC 10 boot usb iso chroot squashfs

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

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

你们中的任何人都可以向我指出如何做到这一点的分步指南 - 从顶部开始?

Lif*_*ign 13

这是一个使用与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
Run Code Online (Sandbox Code Playgroud)
  1. 确定您的 ISO 是否是非混合的,运行:

    fdisk -l <your.iso>
    
    Run Code Online (Sandbox Code Playgroud)

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

    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
    
    Run Code Online (Sandbox Code Playgroud)

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

    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)
    
    Run Code Online (Sandbox Code Playgroud)
  2. 如果您的 ISO已经是混合的,请跳到第 4 步。如果您有一个非混合的ISO,请按如下方式安装相应的软件包: 在 Debian Linux 发行版中,以 root 身份运行(例如使用sudo):

    apt-get install syslinux isolinux syslinux-utils syslinux-efi
    
    Run Code Online (Sandbox Code Playgroud)
  3. 混合:如果您想保留原始的、未混合的 ISO,首先制作一个新副本,我们称之为your.hybrid.iso。在新副本上,运行:

    isohybrid <your.hybrid.iso>
    
    Run Code Online (Sandbox Code Playgroud)

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

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

    1. 确定分配给 USB 驱动器的设备文件。打开终端并运行

      tail -f /var/log/syslog
      
      Run Code Online (Sandbox Code Playgroud)

      这将允许您绝对确定内核在插入设备时分配给设备的设备文件。您应该看到如下一行:

      Aug  5 11:04:34 yourbox kernel: [2407408.163088] sd 23:0:0:0: [sdX] Attached SCSI removable disk
      
      Run Code Online (Sandbox Code Playgroud)

      这表明 USB 驱动器已分配/dev/sdX,其中X通常是小写字母字符。

      1. 插入 USB 驱动器,并/dev/sdX通过观察syslog.
    2. 卸载闪存驱动器的所有分区(如果有自动安装)。

    3. 将文件转储到 USB 驱动器。使用WITH EXTREME CAUTION dd将 ISO 转储到驱动器

      1. 请务必确保在以下命令中将 X 替换为与驱动器设备文件相关联的字母,并且在参数中没有打字错误(例如,杂乱的空格)!如果你搞砸了,你可能会破坏你的整个系统。

      2. 以 root 身份运行:

        dd if=<your.hybridized.iso> of=/dev/sdX bs=4M && sync
        
        Run Code Online (Sandbox Code Playgroud)
  5. 拔下U盘,插入要启动的机器,在BIOS模式下从U盘启动。默认情况下,isohybrid将创建一个 BIOS 模式可启动驱动器,但有一个选项可以创建一个 UEFI 可启动驱动器。有关man isohybrid更多信息,请参阅。

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


ips*_*ute 10

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

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