2.2. 安装和引导


本部分介绍了在 Red Hat Enterprise Linux 6 和 Red Hat Enterprise Linux 7 之间对安装工具和进程所做的更改。

2.2.1. 新的 Boot Loader

Red Hat Enterprise Linux 7 引进了 GRUB2 引导装载程序(boot loader),它在 Red Hat Enterprise Linux 7.0 及之后的版本中替换了旧的 GRUB。和之前的版本相比,GRUB2 支持更多的文件系统和虚拟块设备。它会自动扫描并配置可用操作系统。用户界面也有改进,用户可以选择跳过引导装载程序安装。

但是,迁移到 GRUB2 后,将不支持将引导装载程序安装到带有 MBR 风格的分区表的 BIOS 机器中的格式化分区。进行这个变化的原因是,有些文件系统具有自动优化功能,这些功能可移动核心引导装载程序镜像的部分,这可能会破坏以前版本的 GRUB 的引导装载程序。使用 GRUB2 时,启动加载器在分区表和带有 MBR(主引导记录)风格的分区表的 BIOS 机器上的第一个分区中安装。带有 GPT(GUID 分区表)样式的分区表的 BIOS 机器必须为引导装载程序创建特殊的 BIOS 引导分区。UEFI 机器将继续在 EFI 系统分区安装引导装载程序。

对于新的引导装载程序,推荐的最小分区大小也会改变。表 2.1 “推荐的最小分区大小” 提供新建议的摘要。如需更多信息,请参阅 MBR 和 GPT 注意事项

Expand
表 2.1. 推荐的最小分区大小
分区BIOS 和 MBRBIOS 和 GPTUEFI 和 GPT

/boot

500 MB

/

10 GB

swap

至少 RAM 的两倍。详情请查看 推荐 的分区方案。

引导装载程序

不适用(在分区表和第一个分区间安装)

用户可以使用 force 选项手动将 GRUB2 安装到格式化的分区中,从而造成文件系统损坏的风险,也可以使用其它引导装载程序。有关替代引导装载程序的列表,请参阅 安装指南

如果您有一个双引导系统,使用 GRUB2 的操作系统检测来自动写入可引导操作系统的配置文件:

# grub2-mkconfig -o /boot/grub2/grub.cfg
Copy to Clipboard Toggle word wrap
重要

请注意,如果您有一个基于使用 UEFI 的双引导系统,则会使用与传统的 MBR 所基于的不同的其他机制。这意味着,您不需要使用特定于 EFI 的 grub2 命令:

# grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg

2.2.1.1. 用于调试的默认引导条目

systemd 的默认引导条目已添加到 /etc/grub.cfg 文件中。现在,不再需要手动启用调试。默认引导条目允许您在引导时在不影响选项的情况下调试系统。

2.2.2. 新的 Init 系统

Systemd 是系统和服务管理程序,它替换在以前的 Red Hat Enterprise Linux 版本中使用的 SysV init。

systemd 是在引导过程中启动的第一个进程,在关闭时终止的最后一个过程。它协调引导过程的剩余部分并为用户配置系统。在 systemd 下,相互依赖的程序可以并行加载,从而加快了引导过程的速度。

在用户体验和脚本 API 方面,Systemd 与 SysV 基本兼容。然而,有一些例外情况存在。详情请查看 第 2.2.2.1 节 “后向兼容性”

移动到 systemd 还涉及更改 Red Hat Enterprise Linux 的管理工具。详情请查看 systemctl man page 或 System Administrator 的指南

有关引导过程的详情,请查看 安装指南。有关 systemd 的详情,请查看 系统管理员指南

2.2.2.1. 后向兼容性

在用户体验和脚本 API 方面,Systemd 与 SysV 基本兼容。然而,在有些情况下兼容性会有一些限制。

  • 标准 /etc/init.d/servicename 命令(启动停止状态)仍然可以工作。但是,红帽建议 /usr/sbin/service servicename 命令,因为它们直接转发到 systemd,而不是使用旧的初始化脚本。
  • 运行级别支持有限。所有 SysV 运行级别都映射到 systemd 目标(target),但不是所有的 systemd 目标都映射到 SysV 运行级别。因此,对当前运行级别进行的一些检查将返回 N (未知运行级别)。红帽建议避免运行级别检查,而是推荐使用 systemd 目标。
  • 旧的运行级别 2、3 和 4 都默认映射到 multi-user.target systemd 目标。用户可以通过配置不同的 systemd 目标来修改此行为。
  • 服务会以“干净”的形式执行,且不会继承调用用户的任何上下文。依赖于继承上下文的初始化脚本将无法正常工作。
  • systemd 不支持 init 脚本中的附加操作动词。如果您需要 启动停止status 以外的操作动词,请将其移动到辅助脚本。
  • 现在 systemd 在运行时会完全解析并使用 Linux Standard Base 标头信息。
  • 现在,所有初始化脚本操作都会有 5 分钟的超时时间,以防止因为 init 脚步出现挂起情况而导致系统停机。
  • systemd 只停止正在运行的服务 ; 没有启动的服务也不会在关闭过程中停止。
  • chkconfig 工具只显示 SysV 服务和运行级别信息,并可能会输出误导信息。红帽建议使用 systemctl 命令替代它。
  • 在启用 CPUAccounting 选项时,SysV 服务(即使具有 root 权限的服务)也无法获得实时调度。为任何服务启用 CPUAccounting 后,systemd 会在全局范围内使用 CGroup CPU 带宽控制器,后续的 sched_setscheduler() 系统调用会因为实时调度优先级意外终止。要避免出现这个错误,可以使用 service 为实时 CPU.rt_runtime_us 选项设置 CGroup cpu.rt_runtime_us 选项。
  • 服务无法从标准输入(stdin)读取。如果您需要交互式脚本,请考虑 systemd 支持的最小密码查询框架。有关这个功能的更多信息,请参阅 man page:

    $ man systemd-ask-password
    Copy to Clipboard Toggle word wrap
  • 以前的 Red Hat Enterprise Linux 版本包括一个特定于 System z 的预安装脚本(linuxrc.s390),它在引导时启动 System z 系统。新的 init 系统已过时了这个安装脚本,System z 系统现在以与 AMD64、Intel 64 和 Power 系统相同的方式引导。

2.2.2.2. systemd-debug-generator

systemd-debug-generator 是一个生成器,用于启用一个运行时的 debug shell,并在引导时屏蔽(mask)特定单元。它读取内核命令行并接受以下三个选项:

systemd.mask=
如果指定了这个选项,并跟一个单元名称,则会在运行时屏蔽这个单元。为了调试系统的启动,在引导时可以从初始引导事务中的删除特定单元是非常有用的。这个选项可以多次指定。
systemd.wants=
如果指定了这个选项,并跟一个单元名称,则会在初始事务中为这个单元添加一个启动作业。如果您需要在引导时启动一个或多个额外的单元,这个选项非常有用。这个选项可以多次指定。
systemd.debug_shell
如果指定了这个选项,则 debug-shell.service 会拉取到引导事务中。它将在早期系统启动过程中在 tty9 上生成一个调试 shell。请注意,shell 也可以使用 systemctl enable 命令永久打开。

2.2.2.3. 新的安装程序

为了改进 Red Hat Enterprise Linux 7 的安装过程,Red Hat Enterprise Linux 安装程序 Anaconda 已被重新设计并增强。

更新的安装程序特性:

  • 重新设计的图形用户界面,它更快、更灵活,减少了对用户输入的需要。
  • 支持 LVM 精简置备。
  • btrfs 的安装支持。(请注意,在 Red Hat Enterprise Linux 7 中,btrfs 只是一个技术预览。)
  • 改进了本地化支持。
  • 支持直接格式化的设备,而非分区的设备。
  • 支持合作和绑定网络技术。
  • 支持自动选择适当的键盘布局、语言和时区。(这需要互联网连接。)这些基于自动检测的值都会可以被手动设置的值覆盖。
  • 现在,会自动使用由 DHCP 公告的 NTP 服务器。
  • realmd D-Bus 服务、Active Directory 和 FreeIPA 的 Kickstart 集成。
  • 一个新的文本模式,适用于 IBM System z 和 PowerPC 系统,以及串口控制台。文本模式提供了图形安装程序提供的功能的一个子集。

这个新安装程序也有一些重要的更改。

  • 在以前的版本中,存储配置要求用户对存储系统进行详细技术知识。在 Red Hat Enterprise Linux 7 中,存储配置已被重新设计,用户只需要输入较少的信息来配置存储。
  • Anaconda 现在使用 inst.repo 参数设置网络和其它安装位置,而不是使用 inst.root 参数。
  • 图形化安装程序界面中的详细软件包选择已被 Software Selection 屏幕替代。软件被分成多个 环境,并且是 Addons 中。用户可以选择一个环境,以及任意数量的附加组件。Kickstart 安装将继续完全控制安装时选择的软件包。

有关这些功能的详情,请参考 安装指南

2.2.2.4. 引导参数的变化

2.2.2.4.1. 指定引导参数

特定于安装程序的引导选项使用前缀 inst。 在本指南中。目前,这个前缀在 Red Hat Enterprise Linux 7 中是可选的: resolution=1024x768inst.resolution=1024x768 完全相同。但是,在以后的发行版本中这个前缀预期会成为是必需的,没有这个前缀的参数将被视为弃用。

2.2.2.4.2. 引导参数的变化

新的安装程序使用 dracut 配置磁盘和网络。因此,一些内核命令行引导参数在 Red Hat Enterprise Linux 6 和 Red Hat Enterprise Linux 7 之间有所变化。

新参数

inst.stage2
指定要载入的安装程序运行时镜像的位置。其语法与 inst.repo 参数的语法相同。这个选项会忽略除镜像外的所有内容。它不能被用来指定软件包的位置。
inst.dd
使用指定位置中的软件包更新驱动程序软件包。这个选项可多次使用。位置语法与 inst.repo 参数的位置语法相同。
inst.geoloc

在安装程序中配置地理位置,以预设置语言和时区。默认值为 provider_fedora_geoip。此参数的有效值包括以下内容。

Expand
表 2.2. 地理位置值
效果

0

禁用地理位置。

provider_fedora_geoip

使用 Fedora GeoIP API。

provider_hostip

使用 Hostip.info GeoIP API。

inst.usefbx
指定应使用帧缓冲 X 驱动程序而不是硬件特定驱动程序。这个选项等同于 inst.xdriver=fbdev
bootdev
指定引导接口。如果多次指定 ip,则这个选项是必须的。
inst.multilib
为 multilib 软件包配置系统,例如允许在 64 位系统中安装 32 位软件包。
gpt
将分区信息安装到 GUID 分区表(GPT)而不是主引导记录(MBR)。
inst.virtiolog
指定用于转发日志的 virtio 端口。默认值为 org.fedoraproject.anaconda.log.0。如果存在这个端口,则会使用它。
rd.dasd
使用一个 Direct Access Storage Device(DASD)适配器设备总线标识符,并可选择使用逗号分开的 sysfs 参数和值对。激活带有指定设备总线 ID 的 DASD,并将上述 sysfs 参数设置为指定的值。例如: rd.dasd=adaptor_id,readonly=0。可多次指定这个参数激活多个 DASD。
rd.zfcp

使用 SCSI over FCP(zFCP)adaptor 设备总线标识符、世界范围内的端口名称(WWPN)和 FCP LUN。激活带有指定设备总线标识符、端口名称和 LUN 的 zFCP 设备。可多次指定这个参数激活多个 zFCP 设备。

rd.zfcp=0.0.4000,0x5005076300C213e9,0x5022000000000000
Copy to Clipboard Toggle word wrap
rd.znet

采用网络协议类型、以逗号分隔的子通道列表,并可选择使用逗号分开的 sysfs 参数和值对。激活指定协议的 System z 网络设备驱动程序,设置指定的子频道,并设置指定的参数。可多次指定这个参数激活多个网络设备。

rd.znet=qeth,0.0.0600,0.0.0601,0.0.0602,layer2=1,portname=foo
rd.znet=ctc,0.0.0600,0.0.0601,protocol=bar
Copy to Clipboard Toggle word wrap

更改的参数

inst.ks.sendmac
之前 kssendmac.为外向的 HTTP 请求添加标头,包括所有网络接口的 MAC 地址。这在使用 inst.ks=http 置备系统时非常有用。
name server
之前 dns。指定名称服务器的地址。这个选项可多次使用。

弃用的参数

此列表中的选项已弃用。它们仍可正常工作,但存在其它选项可以提供相同的功能。不建议使用弃用的选项,它们将会在以后的版本中被删除。

updates
指定安装程序的更新位置。使用 inst.updates 选项。
method
配置的安装方法。使用 inst.repo= 选项替代。
repo
在 NFS 安装中,指定目标是一个位于 NFS 服务器中的 ISO 镜像,而不是一个可安装的树。现在会自动探测到不同不同,使这个选项与 inst.repo=nfs:server:/path 相同。
dns
配置域名服务器(DNS)。改为使用 nameserver= 选项。
netmask, gateway, hostname, ip, ipv6
这些选项已合并到 ip 选项下。
ip=bootif
指定从 PXE 服务器安装时使用的 BOOTIF 选项。现在会自动探测。
ksdevice

配置的在 Kickstart 安装过程中使用的网络设备。如下表所示,这个参数的不同值已被替换为不同的参数。

Expand
表 2.3. Kickstart 参数值
当前行为

不存在

尝试激活所有使用 DHCP 的设备,除非使用 ipBOOTIF 选项指定了设备和配置。

ksdevice=link

忽略(这与默认行为相同)。

ksdevice=bootif

忽略(如果指定,则使用BOOTIF )。

ksdevice=ibft

使用 dracut 选项 ip=ibft 替换。

ksdevice=MAC

使用 BOOTIF=MAC 替换。

ksdevice=device

使用 dracut ip 选项中的设备规格替换。

blacklist

用于禁用指定的驱动程序。现在,它由 rd.driver.blacklist dracut 选项处理,语法如下:

rd.driver.blacklist=mod1,mod2,...
Copy to Clipboard Toggle word wrap
nofirewire

禁用了对 FireWire 接口的支持。您可以使用 rd.driver.blacklist 选项禁用 FireWire 驱动程序(firewire_ohci):

rd.driver.blacklist=firewire_ohci
Copy to Clipboard Toggle word wrap

删除的参数

删除了以下选项。存在于之前的 Red Hat Enterprise Linux 版本中,但现在无法再使用它们。

serial
这个选项强制 Anaconda 使用 /dev/ttyS0 控制台作为输出。使用 console 参数指定 /dev/ttyS0 控制台(或类似控制台)。
essid, wepkey, wpakey
配置的无线网络访问。网络配置现在由 dracut 处理,它不支持无线网络,从而使这些选项没有用。
ethtool
过去用于配置其他低级网络设置。现在,所有网络设置都由 ip 选项处理。
gdb
允许调试加载程序。使用 rd.debug 替代。
inst.mediacheck
在开始安装前验证安装介质。使用 rd.live.check 选项替换。
ks=floppy
指定一个 diskette 作为 Kickstart 文件源。floppy 驱动器不再是受支持的引导介质。
display
配置的远程显示。使用 inst.vnc 选项替换。
utf8
添加了在使用文本模式安装时对 UTF8 的支持。UTF8 支持现在可以自动正常工作。
noipv6
在安装程序中禁用了 IPv6 支持。IPv6 现在内置在内核中,因此该驱动程序无法列入黑名单,但可以使用 ipv6.disable dracut 选项禁用 IPv6。
upgradeany
Red Hat Enterprise Linux 7 中的升级变化。如需更多信息,请参阅 第 1 章 如何升级第 3.1.1 节 “Preupgrade Assistant”第 3.1.2 节 “Red Hat Upgrade Tool”
vlanid
配置 VLAN 设备。使用 dracut vlan 选项替换。

2.2.3. 对首次启动实现的更改

在 Red Hat Enterprise Linux 7 中,firstboot 被替换为 Initial Setup 工具( initial-setup), 以便与新安装程序更好地互操作。基本的 firstboot 功能已移到安装程序和 initial-setup 中。

firstboot 编写的第三方模块在 Red Hat Enterprise Linux 7 中可以继续工作。但是,在以后的版本中,firstboot 将会被弃用。因此,第三方模块的维护者应考虑更新其模块以使用安装程序或 Initial Setup 工具。

2.2.4. 更改了引导时的挂载行为

早期版本的 Red Hat Enterprise Linux 会引导,无论 /etc/fstab 中指定的所有分区都可以挂载。这可能会出现系统显示为上线并处于健康状态,但引导时没有需要的分区。

要防止这种情况,在 Red Hat Enterprise Linux 7 中,如果 /etc/fstab 中定义的分区无法在引导时挂载,引导会失败。如果分区在无法挂载时不应该导致引导失败,请在 /etc/fstab 中使用新的 nofail 参数。

/dev/critical   /critical  xfs  defaults     1 2
/dev/optional   /optional  xfs  defaults,nofail  1 2
Copy to Clipboard Toggle word wrap

在这个示例中,挂载到 /optional 的设备如果无法成功挂载,则不会导致引导失败。

2.2.5. 对 /etc/issue 文件的更改

在之前的 Red Hat Enterprise Linux 版本中,/etc/issue 文件包含产品名称和机器的发行号。从 Red Hat Enterprise Linux 7 开始,产品名称和发行号已移到 /etc/os-release 文件中,/etc/issue 的第一行现在包含一个 agetty 转义代码 \S\S 转义代码在显示产品名称和机器的发行号的控制台中展开。代码由 PRETTY_NAME 变量表示,该变量在 /etc/os-release 文件中定义。

重要

\S 转义代码的扩展仅适用于控制台。在不支持的环境中使用扩展时,将只打印"\S"。

有关 \S 的详情请参考 agetty man page。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat