29.2. Anaconda 救援模式

Anaconda 安装程序救援模式是可以使用 Red Hat Enterprise Linux 7 DVD 或者其他引导介质引导的最小 Linux 环境。它包含可用来解决各种问题的命令行工具。可以从安装程序引导菜单的 故障排除 子菜单进入安装程序救援模式。在这个模式中,可以用只读方式挂载文件系统,也可以根本不挂载文件系统;添加驱动程序磁盘提供的驱动程序或者将其列入黑名单;安装或者升级系统软件包;或者管理分区。

注意

Anaconda 救援模式与救援模式(即单用户模式)和紧急模式不同,后者是 systemd 系统和服务管理器的一部分。有关这些模式的详情请查看《Red Hat Enterprise Linux 7 系统管理员指南》
要引导至 Anaconda 救援模式,必须可以使用 Red Hat Enterprise Linux 引导介质引导该系统,比如最小引导磁盘或 USB 驱动器,或者完整安装 DVD。
有关使用红帽提供的介质引导系统的详情,请查看正确的章节:

重要

必须使用 dracut 引导选项(比如 rd.zfcp= 或者 root=iscsi:optionsrd.zfcp= 或者 root=iscsi:options),在 IBM System z 中使用 CMS 配置文件 配置高级存储,比如 iSCSI 或 zFCP 设备。引导至救援模式后则不能以互动方式配置这些存储设备。
有关 dracut 引导选项的详情,请查看 dracut.cmdline(7) 手册页。有关 CMS 配置文件的详情,请查看 第 18 章 IBM System z 中的参数和配置文件

过程 29.2. 引导至 Anaconda 救援模式

  1. 使用最小引导介质或完整安装 DVD 或 USB 驱动器引导该系统,并等待引导菜单出现。
  2. 在引导菜单中从 故障排除 子菜单中选择 救援 Red Hat Enterprise Linux 系统 选项,或者在引导命令行中添加 inst.rescue 选项。在使用 BIOS 的系统中按 Tab 键进入引导命令行,在使用 UEFI 的系统中按 e 键进入命令行。
  3. 如果系统需要驱动程序磁盘提供的第三方驱动程序方可引导,请在引导命令行中添加 inst.dd=driver_name
    inst.rescue inst.dd=driver_name
    有关在引导时使用驱动程序磁盘的详情请查看 第 4.3.3 节 “手动驱动程序更新”(AMD64 and Intel 64 系统),或者 第 9.3.3 节 “手动驱动程序更新”(IBM Power Systems 服务器)。
  4. 如果 Red Hat Enterprise Linux 7 发行本中的某个驱动程序妨碍系统引导,请在引导命令行后附加 modprobe.blacklist= 选项:
    inst.rescue modprobe.blacklist=driver_name
    有关将驱动程序列入黑名单的详情请查看 第 4.3.4 节 “将驱动程序列入黑名单”
  5. 准备好后按 Enter 键(使用 BIOS 的系统)或者 Ctrl+X 组合键(使用 UEFI 的系统)引导修改后的选项。然后等待出现以下信息:
    现在救援模式将尝试查找 Linux 安装程序并将其挂载到 /mnt/sysimage 目录中。然后可以根据系统需要对其进行修改。如果要执行这个操作,请选择 ‘继续’。也可以选择将文件系统并以只读而不是读写的形式挂载,即选择 ‘只读’。如果出于某种原因这个进程失败了,则可以选择 ‘跳过’,这样就会跳过这一步,并直接进入命令行。
    
    如果选择 继续,它会尝试将您的文件系统挂载到 /mnt/sysimage/ 目录中。如果挂载分区失败,会通知您。如果您选择 只读,它会尝试在 /mnt/sysimage/ 目录下挂载文件系统,但是挂载模式为只读。如果您选择 跳过,您的文件系统将不会被挂载。如果您认为您的文件系统已损坏,选择 跳过
  6. 系统进入安装程序救援模式后,会在 VC(虚拟控制台)1 和 VC2 中出现提示符(使用 Ctrl+Alt+F1 组合键访问 VC1,使用 Ctrl+Alt+F2 组合键访问 VC2):
    sh-4.2#
即便已挂载文件系统,Anaconda 救援模式中的默认 root 分区只不过是一个临时的 root 分区,而不是正常用户模式(multi-user.target 或者 graphical.target)中的文件系统 root 分区。如果您选择要挂载文件系统,并且成功挂载,就可以通过执行以下命令将 Anaconda 救援模式的 root 分区变为您文件系统的 root 分区:
sh-4.2# chroot /mnt/sysimage
如果需要运行 rpm 之类的命令,更改 root 分区就会很有用,因为这类命令要求您将 root 分区挂载为 /。要退出 chroot 环境,请输入 exit 返回到提示符。
如果选择 跳过,仍可以尝试在 Anaconda 救援模式中手动挂载分区或者 LVM2 逻辑卷,比如 /directory/,并输入以下命令:
sh-4.2# mount -t xfs /dev/mapper/VolGroup00-LogVol02 /directory
在上述命令中,/directory/ 是您创建的目录,/dev/mapper/VolGroup00-LogVol02 是您要挂载的 LVM2 逻辑卷。如果分区类型不是 XFS,请使用正确的类型替换 xfs 字符串(比如 ext4)。
如果不知道所有物理分区的名称,可以使用以下命令列出它们:
sh-4.2# fdisk -l
如果不知道所有 LVM2 物理卷、卷组或者逻辑卷的名称,请分别使用 pvdisplayvgdisplay 或者 lvdisplay 命令:
在这个提示符后,可以运行许多有用的命令,例如:
  • sshscpping,如果启动了网络
  • dumprestore,用于使用磁带设备的用户
  • partedfdisk,用于管理分区
  • rpm,用于安装或升级软件
  • vi 用于编辑文本文件

29.2.1. 捕获 sosreport

sosreport 命令行工具从该系统中收集配置和诊断信息,比如运行的内核版本,载入的模块以及系统和服务配置文件。这个程序的输出结果在 /var/tmp/ 目录中以 tar 归档形式保存。
sosreport 程序可帮助分析系统报错,并使得故障排除变得更为简单。以下是在 Anaconda 救援模式中捕获 sosreport 输出结果的步骤:

过程 29.3. 在 Anaconda 救援模式中使用 sosreport

  1. 过程 29.2, “引导至 Anaconda 救援模式” 所述步骤引导至 Anaconda 救援模式。确定以读写模式挂载安装系统的 /(root)。
  2. 从 root 目录进入 /mnt/sysimage/ 目录:
    sh-4.2# chroot /mnt/sysimage/
  3. 执行 sosreport 生成系统配置及诊断信息归档:
    sh-4.2# sosreport

    重要

    运行中 sosreport 会提示您输入您的姓名以及在与 Red Hat 支持服务联络时获得的案例号。只能使用字母和数字,因为添加任何下列字符或者空格可造成报告无法使用:
    # % & { } \ < > > * ? / $ ~ ' " : @ + ` | =
  4. 自选。如果要通过网络将生成的归档传输到新位置,则需要配置网络接口。如果您使用的是动态 IP 地址分配,则无需其他步骤。但如果使用静态地址分配,请运行以下命令为网络接口(例如: dev eth0)分配 IP 地址(例如:10.13.153.64/23):
    bash-4.2# ip addr add 10.13.153.64/23 dev eth0
    有关静态地址分配的详情请查看 《Red Hat Enterprise Linux 7 联网指南》
  5. 退出 chroot 环境:
    sh-4.2# exit
  6. 将生成的归档保存到新位置以便访问:
    sh-4.2# cp /mnt/sysimage/var/tmp/sosreport new_location
    请使用 scp 程序通过网络传输归档:
    sh-4.2# scp /mnt/sysimage/var/tmp/sosreport username@hostname:sosreport
详情请查看以下参考文档:

29.2.2. 重新安装引导装载程序

有时可能会意外删除、破坏或者使用其他操作系统替换 GRUB2 引导装载程序。下面的步骤详细论述了 GRUB 是如何在主引导记录中安装的:

过程 29.4. 重新安装 GRUB2 引导装载程序

  1. 过程 29.2, “引导至 Anaconda 救援模式” 的说明引导至 Anaconda 救援模式。确定以读写模式挂载安装系统的 /(root)分区。
  2. 更改 root 分区:
    sh-4.2# chroot /mnt/sysimage/
  3. 使用以下命令重新安装 GRUB2 引导装载程序,其中 install_device 是引导设备(通常为 /dev/sda):
    sh-4.2# /sbin/grub2-install install_device
  4. 重新引导系统。

29.2.3. 使用 RPM 添加、删除或者替换驱动程序

缺少驱动程序或驱动程序无法正常工作可在引导系统时造成问题。Anaconda 救援模式提供可添加、删除、或者替换驱动程序的环境,即使系统无法引导也没问题。在可能的情况下,请使用 RPM 软件包管理程序删除畸形的驱动程序,或者添加更新或者缺失的驱动程序。

注意

使用驱动程序盘安装驱动程序时,驱动程序盘会更新系统中的所有 initramfs 映像以便使用这个驱动。如果驱动的问题让系统无法引导,您就无法靠另外一个 initramfs 映像来引导系统。

过程 29.5. 使用 RPM 删除驱动程序

  1. 将系统引导至 Anaconda 救援模式。按照 过程 29.2, “引导至 Anaconda 救援模式” 的步骤操作。确定以读写模式挂载安装的系统。
  2. 从 root 目录进入 /mnt/sysimage/
    sh-4.2# chroot /mnt/sysimage/
  3. 使用 rpm -e 命令来删除驱动软件包。例如,要删除 xorg-x11-drv-wacom 驱动软件包,请运行:
    sh-4.2# rpm -e xorg-x11-drv-wacom
  4. 退出 chroot 环境:
    sh-4.2# exit
如果出于某些原因无法删除畸形的驱动程序,可将该驱动程序列入黑名单,这样就不会在引导时载入该程序。有关将驱动程序列入黑名单的详情请查看 第 4.3.4 节 “将驱动程序列入黑名单”第 20 章 引导选项
安装驱动程序的过程与之类似,但系统中必须有可用的 RPM 软件包:

过程 29.6. 使用 RPM 软件包安装驱动程序

  1. 将系统引导至 Anaconda 救援模式。按照 过程 29.2, “引导至 Anaconda 救援模式” 的步骤操作。不要选择将安装的系统以只读模式挂载。
  2. 使包含驱动的软件包可用。例如,挂载 CD 或 USB 盘并将 RPM 软件包复制到您在 /mnt/sysimage/ 中选择的位置,例如:/mnt/sysimage/root/drivers/
  3. 从 root 目录进入 /mnt/sysimage/
    sh-4.2# chroot /mnt/sysimage/
  4. 使用 rpm -ivh 命令安装驱动程序软件包。例如,要安装在 /root/drivers/ 中安装 xorg-x11-drv-wacom 驱动程序软件包,请运行:
    sh-4.2# rpm -­ivh /root/drivers/xorg-x11-drv-wacom-0.23.0-6.el7.x86_64.rpm

    注意

    这个 chroot 环境中的 /root/drivers/ 目录在原始救援环境中是 /mnt/sysimage/root/drivers/ 目录。
  5. 退出 chroot 环境:
    sh-4.2# exit
当您完成删除和安装驱动后,重启系统。