我只能使用引导参数运行救援、安装、图形安装等。我无法安装命令ls或者回声我无法将 initrd 更改/编辑为其他文件。
这个 ISO/DVD1 有何特殊之处,令人不快?我想加载一个不同的 initrd.gz - USB 上的一个。我的理解是,既然使用的是CDROM,因斯莫德·帕塔将默认加载,因此除了通过内核驱动程序之外,硬盘无论如何都无法访问?
但是我们不是首先通过 linux /install.amd/vmlinuz 加载内核 <--所以我们将拥有一个功能性内核 - 但模块来自 initrd.gz 因此,在 DVD 上禁用 GRUB 命令行编辑是有一定道理的-也许是 GRUB?
不过我安装了 DVD 并查看了 /boot,里面有很多模块启动/grub/x86_64-efi/有echo.mod ls.mod等等我都不能insmod???为什么不? (这个问题与 EFI 有关吗?我正在尝试从没有 EFI 的系统启动)
答案1
既然您说您的系统没有 EFI,那么您的系统将以旧 BIOS 方式启动。您正在处理的是典型的 BIOS 限制。
从 DVD 中使用旧 BIOS 风格引导时使用的引导加载程序不是 GRUB,而是 ISOLINUX,它是系统Linux它专门用于从 CD、DVD 和其他使用 ISO9660 文件系统的介质启动。
您正尝试将用于 GRUB 的命令应用到 ISOLINUX,但这肯定行不通。
另一个问题是引导加载程序通常不使用自己的驱动程序,而是依赖于固件支持。在您的情况下,这意味着 BIOS 支持,并且还有一个额外的问题:为了最大限度地提高 BIOS 级别的向后兼容性,一直回到原始的 IBM PC/AT(于 1986 年左右发布),CD/DVD 驱动器支持和BIOS 中的 USB 存储支持是附加模块,通常仅当您在 BIOS 设置中专门选择从它们启动时才会发挥作用。
因此,如果您选择从 DVD 启动,BIOS 将支持访问 DVD,但不支持访问 USB 存储设备;如果您选择从 USB 存储设备启动,反之亦然。如果您从常规 HDD 启动,则通常会禁用对 DVD 和 USB 存储的支持,直到您的操作系统加载它们的驱动程序。
(在较新的系统中,我看到了一些例外情况:某些系统有一个 BIOS 选项来启用“传统 USB 存储支持”,该选项允许始终启用 BIOS 级 USB 存储支持。但这绝对不是标准特征。)
/boot/grub/x86_64-efi
仅当您以 EFI 方式从 DVD 引导时才会使用该目录:在这种情况下,引导加载程序将为 GRUB,并且insmod
您所描述的命令可能可用。但由于 EFI 与 BIOS 不同,通常始终提供对 USB 存储和 CD/DVD 设备的全面支持,因此您可能根本不需要它们,除非系统的 EFI 固件有错误。 (不幸的是,这比 BIOS 更常见,因为 EFI 仍然缺乏 BIOS 30 年左右的发展历史。)
Debian 9 DVD 1 似乎也已经准备好了或类似的工具,因此可以使用简单或类似的工具isohybrid
将其写入 USB 存储设备。dd
当以这种方式处理时,它还有另一层混合分区:它有一个 MBR 分区表,指示两个分区,一个分区几乎覆盖整个映像,具有 ISO9660 文件系统,另一个呈现为包含 EFI 启动分区的 MBR 分区类型 0xef 。实际的主引导记录似乎有一些代码,isolinux.bin
如果您尝试以 BIOS 方式从该 ISO-on-USB 引导,则会尝试加载这些代码。
但您也可以选择将其视为 GPT 格式的 HDD:它也有一个描述相同内容的 GPT 分区表。