第 36 章 基本系统恢复
问题出现时总会有相应的解决办法,但是这些解决办法却要求您理解并熟悉系统。本章论述了如何引导至救援模式、单用户模式和紧急模式,可以在这些模式中使用这些知识修复系统。
36.1. 救援模式
36.1.1. 常见问题
鉴于以下几个原因而需要引导到这些恢复模式之一:
- 无法正常引导入 Red Hat Enterprise Linux(运行级别 3 或 5)。
- 遇到了硬件或软件问题,并且想将几个重要的文件从系统硬盘中取出。
- 忘记了 root 密码。
36.1.1.1. 无法引导至 Red Hat Enterprise Linux
这个问题通常是由于在安装 Red Hat Enterprise Linux 后安装另一个操作系统引起的。有些操作系统假设计算机中没有其他操作系统。它们会覆盖原来含有 GRUB 引导装载程序的主引导记录(MBR)。如果用这种方法覆盖引导装载程序,就无法引导 Red Hat Enterprise Linux,直到进入救援模式,并重新配置引导装载程序。
另一个常见问题出现在使用分区工具重划分区大小,或在安装后从闲置空间中创建新分区,从而改变了分区的顺序之后。如果改变
/
分区的分区号码,引导装载程序就无法找到它挂载这个分区。要解决这个问题,请引导至救援模式并修改 /boot/grub/grub.conf
文件。
关于怎样在救援模式中重新安装 GRUB 引导装载程序,请参考 第 36.1.2.1 节 “重新安装引导装载程序”。
36.1.2. 引导至救援模式
救援模式提供了从系统硬盘以外,比如 CD-ROM 或者其他完全引导一个小 Red Hat Enterprise Linux 环境的功能。
如它的名称所暗示,救援模式是用来将您从某种情况中解救出来的模式。在正常操作中,Red Hat Enterprise Linux 系统使用位于系统硬盘中的文件处理一切实例 — 运行程序、保存文件等等。
然而,在有些情况下, Red Hat Enterprise Linux 可能无法全面运行,以至于无法存取系统硬盘中的文件。使用救援模式,即便无法在硬盘中实际运行 Red Hat Enterprise Linux,也可以访问保存在该系统硬盘中的文件。
要引导至救援模式,必须能够使用以下方法之一引导系统[14]:
- 使用引导 CD-ROM 或者 DVD 引导系统。
- 从其他安装引导介质,如 USB 闪存设备引导系统。
- 使用 Red Hat Enterprise Linux DVD 引导系统。
使用以上方法引导后,将关键字
rescue
添加为内核参数。例如,对于 x86 系统,请在安装引导提示符后输入以下命令:
linux rescue
如果系统要求驱动盘中的第三方的驱动引导,请使用另外的选项
dd
载入驱动程序:
linux rescue dd
关于在引导时使用驱动盘的更多信息,请参考 第 6.3.3 节 “使用引导选项指定驱动程序更新磁盘”(x86 系统) 或 第 13.3.3 节 “使用引导选项指定驱动程序更新磁盘”(POWER Systems 服务器)。
如果 Red Hat Enterprise Linux 6 中的某个驱动程序阻止系统引导,请使用
rdblacklist
选项将该驱动程序放入黑名单。例如,要不使用 foobar 驱动程序进入恢复模式,请运行:
linux rescue rdblacklist=foobar
会提示您回答一些基本问题,其中包括要使用何种语言。还会提示选择有效救援映像的位置。请从 本地 CD-ROM、硬盘、NFS 映像、FTP或者HTTP 中选择。选择的位置必须含有有效安装树,且该安装树的 Red Hat Enterprise Linux 版本必须与您要用来引导的 Red Hat Enterprise Linux 磁盘的版本一致。如果使用引导 CD-ROM 或者其他介质启动救援模式,则安装树必须与创建该介质的安装树相同。有关如何在硬盘、NFS 服务器、FTP服务器或者 HTTP 服务器中设置安装树的详情,请参考本指南之前的章节。
如果选择的救援映像不需要网络连接,则会询问是否要创建网络连接。如果要将文件备份到另一台计算机中,或从共享网络位置中安装一些 PRM 软件包时,网络连接会很有用。
将显示如下信息:
现在救援模式将试图查找您的 Linux 安装程序,并将其挂载到 /mnt/sysimage 中。然后就可以根据系统需要对其进行修改。如果要执行这个步骤,请选择 '继续'。还可以选择将文件系统以只读而不是读写的形式挂载,即选择 '只读'。如果出于某种原因这个进程失败了,则可以选择 '跳过',那么就会跳过这一步,然后就可以直接进入命令 shell。
如果选择
,它会尝试将文件系统挂载到 /mnt/sysimage
目录中。如果挂载分区失败,它会通知您。如果选择 ,会尝试在 /mnt/sysimage
目录下挂载文件系统,但是挂载模式为只读。如果选择 ,文件系统将不会被挂载。如果您认为文件系统已损坏,选择 。
系统进入救援模式后,在 VC(虚拟控制台)1和 VC2(使用 Ctrl-Alt-F1 组合键来进入 VC1,Ctrl-Alt-F2 来进入 VC2)中会出现提示符:
sh-3.00b#
如果选择了
自动挂载分区,并且在成功挂载后进入单用户模式。
即便已挂载文件系统,救援模式中的默认 root 分区只不过是临时的 root 分区,而不是正常用户模式(运行级别 3 或 5)中的文件系统 root 分区。如果选择要挂载文件系统,并且已成功挂载,则可以通过执行以下命令,将救援模式的 root 分区变为您文件系统的 root 分区:
chroot /mnt/sysimage
如果需要执行
rpm
之类的命令,改变 root 分区就会很有用,因为这类命令要求将您的 root 分区挂载为 /
。要结束 chroot
环境,键入 exit
,就会返回到提示符。
如果选择
,仍可以尝试在救援模式中手工挂载分区或 LVM2 逻辑卷,方法是:创建一个目录,如, /foo
,然后键入以下命令:
mount -t ext4 /dev/mapper/VolGroup00-LogVol02 /foo
在上面的命令中,
/foo
是您创建的目录,/dev/mapper/VolGroup00-LogVol02
是要挂载的 LVM2 逻辑卷。如果分区类型为 ext2
或者 ext3
,请使用 ext4
分别替换 ext2
或者 ext3
。
如果不知道所有物理分区的名称,可以使用以下命令列出它们:
fdisk -l
如果不知道所有 LVM2 物理卷、卷组或者逻辑卷的名称,请分别使用
pvdisplay
、vgdisplay
或者 lvdisplay
命令:
在这个提示符后,可以运行许多有用的命令,例如:
ssh
、scp
和ping
,如果启动了网络dump
和restore
,用于使用磁带设备的用户parted
和fdisk
,用于管理分区rpm
,用于安装或升级软件vi
用于编辑文本文件
36.1.2.1. 重新安装引导装载程序
在很多情况下,有可能由其他操作系统意外删除、破坏或替换 GRUB 引导装载程序。
下面的步骤详细说明了怎样在主引导记录(MBR)中重新安装 GRUB:
- 使用安装引导介质引导系统。
- 在安装引导提示符后键入
linux rescue
进入救援环境。 - 键入
chroot /mnt/sysimage
挂载 root 分区。 - 键入
/sbin/grub-install /dev/hda
重新安装 GRUB 引导装载程序,其中/dev/hda
是 boot 分区(一般是 /dev/sda)。 - 检查
/boot/grub/grub.conf
文件,因为可能需要附加条目以便 GRUB 控制附加操作系统。 - 重新引导系统。
36.1.3. 引导至单用户模式
单用户模式的优点之一是不必使用引导光盘;但它无法提供将文件系统挂载为只读模式或干脆不挂载的选项。
如果系统启动了,但是在完全引导后却不允许您登录,请尝试单用户模式。
在单用户模式中,计算机引导至运行级别 1。挂载本地文件系统,但是没有激活网络。您有一个可用系统维护 shell。与救援模式不同,单用户模式自动尝试挂载您的文件系统。如果无法成功挂载您的文件系统,请不要使用单用户模式。如果系统中的运行级别 1 配置受损,则不能使用单用户模式。
在使用 GRUB 引导装载程序的 x86 系统中,使用以下步骤来引导至单用户模式:
- 引导时当出现 GRUB 闪屏的时候,按任意键进入 GRUB 互动菜单。
- 选择 Red Hat Enterprise Linux 要引导的版本,并输入
a
添加该行。 - 在行尾键入独立单词
single
(按 Spacebar键,然后键入single
)。按 Enter 退出编辑模式。