Syslinux (简体中文)

Syslinux是一个启动加载器集合,可以从硬盘、光盘或通过 PXE 的网络引导启动系统。支持的文件系统包括 FAText2ext3ext4 和非压缩单设备 Btrfs 文件系统。

警告: 在 Syslinux 6.03 版本中,启动加载器可能不支持某些文件系统的部分功能。详情请参考
注意: Syslinux 本身只能访问其所在分区上的数据,参阅 #链式加载 来了解如何绕过这个限制。
翻译状态:本文是 Syslinux翻译。上次翻译日期:2020-07-22。如果英文版本有所更改,则您可以帮助同步翻译。

BIOS 系统

启动流程

  1. 第一阶段 - 第一部分 - 加载MBR 电脑启动时,BIOS 会先加载磁盘开始的 440 字节 MBR 启动代码 (/usr/lib/syslinux/bios/mbr.bin/usr/lib/syslinux/bios/gptmbr.bin)。
  2. 第一阶段 - 第二部分 - 寻找活动分区 第一阶段的MBR启动代码会寻找活动分区(设置了可启动标记的 MBR 分区),此处我们假设是 /boot 分区。
  3. 第二阶段 - 第一部分 - 执行卷启动记录程序 MBR 启动代码会执行上面找到的 /boot 分区的卷启动记录程序(VBR,volume boot record)。对于 Syslinux 来说,VBR 就是由 extlinux --install 命令创建的 /boot/syslinux/ldlinux.sys 位于开始扇区的部分。请注意 和 是不同的。
  4. 第二阶段 - 第二部分 - 执行 /boot/syslinux/ldlinux.sys VBR 会加载 剩余的部分。 所处在的扇区位置不可更改,否则 syslinux 无法启动。
  5. 第三阶段 - 加载 加载剩下的 syslinux 的核心部分 (这部分是因为文件大小限制无法放入 中的核心模块)。 文件应该在每一个装有 syslinux 的实例中出现,并且与分区中的 版本相匹配,否则 Syslinux 将无法启动。更多资料请参阅
  6. 第四阶段 - 查找并加载配置文件 当 syslinux 完全加载完毕,它将自动查找配置文件 /boot/syslinux/syslinux.cfg (或某些情况下的 ),如果找到即加载。否则会进入 Syslinux 的命令提示符。这一步和剩下的非核心 Syslinux 部分(除 和 的/boot/syslinux/*.c32 模块) 需要提供 (库)模块。同样,{ic|lib*.c32}} 库模块和非核心的 模块需要与分区中的 版本相匹配。

在 BIOS 上安装

安装软件包 。

安装软件包并不是安装启动加载器。在安装完相关的包后,还需要安装启动加载器代码(到适合的位置,一般是 VBR)才能启动系统;接下来的部分对您的特定系统的特性提供了替代的指令。

自动安装

  • 执行完 syslinux-install_update 脚本后,请不要忘记按照#配置#内核参数两节编辑 /boot/syslinux/syslinux.cfg

syslinux-install_update脚本将自动安装启动加载器代码(一般到 VBR)、复制 模块到、设置分区启动标记并将启动代码安装到 MBR。它可以处理软 RAID、MBRGPT 磁盘。

如果您使用分开的启动分区,请用 命令确保它们都已被挂载。如果您没有看到 /boot 挂载点,请在继续之前将其挂载。

  • syslinux-install_update 的参数: (安装文件),-a (将活动分区标上启动标记), (安装 MBR 启动代码): 如果 命令失败并报错Syslinux BIOS install failed,问题可能出在 可执行文件不能找到包含 /boot 的分区:

例如,这可能发生在从 LILO 升级时,后者在引导当前的自定义内核时,将诸如 的内核命令行参数转写成了等效的数字参数 root=801。这可以从 和 等命令的输出确认。 可以通过向 手动指定 来解决下文手动安装时的问题,或者先重启到现有的Arch Linux内核,这样会使用 initramfs 来避免此问题。

  • 现在您需要按照接下来的#配置#内核参数两节编辑 /boot/syslinux/syslinux.cfg文件。

手动安装

您计划安装Syslinux的启动分区必须包含 FAT,ext2,ext3,ext4 或 Btrfs 文件系统。您不必把它安装在文件系统的根目录上,比如把磁盘 挂在到 /boot。 例如,可以在syslinux子目录里安装 Syslinux:

 # mkdir /boot/syslinux

如果您希望使用除基本引导提示之外的任何目录或配置,请把 里的所有的 文件复制到 中。请不要使用符号链接。

 # cp /usr/lib/syslinux/bios/*.c32 /boot/syslinux/     

现在安装启动加载器。对 挂载后的 FAT,ext2/3/4,或 btrfs 启动分区使用 extlinux 安装:

# extlinux --install /boot/syslinux

替代的,对一个没有被挂载的 FAT 启动分区使用syslinux 安装:

 # syslinux --directory syslinux --install /dev/sda1

在此之后,继续安装适用于对应分区表的 Syslinux 引导代码:

这些会在下面的内容中详细描述。

更多信息,请参考 MBR 分区表

提示: 如果您不确定您的分区表类型,可以通过 blkid -s PTTYPE -o value /dev/sda 来检查。
MBR 分区表

对于一个安装在 MBR 分区表上的实例,请确保您的启动分区已经被标记为活动分区(有启动标志)。您可以用 fdiskparted 等工具确认。它应该看起来像这个样子:

安装 MBR 启动代码:

# dd bs=440 count=1 conv=notrunc if=/usr/lib/syslinux/bios/mbr.bin of=/dev/sda

Syslinux 提供一个替代的分区表 。这个分区表不会扫描可启动分区,而是从 MBR 的最后一个字节中的值读取用于启动的分区。下面的操作会将这个分区表写入。

# printf '\x5' | cat /usr/lib/syslinux/bios/altmbr.bin - | dd bs=440 count=1 iflag=fullblock of=/dev/sda

在这个例子中,一个数值为5(十六进制的)的单个字节会被添加到 的内容后,并向 的 MBR 分区表中写入440字节的内容。Syslinux 会被安装到磁盘的第一个逻辑分区(/dev/sda5)。

GPT 分区表

对于一个安装在 GPT 分区表上的实例, 请确保您的启动分区 /boot 被设置上了 2 号属性"传统BIOS可启动"(legacy BIOS bootable)。Parted 可以使用"legacy_boot"参数实现,而 sgdisk 则需要输入下面的命令:

# sgdisk /dev/sda --attributes=1:set:2

这会在 的第一个分区设置"传统BIOS可启动"属性。检查命令:

安装 MBR 启动代码:

# dd bs=440 count=1 conv=notrunc if=/usr/lib/syslinux/bios/gptmbr.bin of=/dev/sda

UEFI 系统

UEFI Syslinux 的局限性

  • UEFI Syslinux 程序 不能通过 sbsign( 软件包提供)签名,导致无法进行 UEFI 安全启动。查看关于此的 Bug 报告:
  • 在 UEFI Syslinux 目录中编辑内核参数时使用 TAB 缩进会导致显示错误(重叠显示)。查看关于此的 Bug 报告:
  • UEFI Syslinux 程序不支持链式加载其他如 、 等 EFI 应用程序。查看关于此的增强请求:
  • 在某些情况下,UEFI Syslinux 可能不能在通过 QEMU/OVMF、VirtualBoxVMware 的一些特定产品或版本构建的虚拟机的中启动。一些如 DUET 等 UEFI 模拟环境中也是如此。Syslinux 的贡献者已经确认,在 VMware Workstation 10.0.2 版本、Syslinux 6.02 版本以后不会发生这个问题。查看关于此的 Bug 报告:,
  • Memdisk 不被 UEFI 支持。查看关于此的增强请求:

在 UEFI 上安装

  • 安装来自官方软件源的 和 。然后按如下步骤安装 Syslinux 到 EFI 系统分区(ESP):
  • 复制 Syslinux 文件到 EFI 系统分区:
# mkdir -p esp/EFI/syslinux
# cp -r /usr/lib/syslinux/efi64/* esp/EFI/syslinux
# efibootmgr --create --disk /dev/sdX --part Y --loader /EFI/syslinux/syslinux.efi --label "Syslinux" --verbose

其中,是包含启动加载器的分区。

  • 按照#配置创建或编辑文件。
注意:
  • UEFI 的配置文件是 esp/EFI/syslinux/syslinux.cfg 而非 /boot/syslinux/syslinux.cfg。在 /boot/syslinux/ 中的文件是 BIOS 启动专用的,和 UEFI Syslinux 无关。

在BIOS模式下启动时, efibootmgr 将无法为 /EFI/syslinux/syslinux.efi 设置 EFI 存储于非易失性存储器(nvram)的条目。欲实现此,请将资源放在默认 EFI 位置:esp/EFI/syslinux/* -> esp/EFI/BOOT/*esp/EFI/syslinux/syslinux.efi -> esp/EFI/BOOT/bootx64.efi 处。

配置

Syslinux 的配置文件 必须和 Syslinux 放在同一个目录下。在我们的示例中,BIOS 系统放在 处,UEFI 系统放在 处。

启动器将自动寻找 (优先)和 这两个配置文件之一。

启动提示符

这是一个非常简单的配置文件,会显示 提示符并在 5 秒后自动启动。如果您不希望看见提示符,请将 PROMPT 设置为 。

配置文件:

文本启动目录

Syslinux 允许您使用一个文本启动目录来选择。要做到这一点,请将 和 模块复制到您的 Syslinux 目录:

# cp /usr/lib/syslinux/bios/{menu,libutil}.c32 /boot/syslinux/

在 5.00 版本之后,其他的 库模块也会频繁地被调用。参考 Syslinux 维基来查看依赖树。

配置文件:

* BIOS: /boot/syslinux/syslinux.cfg
* UEFI: ''esp''/EFI/syslinux/syslinux.cfg
UI menu.c32
PROMPT 0

MENU TITLE Boot Menu
TIMEOUT 50
DEFAULT arch

LABEL arch
	MENU LABEL Arch Linux
	LINUX ../vmlinuz-linux
	APPEND root=/dev/sda2 rw
	INITRD ../initramfs-linux.img

LABEL archfallback
	MENU LABEL Arch Linux Fallback
	LINUX ../vmlinuz-linux
	APPEND root=/dev/sda2 rw
	INITRD ../initramfs-linux-fallback.img

更多关于启动目录的信息,请参考 Syslinux 维基

图形化启动目录

Syslinux 允许您使用一个文本启动目录来选择。要做到这一点,请将 COM32 模块复制到您的 Syslinux 目录:

# cp /usr/lib/syslinux/bios/vesamenu.c32 /boot/syslinux/

在 5.00 版本之后,其他的 库模块也会频繁地被调用。参考 Syslinux 维基来查看依赖树。

这个配置文件使用了和 Arch Linux 安装光盘相同的目录设计,您可以在 gitlab.archlinux.org 上找到。Arch Linux 启动背景图像 也可以在那儿下载。请把图像复制到 处。

配置文件:

从 Syslinux 3.84 版本开始, 支持 MENU RESOLUTION $WIDTH $HEIGHT 指令。 使用这个指令,请将 插入您的配置文件,这样可以将分辨率设置为 1440x900。 但是,背景图像需要和分辨率完全一致,否则 Syslinux 将拒绝加载目录。

如果想要将目录居中并调整分辨率,请调节 、 和 三个参数。将 设置为非负值会将其从左上角开始移动。默认值都是 ,因此目录会显示在显示器的左上角。反过来,如果这个数值为负,则会从反方向开始移动。(比如说 是从底部向上移动四行)。

如果想要使目录居中,请添加或改为这些值:

* BIOS: /boot/syslinux/syslinux.cfg
* UEFI: ''esp''/EFI/syslinux/syslinux.cfg
MENU RESOLUTION 800 600 # or whatever your screen resolution is
MENU WIDTH 78           # width of the menu also required to bring the menu box to size
MENU VSHIFT 10          # moves menu down
MENU HSHIFT 10          # moves menu right

VESA 标准通常最大允许 25 行 80 列,因此如果将其设置得过大可能会将目录移出屏幕外,可能需要使用救援介质才能改回来。

内核参数

在 中,内核参数的设定使用 指令: 对每一个 记录, APPEND 命令只能出现在一行内(就是说,把命令拆分成多行是无效的)。

推荐将下列的设置同时作为回滚条目。

最简单的情形, 参数中的分区名称需要被修改。 将 改为正确的启动分区。

APPEND root=/dev/sda2

如果您想使用 UUID,通过块设备持久化命名制定启动分区,请如下改变 行。这里我们用1234来代表您需要修改的:

APPEND root=UUID=1234 rw

如果您想使用 dm-crypt 加密设备 请如下改变 行。

APPEND root=/dev/mapper/name cryptdevice=/dev/sda2:name rw

如果您使用 mdadm 构建的软 RAID , 请如下改变 行来适配您的 RAID 阵列。下面是一个适配 3 RAID-1 阵列、并将一个合适的分区设为根分区的示例。

APPEND root=/dev/md1 rw md=0,/dev/sda2,/dev/sdb2 md=1,/dev/sda3,/dev/sdb3 md=2,/dev/sda4,/dev/sdb4

如果在内核设备节点模式下通过软 RAID 启动失败,下面是一个替代的更可靠的方法:使用分区标签:

APPEND root=LABEL=THEROOTPARTITIONLABEL rw

如果从一个 btrfs 子卷启动,向 添加 这一行。举个例子,我们称 被挂载到一个叫 'ROOT' 的 btrfs 子卷。(例如 ),这时应该将 行改为这样:

APPEND root=/dev/sda2 rw rootflags=subvol=ROOT

如果此处错误,会收到 错误信息。

自动启动

If you do not want to see the Syslinux menu at all, use the 如果您根本不想看见 Syslinux 的目录,请参考#启动提示符一节,将 PROMPT 设置为 并将任何 的目录记录注释掉。将 TIMEOUT 设置为 也可以。确保您在 设置的有默认回滚 选项。按下 或者 ,或者设置为按下 或 Scroll Lock, 在启动时可以允许更多除了默认选项以外的操作。更多可以设置的替代键,请参考上游的维基

安全措施

Syslinux 有两级启动加载器安全措施,可以在 中配置目录主密码,和分别针对每个条目的密码。使用

MENU MASTER PASSWD passwd 

来配置目录主密码,在 的块中使用

MENU PASSWD passwd 

来设定针对这个条目的密码。

密码可以是明文,也可以是哈希值。更多信息,请参考官方文档

链式加载

在 BIOS 上配置的 Syslinux 不能直接链式加载其他分区上的文件,但是 模块可以启动其他启动分区上的卷启动记录程序(VBR),或是另一个磁盘上的 MBR 启动代码。

链式加载卷启动记录程序

如果您想要链式加载另一个操作系统(比如 Windows)或启动加载器,请将 模块复制到 Syslinux 目录(还需要复制其他需要的 库模块。更多信息请参考前面几节),然后在配置文件中建立下面这一节:

是第一个 BIOS 控制驱动器上的第三个分区。请注意,驱动器计数从 0 开始,而分区计数则是从 1 开始。

链式加载 MBR 启动代码

如果您不知道 BIOS 会怎么安排驱动器的编号,您也可以使用 MBR 标记,或者说 GPT 的文件系统标签。使用 MBR 标记请如下文所示设置:

将 改成您想要链式加载的驱动器。这里需要使用您磁盘的十六进制标识符,这个例子中是 。 需要改成这个样子:

/boot/syslinux/syslinux.cfg
...
LABEL windows
	MENU LABEL Windows
	COM32 chain.c32
	APPEND mbr:0xf00f1fd3
...

更多关于链式启动的信息,请参阅 Syslinux 维基

链式加载另一个启动加载器

如果您在同一个分区安装了 GRUB 引导程序,您可以像这样来链式加载它:

作为替代,也可以将 GRUB 作为一个 linux 内核来引导。只需要用 来替代 。 文件是 提供的,您可以在 处找到它。

对于需要从 ISO 镜像引导的系统,这可能会被用到。

使用内存测试 memtest

安装来自官方软件源memtest86+

用这个 片段来启动内存测试

硬件检测工具

硬件检测工具(HDT) 可以显示硬件信息。和前文所述的一样, 模块需要从 中复制,其他需要的 库模块也需要一并复制。 如果想要显示 PCI 总线信息请将 复制到 /boot/syslinux/pci.ids,并在您的配置文件中添加这些行:

重启和关机

使用下面的片段来重启或关机:

清空目录

当退出时清空屏幕,在配置文件中加入下面这一行:

键盘布局

如果您需要经常修改 Syslinux 启动提示符下的参数,您可能想要匹配您的键盘布局。这样您就可以在一个非美式英语键盘上方便地输入"="、"/"等字符了。

生成一个适配的键盘布局映射表,(比如说,德语键盘),运行:

# keytab-lilo /usr/share/kbd/keymaps/i386/qwerty/us.map.gz /usr/share/kbd/keymaps/i386/qwertz/de.map.gz > /boot/syslinux/de.ktl

现在在 文件中加入

/boot/syslinux/syslinux.cfg
KBDMAP de.ktl

更多细节,请参考 Syslinux 维基

隐藏目录

在配置文件中使用

参数来隐藏目录并只显示超时倒计时。按下任意按键来显示目录。

PXELINUX

PXELINUX 和 软件包一起提供。

对于一个 BIOS 客户机,将 启动加载器复制到客户机的启动目录。对于 5.00 版本及以上的 Syslinux,还需要将同一个软件包中的 复制过去。

# cp /usr/lib/syslinux/bios/pxelinux.0 "TFTP_root/boot/"
# cp /usr/lib/syslinux/bios/ldlinux.c32 "TFTP_root/boot/"
# mkdir "TFTP_root/boot/pxelinux.cfg"

这时,我们同时也创建了 目录。PXELINUX 会默认在这个目录中寻找配置文件。我们不想对每一个不同的主机 MAC 地址都作出单独的设置,我们需要创建 作为默认配置。

如果您使用 NBD 网络存储启动,添加下面这行:

append ro initrd=initramfs-linux.img ip=:::::eth0:dhcp nbd_host=10.0.0.1 nbd_port=10809 nbd_name=arch root=/dev/nbd0

PXELINUX 的配置和 SYSLINUX 使用相同的语法。参考上游的文档来获取更多信息。

内核与 initramfs 会通过 TFTP 传输,因此需要设置对 TFTP 根目录的相对路径。否则,根文件系统需要挂载在 NFS 挂载点上。

若要加载 PXELINUX, 请将 文件中的 替换为 (或 )。

通过 memdisk 启动 ISO9660 镜像

Syslinux 支持通过 memdisk 模块从 ISO 镜像中启动。参考Multiboot USB drive#Using Syslinux and memdisk中的示例。

串行控制台

参考 Working with the serial console#Syslinux

单次引导到另一个操作系统

可以临时改变 Syslinux 的行为,让其仅在下一次启动时引导进入另一个操作系统。下面的命令展示了怎样临时引导 archfallback

# extlinux -o archfallback /boot/syslinux

在下一次启动的过程中,上面制定的启动标签会在没有任何 Syslinux 启动提示符的情况下直接启动。默认的启动行为会在下一次重启的时候复原。

常见问题

无法加载 ldlinux

启动时出现 "Failed to load ldlinux.c32" 错误提示可能会有很多原因。 其中的一种可能是文件系统工具或者文件系统结构遭到了更改。

警告: 在 Syslinux 6.03 版本中,启动加载器可能不支持某些文件系统的部分功能。详情请参考

您也可以参考 。 (这一整页都和常见问题有关)。

使用 Syslinux 启动提示符

您可以输入(在您的 配置过的) 的名称来启动对应的系统。如果您是按照上述的例子进行的配置,您只需要输入:

boot: arch

如果您收到了配置文件无法加载的错误信息,您可以向启动提示符中直接输入您的启动参数。比如说:

boot: ../vmlinuz-linux root=/dev/sda2 rw initrd=../initramfs-linux.img

如果在ramfs中您没有 的访问权限,并且您暂时无法启动内核,

1. 创建一个临时的目录,来加载您的根分区 (如果不存在的话):
 # mkdir -p /new_root
2. 将 挂载到 (我们假设 也在同一个分区,否则您需要将这些分区全部挂载):
 # mount /dev/sd[a-z][1-9] /new_root
3. 使用 来重新将 编辑正确。保存文件。
4. 重启。

根分区文件系统检测失败

如果根分区被严重损坏(分区日志受损),在ramfs的应急 shell 中,加载根分区文件系统:

# mount /dev/root partition /new_root

将二进制程序 tune2fs 从根分区中复制出来(这个不包含在 Syslinux 中)。

# cp /new_root/sbin/tune2fs /sbin/

按照下面的指示ext2fs: 日志损坏重建根分区日志。

没有找到默认回滚和界面设置

有些主板厂家对 USB 设备启动的支持会差一些。此时一个在通常的现代电脑上都能启动的 ext4 格式的 U 盘,一些要求内核与 initrd 文件必须存储在 FAT16 分区的电脑可能无法正常运作。为了避免这种老设备无法读取 而去加载 ldlinux,用 工具建立一个 FAT16 的小分区(≤ 2 GB):

# mkfs.fat -F 16 /dev/sda1

再来安装配置 Syslinux。

找不到操作系统

  • 确保您在#MBR 分区表上安装的是 ,在#GPT 分区表上安装的是 。如果安装错误, 会显示 "Missing operating system" 错误信息,而 会显示 "Missing OS" 信息。
  • 检查包含 /boot 的分区是否有可启动标记。
  • 检查第一个分区是否是从 1 扇区,而不是 63 扇区或 2048 扇区开始的。您可以使用 命令确认。如果是从 1 扇区开始的,您可以通过救援介质上的 gparted 修改。如果您有另一个启动分区,您可以将 /boot 备份:
# cp -a /boot /boot.bak

然后使用 Arch 安装磁盘启动。接下来,使用 删掉 /boot 分区,再重建它。现在这个分区应该从正确的 63 扇区开始。现在挂载您的分区,并按照安装指南中写的那样 进入待修复系统。使用以下指令恢复 /boot

# cp -a /boot.bak/ /boot/

检查 是否正确:

# syslinux-install_update -iam

然后重启。

如果您试图从用一个太新以至于 Syslinux 无法识别其元数据的工具创建的 md RAID-1 阵列启动,您也会得到这个错误信息。在 2013 年 8 月 mdadm 会创建使用 1.2 版本的元数据的阵列,但是 Syslinux 不能够识别高于 1.0 版本的元数据。如果是因此而出错,您需要重建您的序列,并在使用 mdadm 时添加 参数。

启动了 Windows,Syslinux 被忽略掉了

解决办法: 确保包含 /boot 的分区上有可启动标记。同时,确保 Windows 分区上没有这个标记。请参考上面的#链式加载卷启动记录程序部分。

Syslinux 所在的 MBR 会找到第一个有可启动标记的活动分区。Windows 分区很可能最先被发现。如果您想要修改,您可以使用 Windows 或 MS-DOS 上的 。

目录项失效

您选择了一个目录项,但是什么都没有发生,只是"刷新"了一下目录。这通常意味着您的 文件出了问题。按下 键来修改您的启动参数。或者您也可以按下 Esc 键,并输入您的启动项的 。(比如说,arch)。另一种可能导致这个情况的原因可能是您没有安装内核。想个办法进入您的文件系统(比如说,用live CD),检查 文件存在并且非空。如果是这里出错,请重新安装您的内核。

无法删除 ldlinux.sys

文件设置了不可变属性,禁止您删除或覆盖它。这样保证了除了重装 Syslinux,没有别的办法来修改这个文件。若要删除这个文件,请运行下面的指令:
# chattr -i /boot/syslinux/ldlinux.sys
# rm /boot/syslinux/ldlinux.sys

vesamenu的左上角有白色块

问题: 从 linux-3.0 开始,模式设置驱动程序会在更改分辨率后尝试保留屏幕的当前内容(至少在我的 Intel 设备上,使用 Syslinux 的文本模式的情况下如此)。而 Syslinux 中的 vesamenu 模块会与这个特性冲突。(白色方框实际上是驱动程序试图保留 Syslinux 目录,但是驱动程序无法从 vesa 图形模式下捕获图片)。

如果您的分辨率是自定义的,而 在很早就进行了模式设置,请尝试在 添加这一行来消除白色块:

APPEND root=/dev/sda6 rw 5 vga=current quiet splash

当 Windows 安装在另一张磁盘上时,链式启动失效

如果 Windows 安装在在另一张磁盘上,您又不能通过链式启动来引导 Windows, 请尝试下列配置:

将 MBR 代码换成您的 Windows 驱动器的值(详见上文),并将 加入选项。

查看启动加载器日志

在一些情况下(比如启动加载器无法启动内核),我们很想得到启动的更多信息。Syslinux 会显示错误信息,但是文字一闪而过,看不清。为了保留日志信息,请禁用 中的 ,并使用默认的命令提示符。这意味着

  • 不使用 命令
  • 不使用
  • 不使用
  • 不使用 MENU CLEAR
  • TIMEOUT 设为更高的值
  • 使用
  • 使用

若要得到更详细的调试日志,To get more detailed debug log, 添加下面的 C 编译标志并重新编译 软件包:

-DDEBUG_STDIO=1 -DCORE_DEBUG=1

Btrfs 压缩

从压缩 Btrfs 文件系统启动不受支持。 会显示下列错误信息:

btrfs: found compressed data, cannot continue!
invalid or corrupt kernel image.

多设备 Btrfs

从多设备 Btrfs 文件系统启动不受支持。 (21-Jul-2016 版本,main.c 文件第 1246 行validate_device_btrfs()会对此进行检查) 这个令人抓狂的问题会显示下列错误信息:(假设您将 Syslinux 装在 sda1):

/boot/syslinux is device /dev/sda1
extlinux: path /boot/syslinux doesn't match device /dev/sda1

更多信息

This article is issued from Archlinux. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.