|
在所有 Mandrake Linux 系统中,'failsafe' 都是一个标准启动选项。
一般情况下,系统在启动过程中直接对 runlevel(运行级别)进行切换('3' 针对控制台,'5' 是 X )。而 'failsafe' 启动则先进入 1 (单用户模式),然后切换到运行级别 3 (控制台),如果 5 是默认运行级别,则进入级别 5 。
如果安装了管理工具 'Linuxconf' ,在控制台模式到达运行级别 1 后,这个工具就会启动。会给出运行级别的菜单,或可能通过 'Linuxconf' 来进行系统维护工作。
section index top
Linux 还内置了两个急救系统,其中之一就是 'single user mode' ,即运行级别 1 ,这里的单用户就是指 'root' ,而且只运行有最少的进程。
进入这个运行级别有几种途径:
- 从正在运行的系统中以 'root' 身份切入: init 1 。请注意,这条命令将关闭机器中的绝大多数程序,同时这也是模拟重启的好办法;
- 在启动程序的提示符后输入:linux single 或 linux init 1 。当用 'failsafe' 启动,但是系统无法进入运行级别 3 时,就会掉到级别 1 。
这个级别不需要登录。
section index top
单用户模式仍然要依靠运行 'init' ,但如果遇到 'init' 坏掉或遗失,怎么办?启动系统时用这个可选项:
linux init=/bin/sh
内核被载入系统内存后,就会马上进入 shell 。
在 Mandrake Linux 8.1 系统中,您还可以添加可选项,以关闭 devfsd ,以防碰到硬件方面的问题:
linux init=/bin/sh devfs=nomount
在这个 shell 的最初状态中,您没有
- 一个区域性的键盘映射及字符,默认下使用 ASCII 字符和美国键盘映射;
- 含有 '/sbin' 的 PATH ,因此,所有该目录下的命令都要给出完整路径,如输入 /sbin/fdisk -l /dev/hda ,而不是 fdisk -l /dev/hda ;
- 除 '/' 以外的挂载分区;
- 可写挂载,也就是说 '/' 只以可读方式挂载;
- init ,这显而易见 ;-) 。没有 'init' ,没有 'shutdown' 、'halt' 。在 root shell 对话过程中,您得自己对所有挂载的介质进行必要的 sync 及卸载。
您首先要做的是将 '/' 分区设成可写:
mount -o remount,rw /dev/device
运行 mount 以找出 device 的名称。另一个您要挂载的是虚拟的 'proc' 文件系统,这个系统提供了系统信息:
mount /proc /proc -t proc
从这里起,您就可以开始修复工作了。主要目的还是使 init 再次运行,这样您才能进一步在单用户模式下进行修复。
离开 shell 以前,flush 所有缓存(buffer) :
sync
还要进行卸载:
umount -a
并将 '/' 重新挂载成只读:
mount -o remount,ro /
同时按下 <ALT> <CTRL> <DEL> 离开 shell ,并重启机器。
注意:
- 'mount' 命令的标志(flag)有问题,无法回显变化,比如当只读重新挂载成可写后,不要理会这个。
section index top
有许多 Linux 套件运行在可移动介质(软盘、光盘、ZIP)或 Windows 分区。基于光盘的套件通常提供了一个高级的图形界面。
您可以在 LWN.net Linux Distribution List 中找到很多这类套件。
当使用第三方的急救套件时,需注意下面几项:
-
确认能否工作。如果下载了光盘映象文件,要运行
md5sum name.iso
并将结果数字和原服务器上的作比较。
软盘映象在传输中不大会出现 CRC 错误,但更可能存在介质上损坏。将映象放到软盘上后,运行
cmp /dev/fd0 name.img
以核实软盘上的映象与下载的是否一致。
然后用急救系统启动,看看能否工作。
-
确认套件当前是否有人维护。Linux 的发展很快,如果由于急救系统的文件系统驱动过于陈旧,使得无法挂载硬盘上的分区,那可就惨了。
-
看一下其中包含的软件。如果分区格式不很常用,如 XFS 、JFS ,套件可能不含有一些必须的工具。可将 Mandrake Linux 急救系统中的软件目录作参照。
下面的两篇将列出这方面较常见的症状,并介绍相应的处理办法。
section index top
紧急症状 I
|