我有一个基于 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
来源
- http://www.syslinux.org/wiki/index.php?title=The_Syslinux_Project
- http://www.syslinux.org/wiki/index.php?title=ISOLINUX
- http://www.syslinux.org/wiki/index.php?title=Isohybrid
程序
初始设置:安装所需软件
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>
您将看到类似这样的输出(具体内容可能有所不同):
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)
如果你的 ISO 是已经杂交,跳到第 4 步。如果你有一个非杂交ISO,按如下方式安装适当的软件包:在 Debian Linux 发行版中,运行以 root 身份(例如使用
sudo
):apt-get install syslinux isolinux syslinux-utils syslinux-efi
混合:如果您想要保留原始的、未混合的 ISO,请先制作一份新副本,我们将其称为
your.hybrid.iso
。在新副本上,运行:isohybrid <your.hybrid.iso>
注意:这将覆盖现有 ISO 的内容。如果您不需要原始 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 驱动器,并
/dev/sdX
通过观察输出来记下设备文件syslog
。
- 插入 USB 驱动器,并
卸载闪存驱动器的所有分区(如果已自动安装)。
将文件转储到 USB 驱动器。使用极其谨慎
dd
将 ISO 转储到驱动器一定要确保在以下命令中将 X 替换为与驱动器的设备文件关联的字母,并且参数中不要出现拼写错误(例如多余的空格)!!如果搞砸了,可能会毁掉整个系统。
以 root 身份运行:
dd if=<your.hybridized.iso> of=/dev/sdX bs=4M && sync
移除 USB 驱动器,将其插入要启动的机器,然后以 BIOS 模式从 USB 驱动器启动。默认情况下,将创建 BIOS 模式可启动驱动器,但有一个选项可以创建 UEFI 可启动驱动器。有关更多信息,
isohybrid
请参阅。man isohybrid
享受安装您的新操作系统!
答案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。