急救盘组(也称为 boot/root 盘组),是系统管理员必不可少的工具。用它可以独立地启动和运行一个完整的 Linux 系统。实际上,急救盘组中的第 2 张盘上就有一个完整的 Linux 系统,包括 root 文件系统;而第 1 张盘则存放了可启动的内核。 使用急救盘组维护系统很简单。只需用这两张盘启动系统后,进入急救模式,这时使用的是 root 账户。为了能访问硬盘上的文件,需要手工安装硬盘文件系统。例如,用下面的命令可在 / mnt 目录中安装 /dev/hda2 盘上的 ext2fs 类型的 Linux 文件系统: # monut -t ext2/dev/hda2/mnt 注:现在根目录是急救盘上的根目录。为了访问硬盘文件系统中的文件,必须先把它安装到某个目录下。这样,如果将硬盘上文件系统安装在 / mmt 目录下,则硬盘上原来的 / etc/passwd 文件的路径就是 /mnt/etc/passwd。
当文件系统被破坏时,如果使用的是 ext2fs 类型的文件系统,就可从软盘运 e2fsck 命令来修正文件系统中被损坏的数据。对于其他类型的文件系统,可以使用相应的 fsck 命令。
当从软盘上检查文件系统时,最好不要 mount 安装。注:文件系统被破坏的常见原因是超级块被损坏,超级块是文件系统的 “头部”。它包含文件系统的状态、尺寸和空闲磁盘块等信息。如果损坏了一个文件系统的超级块(例如不小心直接将数据写到了文件系统的超级块分区中),那么系统可能会完全不识别该文件系统,这样也就不能安装它了,即使采用 e2fsck 命令也不能处理这个问题。 不过,ext2fs 类型的文件系统将超级块的内容进行了备份,并存放于驱动程序的块组(block group)边界。可以用如下的命令通知 e2fsck 使用超级块的备份是指文件系统所在的分区,-b 8193 选项用于显示使用存放在文件系统中的 8193 块的超级块的备份数据。如果不小心删除了重要的文件,那么没有办法直接恢复。但是还可以将相应的文件从急救盘复制到硬盘上。例如,如果删除了文件 / bin/login,此时系统无法正常进到登录界面,可以用急救盘组启动系统,将硬盘文件系统安装到 / mnt 目录下,然后使用下述命令:
#cp -a /bin/login /mnt/bin “-a” 选项用于告诉 cp 在拷贝时保持文件的访问权限。当然如果被删除的基本文件不在 “急救盘组” 中, 也就不能用这种方法了。如果以前做过系统备份的话,那么也可以用以前的备份来恢复。如果不小心将系统函数库文件破坏了,或者破坏了 / lib 目录下符号链接,那么将导致依赖这些库的命令无法执行。最简单的解决办法是用急救盘组启动系统, 在 / mnt 目录中安装硬盘文件系统,然后修复 / mnt/lib 目录下的库。由于系统管理员的疏忽,或者由于系统受到黑客的入侵, 系统管理员可能无法用 root 帐号登录系统。 对于第 1 种情况,可能是系统管理员忘记了 root 密码,用急救盘组就可以解决问题。对于第 2 种情况,由于很可能是密码被黑客修改了,因此系统管理员无法进入系统,也就是说,Linux 系统完全失去了控制,因此应尽快重新获得系统的控制权。在取得 root 权限后,还应检查系统被破坏的情况,以防被黑客再次入侵。需要做的最主要的工作就是重新设置 root 的密码,获得 Linux 操作系统的控制权。首先用急救盘组启动系统,然后将硬盘的文件系统安装到 / mnt 目录下,编辑 / mnt/etc/passwd 文件,将其对应于 root 账户的一行加密口令域置空,如下所示: root::0:0:root:/root:bin/bash 注:如果系统使用 shadow 工具,就需要对文件 / etc/shadow 进行上述的操作,使 root 登录系统不需要口令。 这样,root 账户就没有口令了。当重新从硬盘启动 Linux 系统时,就可以用 root 账户登录(系统不会要求输入密码)。进入系统后,再用命令 passwd 设置新的口令。
一般来说,如果系统管理员不能正常进入系统,就需要考虑使用急救盘组进入急救模式排除系统的故障。但在没有制作急救盘组的情况下,Linux 系统不能启动,该怎么办?
在个人计算机使用 Linux 系统时,通常都是 Linux 和 MS Windows 9x 或 MS Windows NT 并存的。由于重新安装其他的操作系统,经常会导致原有的 Linux 不能启动。这主要是因为,这些操作系统默认为计算机中没有其他的操作系统,因而改写了硬盘的主引导记录(MBR),冲掉了 Linux 的 LILO 系统引导程序。如果有急救盘组,那么很简单,用第一张启动盘启动硬盘的 Linux 系统,重新运行 LILO 命令,就可以将 LILO 系统引导程序写回硬盘的主引导记录。再次开机即可。 如果没有系统启动盘,怎样恢复硬盘上的 Linux 呢?在这种情况下,如果知道 Linux 在硬盘上的确切安装分区,且有 loadlin 程序,就可以重新返回 Linux。loadlin 程序是 DOS 下的程序,运行它可以从 DOS 下直接启动 Linux,快速进入 Linux 环境。在 Red Hat Linux 6.0 光盘的 dosutil / 目录下就有这个程序。除此之外,还需要一个 Linux 启动内核的映像文件。在 Red H at linux 6.0 光盘的 images / 目录下有这个文件——vmlinuz。 例如,在 Windows 98 系统下面,进入 DOS 的单用户模式,然后运行下述的 loadlin 命令,即可重新进入 Linux 系统: loadlin vmlinuz root=/dev/hda8 /dev/hda8 是 Linux 的 root 文件系统所在的硬盘分区位置。命令执行后,就引导 Linux 系统。用 root 登录后,运行 LILO 命令,则重新将 LILO 装入 MBR,回到以前多操作系统并存使用的状态。
作为国内最受欢迎的架构师盛会,2017 第九届中国系统架构师大会 (SACC) 将于将于 2017 年 10 月 19-21 日在北京新云南皇冠假日酒店震撼来袭。
大会以 “云智未来” 为主题,云集国内外顶级专家,围绕云计算、人工智能、大数据、移动互联网、产业应用等热点领域展开技术探讨与交流。本届大会共设置 2 大主会场,18 个技术专场;邀请来自互联网、金融、制造业、电商等多个领域,100 余位技术专家及行业领袖来分享他们的经验;并将吸引 4000 + 人次的系统运维、架构师及 IT 决策人士参会,为他们提供最具价值的交流平台。
点击“阅读原文”,立享8.8折购票优惠哦~
原文作者:;如有侵权,请联系管理员删除。