2.2. 安装和引导

本小节总结了 Red Hat Enterprise Linux 6 和 Red Hat Enterprise Linux 7 安装工具和过程的变化。

2.2.1. Anaconda

  • 已将 Anaconda 恢复至版本 anaconda-21.48.22.31-1.el7。这个版本包括大量 bug 修复和新功能。
  • Bug 修复
  • 值得关注的变化
    • https://bugzilla.redhat.com/show_bug.cgi?id=1164660 [RFE] 为在 Anaconda kickstart 中使用添加“创建所需分区”。
    • https://bugzilla.redhat.com/show_bug.cgi?id=1120421 [RFE] 添加对配置缓存逻辑卷的支持
    • https://bugzilla.redhat.com/show_bug.cgi?id=1169991 RFE: 安装程序环境中的 enable spice-vdagent
    • [RFE] LDL 底层格式化磁盘的 Anaconda 警告。
    • https://bugzilla.redhat.com/show_bug.cgi?id=1170656 [RFE] 对 LDL 底层格式化磁盘进行 CDL 格式化的 Anaconda 动作。
    • https://bugzilla.redhat.com/show_bug.cgi?id=1207747 [RHEL7 RFE] 使用 kexec 在 RHEL 安装过程中重启。
    • https://bugzilla.redhat.com/show_bug.cgi?id=1217110 [RFE] 包括使用自定义选项创建 xfs 的 mkfsoptions 。
    • https://bugzilla.redhat.com/show_bug.cgi?id=1057271 [FEAT RHEL7.1]: RFE: 支持 anaconda 自动使用 LABEL=OEMDRV 提供 ks.cfg。
    • https://bugzilla.redhat.com/show_bug.cgi?id=1190685 在 RHEL 7 中请求 oscap-anaconda。

2.2.2. 新引导装载程序

Red Hat Enterprise Linux 7 采用 GRUB2 引导装载程序,它在 Red Hat Enterprise Linux 7 和以后的版本中替代了传统的 GRUB。GRUB2 比其前任支持更多文件系统以及虚拟块设备。它可以自动扫描并配置可用操作系统。同时改进了用户界面,且用户可以选择跳过引导追踪程序安装。
但使用 GRUB2 的同时也取消了对在使用 MBR 类型分区表的 BIOS 机器的格式化分区中安装引导追踪程序。这个行为改变是因为有些文件系统有自动的优化功能,这些功能会移动核心引导装载程序映象的一部分,从而破坏 GRUB 传统引导装载程序。使用 GRUB2 时,是将引导装载程序安装在分区表和使用 MBR 类型分区表的 BIOS 机器首个分区之间的可用空间中。使用 GPT 类型分区表的 BIOS 机器必须为该引导装载程序创建一个特殊 BIOS 引导分区。UEFI 机器会继续在 EFI 系统分区中安装引导装载程序。
由于使用新的引导装载程序,建议的最小分区大小也会有变化。表 2.1 “建议最小分区大小” 中给出了新建议概述。详情请参考 《Red Hat Enterprise Linux 7 安装指南》《6.10.1.1 MBR 和 GPT 注意事项》

表 2.1. 建议最小分区大小

分区BIOS & MBRBIOS & GPTUEFI & GPT
/boot500 MB
/10 GB
swap至少是 RAM 的两倍。详情请查看《Red Hat Enterprise Linux 7 安装指南》中的《6.10.4.5. 建议分区方案》
引导装载程序无(在分区表和首个分区之间安装)1 MB(BIOS Boot 分区)200 MB(EFI 系统分区)
用户可以手动使用 force 选项将 GRUB2 安装到分区中,或者使用备用的引导装载程序,但前者有可能破坏文件系统。有关备用引导装载程序列表请参考《Red Hat Enterprise Linux 7 安装指南》,网址 http://access.redhat.com/site/documentation/Red_Hat_Enterprise_Linux/
如果您使用的是双引导系统,请使用 GRUB 的操作系统探测自动写入可引导任意一个操作系统的配置文件。
# grub2-mkconfig -o /boot/grub2/grub.cfg

2.2.3. 新的 Init 系统

systemd 是一个系统和服务管理器,它替换了 Red Hat Enterprise Linux 以前的版本中使用的 SysV init 系统。
systemd 是在引导过程中第一个启动的进程,也是在关闭过程中最后一个停止的进程。它会协调余下的引导过程,并为用户配置该系统。在 systemd 中会平行载入互相依赖的程序,以便显著加快引导过程。
从用户体验及脚本 API 的角度来看,systemd 与 SysV 在很大程度上兼容。但也存在一些意外情况。详情请查看 第 2.2.3.1 节 “向后兼容性”
使用 systemd 还将涉及 Red Hat Enterprise Linux 管理工具的变化。详情请查看 systemctl man page 或者《Red Hat Enterprise Linux 7 系统管理员指南》
有关引导过程的详情请查看《Red Hat Enterprise Linux 7 安装指南》。有关 systemd 的详情请参考《Red Hat Enterprise Linux 7 系统管理员指南》。两本手册的网址均为 http://access.redhat.com/site/documentation/Red_Hat_Enterprise_Linux/

2.2.3.1. 向后兼容性

systemd 的设计旨在就用户体验以及脚本 API 方面与 SysV 兼容。但在有些情况下仍有兼容性限制。
  • 标准 /etc/init.d/servicename 命令(start, stop, status)仍可使用。但 Red Hat 推荐使用 /usr/sbin/serviceservicename 命令,因为可将其直接转到 systemd,而不是使用传统的 init 脚本。
  • 运行级别支持将受到限制。所有 SysV 运行级别都与 systemd 目标映射,但不是所有 systemd 目标都与 SysV 运行级别映射。因此当前运行级别中的一些检查将返回 N(位置运行级别)。Red Hat 建议避免使用运行级别检查,同时使用更有效的 systemd 目标。
  • 传统运行级别 2、3 和 4 都默认与 multi-user.target systemd 目标映射。用户可通过配置不同的 systemd 目标修改这一行为。
  • 服务执行简洁,不会遗留调用服务用户的任何上下文。将无法使用依赖继承的上下文的 Init 脚本。
  • systemd 不支持 init 脚本中的附加动作。如果您要求使用 start, stop 或者 status 以外的动作,请将其移动到辅助脚本中。
  • 目前 systemd 可在运行时完全解析并采用 Linux 标准规范标头信息。
  • 目前所有 init 脚本都采用 5 分钟超时规定以防止系统因 init 脚本停滞而当机。
  • systemd 只能停止运行中的服务;未启动的服务也不会在关机时停止。
  • chkconfig 工具只显示 SysV 服务及运行级别信息,并可能给出一些误导信息。Red Hat 建议您使用 systemctll 命令。
  • SysV 服务,即使有 root 特权,也不再允许获取实时调度。
  • 服务不再能从 stdin 中读取信息。如果您需要互动脚本,请考虑 systemd 支持的需要最少密码的框架。有关此功能的详情请参考其 man page:
    $ man systemd-ask-password
  • Red Hat Enterprise Linux 以前的版本中包含 System z 的预安装脚本(linuxrc.s390),它可在引导时启动 System z 系统。新的 init 系统废弃了这个预安装脚本,同时 System z 目前使用与 AMD64、Intel® 64 以及 Power systems 相同的方法引导。

2.2.4. 新的安装程序

已对 Red Hat ;Enterprise Linux 安装程序 Anaconda 进行了重新设计和强化以便改进 Red Hat Enterprise Linux 7 的安装进程。
更新后的安装程序功能:
  • 重新设计的图形用户界面更迅速,更灵活,同时需要更少的用户输入。
  • 支持 LVM 自动精简配置(thin provisioning)。
  • 安装支持 btrfs。(注:btrfs 是 Red Hat Enterprise Linux 7 中的技术预览。)
  • 改进的本地化支持。
  • 支持直接格式化的以及未分区的设备。
  • 支持分组及捆绑网络技术。
  • 支持自动选择适当的键盘布局、语言和时区。(这需要互联网连接。)根据探测进行的数值设置可被手动设置的数值覆盖。
  • 现在可自动使用由 DHCP 推荐的 NTP 服务器。
  • realmd DBus 服务、Active Directory 以及 FreeIPA 整合 kickstart。
  • 可在 IBM System z 和 PowerPC 系统以及串口控制台中使用的新文本模式。文本模式提供由图形安装程序提供的功能子集。
这个新的安装程序还有一些重要变化。
  • 之前,存储配置要求用户对其存储系统在技术上有深入的了解。在 Red Hat Enterprise Linux 7 中重新设计了存储配置,这样用户只需要输入极少的细节即可配置存储。
  • Anaconda 现在使用 inst.repo 参数而不是 inst.root 参数设置网络和其他安装位置。
  • 已使用软件选择页面替换了图形安装程序界面中的详细软件包选择。软件被分为环境附加组件。用户可挑选一个环境以及他们想要使用的附加组件。Kickstart 安装仍可在安装的时候对所有软件包进行选择。
有关这些功能的详情请查看《Red Hat Enterprise Linux 7 安装指南》网址 http://access.redhat.com/site/documentation/Red_Hat_Enterprise_Linux/

2.2.4.1. 引导参数变化

2.2.4.1.1. 指定引导参数
本指南中具体到安装程序的引导参数都使用 inst. 作为前缀。目前这个前缀在 Red Hat Enterprise Linux 7 中是可选的:resolution=1024x768inst.resolution=1024x768 的效果完全相同。但这个前缀将在未来的发行本中强制使用,同时没有前缀的参数将被视为弃用。
2.2.4.1.2. 引导参数的变化
新的安装程序使用 dracut 配置磁盘和网络。这样在 Red Hat Enterprise Linux 6 和 Red Hat Enterprise Linux 7 之间有些内核命令行参数发生了变化。
2.2.4.1.2.1. 新参数
inst.stage2
指定要载入的安装程序运行时图像位置。其语法与 inst.repo 参数语法相同。这个选项只适用于图像,不能用来指定软件包的位置。
inst.dd
在指定位置更新附带软件包的驱动程序软件包。这个选项可多次使用。位置语法与 inst.repo 参数中的位置语法相同。
inst.geoloc
在安装程序中配置定位用法以便预先设定语言和时区。默认值为 provider_fedora_geoip。其他有效值如下:

表 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 替换 FCP(zFCP)适配器设备总线标识符、全球端口名称(WWPN)以及 FCP LUN。使用指定设备总线标识符、端口名以及 LUN 激活 zFCP。可多次指定这个参数激活多个 zFCP 设备。
rd.zfcp=0.0.4000,0x5005076300C213e9,0x5022000000000000
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
2.2.4.1.2.2. 更改的参数
inst.ks.sendmac
以前是 kssendmac。在外出 HTTP 请求中添加标头,其中包括所有网络接口的 MAC 地址。这在使用 inst.ks=http 提供系统时很有帮助。
nameserver
之前的 dns。指定名称服务器地址。这个选项可多次使用。
2.2.4.1.2.3. 弃用的参数
这个列表中的选项已启用。它们仍可以使用,但有其他可提供同样功能的选项。不建议您使用弃用的选项,且这些选项将在今后的发行本中删除。
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
指定 BOOTIF 选项,这些选项在使用 PXE 服务器安装时使用。现在可以自动探测。
ksdevice
要在 Kickstart 安装过程中使用的已配置的网络。已使用下表中的不同参数替换这个参数的不同值。

表 2.3. kickstart 参数值

目前行为
未提供
尝试使用 DHCP 激活所有设备,除非使用 ip 或者 BOOTIF 选项指定某个设备和配置。
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,...
nofirewire
禁用 FireWire 接口支持。您可以使用 rd.driver.blacklist 选项禁用 FireWire 驱动程序(firewire_ohci):
rd.driver.blacklist=firewire_ohci
2.2.4.1.2.4. 已删除参数
已删除下列选项。Red Hat Enterprise Linux 之前的版本中有这些选项,但不再使用。
serial
这个选项强制 Anaconda 使用 /dev/ttyS0 控制台作为输出。现使用 console 参数指定 /dev/ttyS0(或者类似功能)。
essid, wepkey, wpakey
配置的无线网络访问。现已使用 dracut 处理网络配置,但它不支持无线网络,从而让这些选项毫无意义。
ethtool
之前用来配置附加低层网络设置。所有网络设置现已使用 ip 选项处理。
gdb
允许您 debug 装载程序。使用 rd.debug 替换。
inst.mediacheck
开始安装前确认安装介质。使用 rd.live.check 替换。
ks=floppy
指定软驱作为 Kickstart 文件源。现已不再支持软盘作为引导介质。
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.5. firstboot 实施的变化

Red Hat Enterprise Linux 7 使用 initial-setup 程序替换 firstboot,该程序与新安装程序有更好的互操作性。基本 firstboot 功能已移入安装程序和 initial-setup
firstboot 编写的第三方模块仍可在 Red Hat Enterprise Linux 7 中使用。但会在将来的发行本中弃用 firstboot。因此,第三方模块的维护人员应考虑将其模块升级为使用该安装程序或初始化设置(Initial Setup)工具。

2.2.6. 引导时挂载行为的变化

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
在这个示例中,挂载到 /optional 的设备不会造成引导失败,即使无法成功挂载它们。

为了尽快向用户提供最新的信息,本文档可能会包括由机器自动从英文原文翻译的内容。如需更多信息,请参阅此说明。