目录
摘要
本章描述了如何配置 SUSE® Linux Enterprise Desktop 中使用的引导加载程序 GRUB (Grand Unified Bootloader)。一个特殊的 YaST 模块可用于配置所有设置。如果您不熟悉在 Linux 中进行引导的相关内容,请阅读下面几节获得一些背景信息。本章还介绍了使用 GRUB 进行引导时经常遇到的一些问题和它们的解决方案。
![]() | 使用 UEFI 的计算机上无 GRUB |
|---|---|
配有传统 BIOS 的计算机和使用兼容支持模块 (CSM) 的 UEFI(统一可扩展固件接口)计算机上都例行安装了 GRUB。在未启用 CSM 的 UEFI 计算机上,将自动安装 | |
本章主要介绍引导加载程序 GRUB 的引导管理和配置。第 9 章 引导和配置 Linux 系统 中将引导过程作为一个整体进行了介绍。引导加载程序代表计算机 (BIOS) 和操作系统 (SUSE Linux Enterprise Desktop) 之间的接口。引导加载程序的配置直接影响到操作系统的启动。
本章经常出现以下术语,可能需要进行解释:
MBR 的结构是由独立于操作系统的约定定义的。前 446 个字节为程序代码保留。它们通常保存部分引导加载程序或操作系统选择器。随后的 64 个字节为最多包含 4 项的分区表提供空间。分区表包含有关硬盘分区和文件系统类型的信息。操作系统需要使用此表来处理硬盘。如果 MBR 中有传统通用代码,则只应将一个分区标记为活动。MBR 的最后两个字节必须包含静态“幻数”(AA55)。一些 BIOS 会将包含不同值的 MBR 视为无效,因此引导时不会考虑此 MBR。
引导扇区是硬盘分区(除扩展分区之外)上的前几个扇区,扩展分区只充当其他分区的“容器”。引导扇区具有 512 字节的空间,引导扇区储存用于引导安装在各个分区上的操作系统的代码。这适用于经过格式化的 DOS、Windows 和 OS/2 分区的引导扇区,这些扇区还包含文件系统的一些重要的基本数据。相比之下,Linux 分区的引导扇区在设置文件系统(而不是 XFS)之后最初是空的。因此,即使 Linux 分区包含内核和有效的 root 文件系统,它也不能通过自身进行引导。储存了引导系统的有效代码的引导扇区具有与 MBR 中的最后两个字节 (AA55) 相同的幻数。
GRUB 包括两个阶段。Stage 1 包括 512 字节,其唯一任务在于装载引导加载程序的第二阶段。随后,装载 stage 2。这一段包含引导加载程序的主要部分。
在一些配置中,可以使用中间段 1.5,它能从适当的文件系统中找到并装载第二段。如果可能,将在安装时或使用 YaST 初始设置 GRUB 时默认选择此方法。
Stage 2 可以访问多个文件系统。目前支持 ext2、ext3、ReiserFS、Minix,以及 Windows 使用的 DOS FAT 文件系统。在某种程度上还支持 BSD 系统使用的 、XFS、UFS 和 FFS。从版本 0.95 开始,GRUB 还能够从包含符合“El Torito”规范的 ISO 9660 标准文件系统的 CD 或 DVD 进行引导。即使是在引导系统之前,GRUB 也可以访问支持的 BIOS 磁盘设备(BIOS 检测到的软盘或硬盘、CD 驱动器和 DVD 驱动器)的文件系统。因此,对 GRUB 配置文件 (menu.lst) 进行更改不要求新安装引导管理器。当引导系统时,GRUB 重装载菜单文件以及内核或初始 ram 磁盘 (initrd) 的有效路径和分区数据,并对这些文件进行定位。
GRUB 的实际配置是基于四个文件进行的,下面对这四个文件进行介绍:
/boot/grub/menu.lst此文件包含有关可通过 GRUB 进行引导的分区或操作系统的所有信息。没有这些信息,GRUB 命令行将提示用户如何继续(请参见第 10.1.1.3 节 “在引导过程中编辑菜单项” 获取详细信息)。
/boot/grub/device.map此文件将 GRUB 和 BIOS 符号中的设备名转换为 Linux 设备名。
/etc/grub.conf此文件包含 GRUB 外壳正确安装引导加载程序所需的命令、参数和选项。
/etc/sysconfig/bootloader 此文件由使用 YaST 配置引导加载程序时和每次安装新内核时使用的 perl 引导加载程序库读取。其中包含默认情况下将添加到引导加载程序配置文件中的配置选项(如内核参数)。
可以通过多种方式控制 GRUB。可以在图形菜单(启动屏幕)中选择现有配置的引导项。配置是从文件 menu.lst 装载的。
在 GRUB 中,在引导前可以更改所有引导参数。例如,可以通过这种方式更正编辑菜单文件时出现的错误。还可以在输入提示符处以交互方式输入引导命令。有关详细信息,请参见第 10.1.1.3 节 “在引导过程中编辑菜单项”。GRUB 能够在引导前确定内核和 initrd 的位置。通过这种方式,您甚至可以引导在引导加载程序配置中不存在任何项的已安装操作系统。
GRUB 实际上以两个版本存在:作为引导加载程序以及作为 /usr/sbin/grub 中的普通 Linux 程序。后者被称为 GRUB 外壳。它在已安装系统中提供 GRUB 的仿真,并且可用来安装 GRUB 或在应用新设置之前对其进行测试。将 GRUB 作为引导加载程序安装在硬盘或软盘上的功能以 setup 命令的形式集成在 GRUB 中。当装载了 Linux 后在 GRUB 外壳中可用。
/boot/grub/menu.lst¶
带有引导菜单的图形启动屏幕基于 GRUB 配置文件 /boot/grub/menu.lst,该文件包含有关可以通过菜单引导的所有分区或操作系统的所有信息。
每次引导系统时,GRUB 都从文件系统装载菜单文件。出于此原因,不必每次更改文件后都重安装 GRUB。使用 YaST 引导加载程序修改 GRUB 配置,如 第 10.2 节 “使用 YaST 配置引导加载程序” 中所述。
菜单文件中包含命令。语法非常简单。每行都包含一条命令,后跟可选参数,可选参数之间用空格隔开,就像在外壳中一样。出于历史原因,某些命令允许在第一个参数前使用 =。注释以井号 (#) 开头。
若要在菜单概述中标识菜单项,请为每项设置一个 title。关键字 title 后的文本(包括任何空格)显示为菜单中的可选择选项。当选择此菜单项时,将执行下一个 title 前的所有命令。
最简单的情况是重定向到其他操作系统的引导加载程序。命令是 chainloader,参数通常是 GRUB 中另一个分区的引导块 block notation。例如:
chainloader (hd0,3)+1
GRUB 中的设备名在 第 10.1.1.1 节 “硬盘和分区的命名约定” 中有所解释。此示例指定第一个硬盘第四个分区中的第一个块。
使用命令 kernel 指定内核映像。第一个参数是指向分区中内核映像的路径。命令行上的其他参数将被传递到内核。
如果内核不具有访问根分区的内置驱动程序,或者使用了具有高级热插拨功能的最新 linux 系统,则必须用单独的 GRUB 命令指定 initrd,该命令的唯一参数便是指向 initrd 文件的路径。因为 initrd 的装载地址会被写入装载的内核映像中,所以 initrd 命令必须紧接在 kernel 命令之后。
命令 root 简化了内核和 initrd 文件的指定。root 的唯一参数是一个设备或分区。此设备用于所有内核、initrd 或下一个 root 命令前未显式指定设备的其他文件路径。
每个菜单项的末尾都间接指定 boot 命令,因此无需将其写入菜单文件中。但是,如果以交互方式使用 GRUB 进行引导,则必须在最后输入 boot 命令。该命令本身没有参数。它只引导装载的内核映像或指定的链装载程序。
在写入所有菜单项之后,将其中一项定义为 default 项。否则,将使用第一项(项 0)。您还可以指定在一段时间后引导默认项的超时值(以秒为单位)。timeout 和 default 通常在各菜单项前面。示例文件在 第 10.1.1.2 节 “示例菜单文件” 中有所介绍。
GRUB 用于硬盘和分区的命名约定不同于普通 Linux 设备使用的命名约定。它更类似于 BIOS 执行的简单磁盘枚举,而语法类似于一些 BSD 衍生程序中使用的语法。在 GRUB 中,分区的编号从 0 开始。它表示 (hd0,0) 是第一块硬盘的第一个分区。在普通台式机上,作为 Primary Master(第一个 IDE 控制器上的主设备)连接的硬盘所对应的 Linux 设备名为 /dev/sda1。
4 个可能的主分区所分配的分区号为 }0 到 3。逻辑分区的编号从 4 开始:
(hd0,0) first primary partition of the first hard disk (hd0,1) second primary partition (hd0,2) third primary partition (hd0,3) fourth primary partition (usually an extended partition) (hd0,4) first logical partition (hd0,5) second logical partition
GRUB 依赖于 BIOS 设备,它不区分 PATA (IDE)、SATA、SCSI 和硬件 RAID 设备。BIOS 或其他控制器识别的所有硬盘将按照 BIOS 中显示的引导顺序进行编号。
不过,通常不能将 Linux 设备名准确映射为 BIOS 设备名。它借助某种算法生成这一映射并将其保存到文件 device.map 中,可以根据需要对该文件进行编辑。有关文件 device.map 的信息在第 10.1.2 节 “文件 device.map” 中有所介绍。
完整的 GRUB 路径包含写在括号中的设备名和指向指定分区的文件系统中文件的路径。路径以斜线开头。例如,在具有一个 PATA (IDE) 硬盘(其第一个分区中包含 Linux)的系统上,可以按如下方式指定可引导内核:
(hd0,0)/boot/vmlinuz
以下示例描述了 GRUB 菜单文件的结构。此示例安装包括 /dev/sda5 下的 Linux 引导分区、/dev/sda7 下的 root 分区和 /dev/sda1 下的 Windows 安装。
gfxmenu (hd0,4)/boot/messagecolor white/blue black/light-gray
default 0
timeout 8
title linux
root (hd0,4) kernel /boot/vmlinuz root=/dev/sda7 vga=791 resume=/dev/sda9 initrd /boot/initrd title windows
rootnoverify (hd0,0) chainloader +1 title floppy
rootnoverify (hd0,0) chainloader (fd0)+1 title failsafe
root (hd0,4) kernel /boot/vmlinuz.shipped root=/dev/sda7 ide=nodma \ apm=off acpi=off vga=normal nosmp maxcpus=0 3 noresume initrd /boot/initrd.shipped
第一块定义了启动屏幕的配置:
背景图像 | |
颜色模式:白色(前景)、蓝色(背景)、黑色(所选内容)、浅灰色(所选内容的背景)。颜色方案对启动屏幕没有任何影响,它只影响通过按 Esc 键退出启动屏幕后所访问的可自定义的 GRUB 菜单。 | |
会默认引导第一个 ( | |
如果 8 秒钟后无任何用户输入,GRUB 将自动引导默认项。要检测自动引导,请删除 |
第二块(也就是最大的块)列出了各个可引导的操作系统。各个操作系统的不同部分由 title 引出。
第一项 ( | |
第二项负责装载 Windows。Windows 将从第一块硬盘的第一个分区 ( | |
下一项支持从软盘进行引导,而无需修改 BIOS 设置。 | |
引导选项 |
随时可以根据需要更改菜单文件。GRUB 会在下次引导时使用修改后的设置。使用 YaST 或所选的编辑器对文件进行永久编辑。或者,使用 GRUB 的编辑功能可以按交互方式进行临时更改(请参见第 10.1.1.3 节 “在引导过程中编辑菜单项”)。
在图形引导菜单中,使用箭头键选择要引导的操作系统。如果选择 Linux 系统,则可以在引导提示符处输入其他引导参数。若要直接编辑个别菜单项,请按 Esc 键退出启动屏幕并进入 GRUB 基于文本的菜单,然后按 E 键。通过这种方式进行的更改仅适用于当前引导,不会被永久采用。
![]() | 引导过程中的键盘布局 |
|---|---|
US 键盘布局是引导时唯一可用的键盘布局。请参见图 28.3 “美式键盘布局”。 | |
编辑菜单条目简化了无法再进行引导的有问题系统的修复工作,因为可以通过手动输入参数规避引导加载程序中有问题的配置文件。在引导过程中手动输入参数还可用于测试新设置而避免损坏本机系统。
在激活编辑方式后,可以使用箭头键选择要编辑其配置的菜单项。若要使配置可以编辑,请再次按 E 键。通过这种方式,可以编辑不正确的分区或路径指定,从而防止它们对引导进程产生负面影响。按 Enter 键退出编辑方式并返回菜单。随后按 B 键引导此项。可以进行的进一步操作显示在底部的帮助文本中。
若要永久输入更改的引导选项并将它们传递到内核,则以 root 用户身份打开文件 menu.lst 并将相应的内核参数追加到现有的行上,用空格分隔:
title linux
root(hd0,0)
kernel /vmlinuz root=/dev/sda3 additional parameter
initrd /initrdGRUB 会在下次引导系统时自动采用新参数。或者,还可以通过 YaST 引导加载程序模块进行此更改。将新参数追加到现有的行上,用空格分隔。
文件 device.map 将 GRUB 和 BIOS 设备名映射为 Linux 设备名。在包含 PATA (IDE) 和 SCSI 硬盘的混合系统中,GRUB 必须通过特殊过程尝试确定引导顺序,因为 GRUB 不能访问 BIOS 上有关引导顺序的信息。GRUB 会将此分析的结果保存在文件 /boot/grub/device.map 中。BIOS 中的引导顺序设为 PATA 先于 SCSI 的系统的示例 device.map 文件可能如下所示:
(fd0) /dev/fd0 (hd0) /dev/sda (hd1) /dev/sdb
或
(fd0) /dev/fd0 (hd0) /dev/disk-by-id/DISK1 ID(hd1) /dev/disk-by-id/DISK2 ID
因为 PATA (IDE)、SCSI 和其他硬盘的顺序取决于各种因素,并且 Linux 无法标识映射,所以可以在文件 device.map 中手动设置顺序。如果在引导时遇到问题,请检查此文件中的顺序是否对应于 BIOS 中的顺序,如果需要,使用 GRUB 提示符对其进行临时修改。引导了 Linux 系统之后,便可以使用 YaST 引导加载程序模块或所选的编辑器对文件 device.map 进行永久编辑。
在手动更改 device.map 之后,请执行以下命令重安装 GRUB。此命令导致重装载文件 device.map 并且执行 grub.conf 中列出的命令:
grub --batch < /etc/grub.conf
除了 menu.lst 和 device.map 之外,第三个重要的 GRUB 配置文件就是 /etc/grub.conf。此文件包含 GRUB 外壳正确安装引导加载程序所需的命令、参数和选项。
setup --stage2=/boot/grub/stage2 --force-lba (hd0,1) (hd0,1) quit
该命令将告知 GRUB 使用位于第一个硬盘 (hd0,1) 的第二个分区上的引导映像将引导加载程序自动安装到同一分区上。需要 --stage2=/boot/grub/stage2 参数在已装入的文件系统中安装 stage2 映像。一些 BIOS 具有不正确的 LBA 支持实施,--force-lba 提供了解决方案以忽略这些故障。
/etc/sysconfig/bootloader¶
此配置文件仅当使用 YaST 配置引导加载程序时和每次安装新内核时才使用。它由 perl 引导加载程序库评估,此库会相应地修改引导加载程序配置文件(例如,对于 GRUB 为 /boot/grub/menu.lst)。/etc/sysconfig/bootloader 不是特定于 GRUB 的配置文件 - 值将应用于安装在 SUSE Linux Enterprise Desktop 上的任何引导加载程序。
![]() | 内核更新后的引导加载程序配置 |
|---|---|
每次安装新内核时,perl 引导加载程序都会使用在 | |
LOADER_TYPE
指定在系统(例如 GRUB 或 LILO)上安装的引导加载程序。不要修改,而是使用 YaST 更改引导加载程序,如过程 10.6, “更改引导加载程序类型” 中所述。
DEFAULT_VGA / FAILSAFE_VGA / XEN_VGA
引导期间使用的 framebuffer 的屏幕分辨率和颜色深度是通过内核参数 vga 配置的。这些值定义对于默认引导项、failsafe 和 XEN 项使用哪种分辨率和颜色深度。以下值为有效值:
表 10.1. 屏幕分辨率和颜色深度参考
|
640x480 |
800x600 |
1024x768 |
1280x1024 |
1600x1200 | |
|---|---|---|---|---|---|
|
8bit |
0x301 |
0x303 |
0x305 |
0x307 |
0x31C |
|
15bit |
0x310 |
0x313 |
0x316 |
0x319 |
0x31D |
|
16bit |
0x311 |
0x314 |
0x317 |
0x31A |
0x31E |
|
24bit |
0x312 |
0x315 |
0x318 |
0x31B |
0x31F |
DEFAULT_APPEND / FAILSAFE_APPEND / XEN_KERNEL_APPEND
自动追加到引导加载程序配置文件中的默认引导项、failsafe 和 XEN 引导项的内核参数(vga 除外)。
CYCLE_DETECTION / CYCLE_NEXT_ENTRY
配置是否要使用引导周期检测,如果要使用,则配置在重引导周期要从 /boot/grub/menu.lst 引导的备用项(例如 Failsafe)。请参见 /usr/share/doc/packages/bootcycle/README 了解详细信息。
即使是在引导操作系统之前,GRUB 也支持对文件系统的访问。没有根权限的用户可以访问 Linux 系统中的文件,而一旦引导系统后,他们将无权访问这些文件。要阻止此类访问或防止用户引导某些操作系统,请设置引导密码。
![]() | 引导密码和启动屏幕 |
|---|---|
如果对 GRUB 使用引导密码,则不显示通常的启动屏幕。 | |
以 root 用户身份按如下步骤设置引导密码:
在根提示符处,使用 grub-md5-crypt 加密密码:
# grub-md5-crypt Password: **** Retype password: **** Encrypted: $1$lS2dv/$JOYcdxIn7CJk9xShzzJVw/
将经过加密的字符串粘贴到 menu.lst 文件的全局部分:
gfxmenu (hd0,4)/message color white/blue black/light-gray default 0 timeout 8 password --md5 $1$lS2dv/$JOYcdxIn7CJk9xShzzJVw/
现在,只有在按 P 键并输入密码后,才可以在引导提示符处执行 GRUB 命令。但是,用户仍可以从引导菜单引导所有操作系统。
要防止从引导菜单引导一个或多个操作系统,请将项 lock 添加到 menu.lst 中不输入密码就不能引导的每个部分。例如:
title linux kernel (hd0,4)/vmlinuz root=/dev/sda7 vga=791 initrd (hd0,4)/initrd lock
在重引导系统并从引导菜单中选择 Linux 项后,将显示以下错误消息:
Error 32: Must be authenticated
按 Enter 键进入该菜单。然后按 P 键,系统将提示您输入密码。在输入密码并按 Enter 键之后,将引导所选的操作系统(在本例中为 Linux)。
在您的 SUSE Linux Enterprise Desktop 系统中配置引导加载程序的最简单方式就是使用 YaST 模块。在 YaST 控制中心,选择+。如图 10.1 “引导加载程序设置” 中所示,它将显示您系统的当前引导加载程序配置,并允许您进行更改。
使用选项卡可编辑、更改和删除单个操作系统的引导加载程序扇区。若要添加某个选项,请单击。要更改现有选项的值,请用鼠标选中它,然后单击。要删除现有的条目,请选择它,单击。如果对引导加载程序选项不熟悉,请先阅读第 10.1 节 “通过 GRUB 引导”。
使用选项卡查看并更改类型、位置和高级加载程序设置的相关设置。
单击访问高级配置选项。内置编辑器让您可以更改 GRUB 配置文件。有关详细信息,请参见第 10.1 节 “通过 GRUB 引导”。也可以删除现有配置并或让 YaST 。也可以向磁盘写入配置或从磁盘重新读取配置。要恢复在安装期间保存的原始主引导记录 (MBR),请选择。
要修改引导加载程序的位置,请遵循以下步骤:
过程 10.2. 更改引导加载程序位置¶
选择选项卡,然后为选择以下某个选项:
本操作会在第一个磁盘的 MBR 中安装引导加载程序(根据 BIOS 中预设的引导顺序)。
这将在 / 分区(这是默认分区)的引导扇区中安装引导加载程序。
这将在 /boot 分区的引导扇区中安装引导加载程序。
这将在扩展分区容器中安装引导加载程序。
手动使用此选项来指定引导加载程序的位置。
单击以应用您的更改。
引导加载程序不会立即引导默认系统。超时期间,可以选择要引导的系统或编写一些内核参数。要设置引导加载程序超时值,请执行如下操作:
![]() | 0 秒超时 |
|---|---|
将超时设置为 0 秒时,在引导时您将无法访问 GRUB。如果同时将默认引导选项设置为非 Linux 操作系统,事实上会禁用对 Linux 系统的访问。 | |
高级引导选项可以通过+来配置。通常情况下,不需要更改默认设置。
激活包含该引导加载程序的分区。一些旧操作系统(如 Windows 98)只能从活动分区中引导。
使用通用、独立于操作系统的代码替换当前 MBR。
在调试模式中设置 GRUB,该模式可显示表明磁盘活动的消息。
隐藏引导菜单并引导默认项。
![]() | |
隐藏引导菜单时,在引导时您将无法访问 GRUB。如果同时将默认引导选项设置为非 Linux 操作系统,事实上会禁用对 Linux 系统的访问。 | |
启动支持受信任计算功能的受信任 GRUB。
显示引导屏幕时使用的图形文件的路径。
如果您的计算机是通过串行控制台控制的,则可指定要使用的 COM 端口及其运行速度。还可以将设置为“串行”。有关细节,请参见 info grub 或 http://www.gnu.org/software/grub/manual/grub.html。
如果您的计算机是通过串行控制台控制的,则可激活此选项并指定要使用的 COM 端口及其运行速度。请参见 info grub 或 http://www.gnu.org/software/grub/manual/grub.html#Serial-terminal
在中设置引导加载程序类型。SUSE Linux Enterprise Desktop 中的默认引导加载程序是 GRUB。要使用 LILO 或 ELILO,请如下操作:
![]() | LILO 不受支持 |
|---|---|
不建议使用 LILO—它在 SUSE Linux Enterprise Desktop 上不受支持。仅在特殊情况下才使用它。 | |
过程 10.6. 更改引导加载程序类型¶
选择选项卡。
对于,请选择 。
在打开的对话框中,选择以下某个操作:
让 YaST 推荐一个新的配置。
让 YaST 转换当前的配置。在转换配置时,有些设置可能会丢失。
编写自定义配置。此操作在安装 SUSE Linux Enterprise Desktop 期间不可用。
装载自己的 /etc/lilo.conf。此操作在安装 SUSE Linux Enterprise Desktop 期间不可用。
单击两次以保存更改。
转换时,旧的 GRUB 配置将保存到磁盘上。如要使用它,只需将引导加载程序类型改回 GRUB,然后选择。此操作仅在已安装的系统上可用。
![]() | 自定义引导加载程序 |
|---|---|
如果想要使用 GRUB 或 LILO 以外的引导加载程序,请选择。在选择该选项之前,请仔细阅读您的引导加载程序文档。 | |
YaST 可用于卸载 Linux 引导加载程序并将 MBR 恢复为安装 Linux 之前的状态。在安装过程中,YaST 自动创建原始 MBR 的备份副本并根据请求进行恢复。
要卸装 GRUB,请启动 YaST,然后单击+启动引导加载程序模块。选择+然后选择加以确认。
如果使用引导管理器引导系统时出现问题或不能将引导管理器安装在硬盘磁盘上,那么还可以创建包含所有必需的 Linux 启动文件的可引导 CD。这需要您的系统中安装有 CD 刻录机。
用 GRUB 创建可引导 CD-ROM 只需要特殊形式的 stage2(名为 stage2_eltorito)以及自定义的 menu.lst(可选)。不需要标准文件 stage1 和 stage2。
过程 10.7. 创建引导 CD
将目录更改为要创建 ISO 映像的目录,例如:cd /tmp
创建 GRUB 的子目录,并更改为新创建的 iso 目录:
mkdir -p iso/boot/grub && cd iso
将内核、文件 stage2_eltorito、initrd、menu.lst 和 message 复制到 iso/boot/:
cp /boot/vmlinuz boot/ cp /boot/initrd boot/ cp /boot/message boot/ cp /usr/lib/grub/stage2_eltorito boot/grub cp /boot/grub/menu.lst boot/grub
将 root (hd 项替换为 x, y)root (cd) 以指向 CD_ROM 设备。您可能还需要调整消息文件、内核和 initrd 的路径,它们应分别指向 /boot/message、/boot/vmlinuz 和 /boot/initrd。调整好后,menu.lst 的显示应与以下示例类似:
timeout 8 default 0 gfxmenu (cd)/boot/message title Linux root (cd) kernel /boot/vmlinuz root=/dev/sda5 vga=794 resume=/dev/sda1 \ splash=verbose showopts initrd /boot/initrd
使用 splash=silent 代替 splash=verbose 来防止引导过程中出现引导消息。
用以下命令创建 ISO 映像:
genisoimage -R -b boot/grub/stage2_eltorito -no-emul-boot \ -boot-load-size 4 -boot-info-table -iso-level 2 -input-charset utf-8 \ -o grub.iso /tmp/iso
使用您选择的实用程序将最终文件 grub.iso 刻录到 CD 上。不要将 ISO 映像作为数据文件刻录,而要使用刻录实用程序中刻录 CD 映像的选项。
如果将选项 vga= 用作内核参数,则会在第一个控制台上显示图形 SUSE 屏幕。如果您使用 YaST 进行安装,则将依照所选的分辨率和图形卡自动激活此选项。可以根据需要通过三种方法禁用 SUSE 屏幕:
value
在命令行上输入命令 echo 0 >/proc/splash 以禁用图形屏幕。要将其再次激活,请输入 echo 1 >/proc/splash。
将内核参数 splash=0 添加到您的引导加载程序配置中。第 10 章 引导加载程序 GRUB 提供了有关此内容的详细信息。但是,如果您倾向于使用文本方式(这是早期版本中的默认方式),请设置 vga=normal。
编译新内核并禁用中的选项。在内核中禁用帧缓冲区支持也会自动禁用启动屏幕。
![]() | 无支持 |
|---|---|
如果使用自定义内核运行 SUSE,则它不能为系统提供任何支持。 | |
本节列出使用 GRUB 进行引导的一些常见问题并提供可能解决方案的简短描述。在位于支持数据库 http://support.novell.com/ 的文章中介绍了其中一些问题。用搜索对话框搜索 GRUB、boot 和引导加载程序之类的关键字。
XFS 未在分区引导块中为 stage1 预留任何空间。因此,不要指定 XFS 分区作为引导加载程序的位置。此问题可以通过创建单独的引导分区(不使用 XFS 进行格式化)得到解决。
当引导系统时,GRUB 将检查连接的硬盘的磁盘空间。有时,BIOS 将返回不一致的信息,GRUB 将报告 GRUB Geom 错误。在此情况下,请更新 BIOS。
如果将 Linux 安装在未在 BIOS 中注册的其他硬盘上,GRUB 也会返回此错误消息。找到并正确装载了引导加载程序的 stage1,但未找到 stage2。可以通过在 BIOS 中注册新硬盘解决此问题。
安装时,YaST 可能没有正确确定硬盘的引导顺序。例如,GRUB 可能将 PATA (IDE) 磁盘视为 hd0,将 SCSI 磁盘视为 hd1,尽管 BIOS 中的引导顺序是相反的(SCSI 先于 PATA)。
在这种情况下,在引导进程中借助 GRUB 命令行对硬盘进行更正。在引导系统后,编辑 device.map 永久应用新映射。然后,检查 /boot/grub/menu.lst 和 /boot/grub/device.map 文件中的 GRUB 设备名,并使用以下命令重安装引导加载程序:
grub --batch < /etc/grub.conf
某些操作系统(例如 Windows)只能从第一块硬盘进行引导。如果这样的操作系统安装在第一块硬盘之外的硬盘上,您可以影响相应菜单项的逻辑更改。
... title windows map (hd0) (hd1) map (hd1) (hd0) chainloader(hd1,0)+1 ...
在此示例中,将从第二块硬盘启动 Windows。出于此目的,请使用 map 更改硬盘的逻辑顺序。此更改不会影响 GRUB 菜单文件中的逻辑。因此,必须为 chainloader 指定第二块硬盘。
有关 GRUB 的大量信息可以在 http://www.gnu.org/software/grub/ 处获得。还请参见 grub 信息页面。您也可以在位于 http://www.novell.com/support 的支持数据库中搜索关键字“GRUB”获得有关特殊问题的信息。