第 35 章 安装和引导

在 Kickstart 文件中指定 %packages --nobase --nocore 后安装会失败并给出 traceback

使用包含 %packages 部分的 Kickstart 文件,同时指定 --nobase--nocore 会因缺少 yum-langpacks 软件包造成安装失败,并给出 traceback 信息。
要解决这个问题,请在您的 Kickstart 文件中使用 %packages --nobase --nocore 时在 %packages 部分添加 yum-langpacks 软件包。

如果在 Kickstart 中指定的 root 密码不满足密码策略要求,则不会执行安装。

如果使用定义了 root 密码的 Kickstart 文件,但该密码不满足安全策略中所选安全政策的要求,则无法完成安装。此时 开始安装 按钮会变灰,且在按下这个按钮前不可能更改 root 密码。
要临时解决这个问题,请确定您的 Kickstart 文件使用足够强大的密码,以便其可以满足所选安全成为了中定义的要求。

救援模式无法在 Btrfs 探测和挂载 root 卷

这个安装程序救援模式(从安装介质引导菜单或使用 inst.rescue 引导选项访问)无法探测到在 Btrfs 子卷中放置了 /(root)目录的现有系统。反之,会有一条出错信息,显示 'You don't have any linux partitions.'。
要临时解决这个问题,请进入 shell 并手动挂载 root 卷。

会在初始设置(Initial Setup)中显示错误的窗口标题

在首次后安装重启后会自动显示 Initial Setup 工具,这样可让您配置设置,比如网络连接及注册您的系统,在窗口标题中显示 __main__.py
这是一个外观问题,对可用性没有任何负面影响。

在 IBM System z 的 FBA DASD 中重新安装会造成安装程序崩溃

在有固定块架构(FBA)DASD 的 IBM System z 中重新安装 Red Hat Enterprise Linux 7 时,安装程序会因不全面支持这些设备而崩溃。
要临时解决这个问题,请将 FBA DASD 放入设备忽略清单中,以确认在安装过程中不会出现它们。请在启动安装程序前完成此操作。在 root shell 提示符后,使用 chccwdev 命令,后接 cio_ignore 命令手动让设备离线,然后将其添加到设备忽略列表中。
另外,还可将 FBA DASD 设备 ID 从 CMS 配置文件或参数文件中删除,并在开始安装前使用这些命令。

在 IBM System z 中完成安装后 HyperPAV 别名不可用

已知有一个问题会防止将 DASD 配置为在安装完成后自动将 HyperPAV 别名附加到系统中。在安装的过程中会在安装目标页面中看到这些存储设备,但完成安装并重启后不能立即使用这些设备。
要临时解决这个问题(到下一次重启前),请使用 chccwdev 命令从设备黑名单中删除这些设备:
# chccwdev -e <devnumber>
要让 HyperPAV 别名在重启后仍可用,请将其设备号添加到 /etc/dasd.conf 配置文件中。
请使用 lsdasd 命令验证这些设备已可用。

在 IBM System z 中生成的 anaconda-ks.cfg 文件不能用于重新安装该系统

anaconda-ks.cfg 是在安装过程中生成的 Kickstart 文件,该文件包含在安装过程选择的所有内容,在 IBM System z DASD 中使用小数值数代表磁盘大小。这是由于 DASD 报告 4KiB 对齐,从而造成计算的磁盘大小与子 Kickstart 文件中记录的大小不符,因为只接受整数。所以无法重新使用生成的 Kickstart 文件复制该安装。
使用 IBM System z 中的 anaconda-ks.cfg 文件重新安装系统则需要您手动将所有小数改为整数。

安装过程中可能出现的 NetworkManager 错误信息

安装该系统时会显示并在日志中记录以下出错信息:
ERR NetworkManager: <error> [devices/nm-device.c:2590] activation_source_schedule(): (eth0): activation stage already scheduled
这个出错信息会造成安装无法完成。

在 InfiniBand Support 软件包组中缺少软件包 libocrdma

InfiniBand Support 组的默认软件包集中不包含 libocrdma。因此,当用户选择 InfiniBand Support 组,并期待在 Emulex OneConnect 适配器中可以使用通过聚合以太网的 RDMA(RDMA over Converged Ethernet,RoCE)时,则不会默认安装所需驱动程序 libocrdma
首次引导时,用户可使用以下命令手动安装缺少的软件包:
# yum install libocrdma
另外,也可以在 Kickstart 文件中的 %packages 部分添加 libocrdma 软件包。
结果是现在用户可在 RoCE 模式下使用 Emulex OneConnect 设备。

如果 /boot 分区大小不足则无法升级系统

如果安装多个内核及附加软件包,比如 kernel-debug,则包含已安装的内核及初始 ram 磁盘的 /boot 会变满。这是因为在安装过程中将这个分区默认设定为 500MB,并妨碍系统升级。
作为临时解决方案,如果不需要它们,则请使用 yum 删除旧的内核。如果要安装新系统,则应考虑到这种可能性,并将 /boot 分区设定为较大值(比如 1 GB),而不是默认的(500 MB)。

如果一个或多个磁盘缺少标签则无法在多路径设备中安装

在多路径设备中安装时,如果安装程序无法读取多路径成员中的一个或多个磁盘,则会显示出错对话。这个问题是因一个或多个磁盘缺少标签造成,因为出现这种情况时则无法进行安装。
要临时解决这个问题,请在安装过程中为多路径设备的所有磁盘中常见磁盘标签。

如果在 %pre 脚本中定义主机名则会覆盖 Kickstart 文件中的静态 IPv4 配置

在 Kickstart 文件的 %pre 部分定义主机名后,将只设定主机名( "network --hostname=hn")的 network 命令视为设备配置,使用默认的 --bootproto 值("dhcp")和 --device 值("link",即找到其链接的第一个设备)。然后 Kickstart 会按照使用的 network --hostname=hn --device=link 行动。
如果将视为 --device 选项默认设备(第一个找到链接的设备)配置为使用静态 IPv4 配置(例如:之前的 network 命令),该配置会被 --hostname 选项利用的 IPv4 DHCP 覆盖。
要临时解决这个问题,请确定使用第一个定义主机名的 network 命令,之后使用的第二个 network 命令通常会被覆盖。
如果定义主机名的 network 命令是 Kickstart 文件中的唯一此类命令,则请在非现有接口中使用添加 --device 选项的这个命令(例如:network --hostname=hn --device=x)。

在 Kickstart 中使用 realm 命令会造成安装程序崩溃

这是妨碍在 Kickstart 文件中使用 realm 命令的已知问题。在安装过程中使用这个命令尝试加入 Active Directory 或者 Identity Management 域会造成安装程序崩溃。
要临时解决这个问题,可以等待安装完成后手动加入域,也可以在 Kickstart 文件的 %post 部分添加 realm join <realm name> 命令。有关使用命令行加入域的详情,请查看 realm(8) 手册页。

安装程序的内置帮助程序不会在系统升级时更新

从 Red Hat Enterprise Linux 7.1 升级至版本 7.2 时,Anaconda 安装程序的内置帮助(anaconda-user-help 软件包)不会升级,因为打包方式有很大变化。
要临时解决这个问题,请在执行升级前,使用 yum 删除 anaconda-user-help 软件包,然后再升级到 yum 删除 anaconda-user-help 后再次安装该软件包。

grubby 生成的引导菜单条目排序出错

grubby 是用来修改和更新 GRUB2 引导装载程序配置文件的工具,可在生成引导菜单配置文件时,在该列表的顶部添加 debug boot menu 条目。这些调试菜单可向下压常规条目,同时还会默认突出显示并选择这些调试菜单。

使用多个驱动程序同时更新映象只适用于最后指定的一个

在安装过程中尝试使用 inst.dd=/dd.img 引导选项执行驱动程序更新,且多次指定该选项载入多个驱动程序更新映象时,Anaconda 会忽略所有参数实例,最后一个除外。
要临时解决这个问题,您可以:
* 如可能可在安装后安装附加驱动程序
* 使用备选方法指定驱动程序映象,比如 driverdisk Kickstart 命令
* 将多个驱动程序更新映象合并为一个

探测到 LDL 格式的 DASD 时安装程序会崩溃

无论何时安装程序在 IBM System z 的一个或多个 DASD 中探测到 LDL(Linux 磁盘不符)格式,该程序就会崩溃。这个崩溃是由 libparted 库的竞争条件造成,即使未将这些 DASD 选择为安装目标也会出现这个问题。这个问题没有影响其他架构。
如果在安装过程中使用 LDL DASD,用户应在启动该安装程序前,在 root shlle 提示符后使用 dasdfmt 命令手动将每个 LDL DASD 重新格式化为 CDL(兼容磁盘布局)格式。
如果某个系统中有 LDL DASD,且用户不想在安装时使用它们,则应在安装过程中将该设备放在设备忽略列表中。这个操作应在启动安装程序前完成。在 root shell 提示符后,用户可使用 chccwdev 命令,然后是 cio_ignore 命令手动切换设备离线,然后在将该设备添加到忽略列表中。
另外,也可以删除 CMS 配置文件或参数文件中的所有 LDL DASD 设备 ID,而不是在开始安装前使用这些命令。

升级 kernel 和 redhat-release 软件包后重启时出现内核 panic

在同一 Yum 事务中安装 redhat-release-server-7.2-9.el7kernel 软件包可造成 GRUB2 配置的新内核菜单条目中缺少 initrd 行。随后,当使用最新安装的内核引导时会因缺少 initrd 造成内核 panic。这个问题通常是由使用 yum update 从之前的次要发行本升级至 Red Hat Enterprise Linux 7.2 时造成。
要临时解决这个问题,请确定使用不同的 Yum 事务分别升级 redhat-release-serverkernel 软件包。另外,还可以在 GRUB2 配置文件(在 BIOS 系统中是 /boot/grub2/grub.cfg,在 UEFI 系统中是 /boot/efi/EFI/redhat/grub.cfg)中找到新内核的菜单条目,并手动添加 initrd。
initrd 配置行类似 initrd /initramfs-3.10.0-327.el7.x86_64.img。请确定该文件名称与同一菜单条目中配置的内核(vmlinuz)匹配,该文件位于 /boot 目录中。请使用旧的菜单条目作为参考。

即使已安装图形环境也可以在文本模式中启动 Initial Setup

Initial Setup 程序会在安装完成后及安装的系统首次引导时启动,有时即使在安装了图形环境且应启动 Initial Setup 的图形版本时,也会在文本模式中启动。这是因为同时启用了 Initial Setup 的图形和文本模式服务。
要临时解决这个问题,可在安装过程中使用的 Kickstart 文件中包含 %post 部分,以便禁用不想要使用的 Initial Setup 版本。
要确保在安装后启动 Initial Setup 的图形变体,请使用 %post 部分:
%post
systemctl disable initial-setup-text.service
systemctl enable initial-setup-graphical.service
%end
如果要启用 Initial Setup 的文本模式变体,请切换 enabledisable 命令,以便禁用图形服务,并启用文本模式。

使用 ldconfig.service 删除 /lib//lib64/ 中的非 root 文件系统链接。

Red Hat Enterprise Linux 7.2 引进了 ldconfig.service,它是在引导过程初期,即挂载非 root 文件系统前运行。运行 ldconfig.service 后,对于 /lib//lib64/ 目录中的链接,如果指向未挂载的文件系统就会被删除。要临时解决这个问题,请使用 systemctl mask ldconfig 命令禁用 ldconfig.service,这样就不会再删除这些符号链接,系统也可如预期引导。

更新至 Red Hat Enterprise Linux 7.2 后使用 IPC 的守护进程会意外终止

在 Red Hat Enterprise Linux 7.2 中引进了新功能 systemd:使用用户完成的最后一个会话清除所有分配的进程间通讯(IPC)资源。会话可以是管理 cron 任务,也可以是互动会话。这个行为可造成同一用户使用同样资源运行的守护进程意外终止。要临时解决这个问题,请编辑 /etc/systemd/logind.conf 文件并添加以下行:
RemoveIPC=no
然后执行以下命令以便更改生效:
systemctl restart systemd-logind.service
执行这些步骤后,在上述情况下守护进程就不会再崩溃。