Enghish Version

MandrakeUser.Org - Your Mandrake-Linux Knowledge Base!

* DocIndex - Basics

系统恢复 第四篇

* 症状 III :登录失败
* 症状 IV :载入 X 时系统顿住
* 症状 V :系统停滞
* 症状 VI :重要文件被删除

相关资源:

Mdk-Ref 13LIGS, 4.11
MAGIC SYSRQ KEY DOCUMENTATION
man 5 shadow
man 5 passwd
man recover

Revision / Modified: Jan. 28, 2002
Author: Tom Berger
Translator: Wu XiaoGuang

* 症状 III :登录失败

请注意,这里讲的是传统的控制台登录,有关 X 的问题,请看下一个症状。

先不要惊慌,检查一下是不是输入的错误:看看是否按了 'Caps Lock' 键,试试不同的大小写,试试其他帐号或终端(用 ALT-F2 、ALT-F3 …… 切换)

登录失败也可能是由于 '/etc/passwd' 、'/etc/shadow' 或 '/etc/securetty' 中的某个条目出了问题,也可能是文件权限出错,或忘记了 'root' 的密码。

  1. 要进入系统,可重启后在 LiLo 提示符下输入
    linux init 1
    如果您用的是 GNU GRUB ,按两次 'e' 键,然后给启动命令添加
    init 1
    按 ENTER ,然后敲 'b' 启动系统。
    这将使系统进入单用户模式(single user mode)
  2. 默认下,Linux 将 '/etc/shadow' 和 '/etc/passwd' 的备份命名为 '/etc/passwd-' 、'/etc/shadow-' 。急救时,最先要用到这些备份文件。
    1. 先备份当前的 'shadow' 和 'passwd' 文件:
      cp /etc/shadow /etc/shadow.old
      cp /etc/passwd /etc/passwd.old

    2. 用原来的系统备份覆盖:
      cp /etc/passwd- /etc/passwd
      cp /etc/shadow- /etc/shadow
    3. 切换到优先级别 3 ,试试现在能否登录系统:
      init 3
  3. 如果还不凑效,重启系统,再进入运行级别 1 (同时按 <ALT> <CTRL> <BACKSPACE>)。
  4. 进入系统后,输入
    vi /etc/passwd
    看一下这个文件,里面不应该含有任何空行、注释 或 非 ASCII 字符。如果有这些“非法”字符,将其删除。'root' 的条目类似于:
    root:x:0:0:root:/root:/bin/bash
    如果不相同,需进行修改,然后保存文件。
    运行:
    chmod 644 /etc/passwd
  5. 下面,运行 vi /etc/shadow
    '/etc/shadow' 中条目的格式为:
    account_name:password:other stuff
    比如:
    root:$1$KODLGetc:10979:0:99999:7:::
    当然 password 域已被加密。
    删除 'root' 条目的 password (直到 password 的第一个字符,一般是 '$' ),然后输入 dw 。现在,输入 :wq 保存文件。
  6. 再看看 '/etc/securetty' 文件more /etc/securetty,其中应该有这些条目:
    tty1
    tty2
    tty3
    tty4
    tty5
    tty6
  7. 还要瞧瞧 '/var/log/messages' ,从这里可以了解登录时出的问题,检查一下 '/root/.bash_profile'、 '/root/.bashrc' 及 '/etc/gettydefs'的权限设置ls -al,这些文件的所有者应该是 'root' ,'root' 应该有读写的权利。
  8. init 6 重启系统。
  9. 再次登录时,用户名输入 root,'password' 提示符后面只要按 <ENTER>
  10. 一旦登录成功后,输入 passwd ,给 'root' 设定一个新的密码。

如果您还是无法登录系统,那就怪了。这可能就属于少数几个需要重装系统,才能解决问题的特例。

* section index * top

* 症状 IV :载入 X 时系统顿住

如果机器启动设置成直接进入图形模式,那么 X server 的配制错误将导致无法登录。
<CTRL> <ALT> <F2> 进入另一控制台,从而杀掉试图启动 X server 的 进程 ,并按照 X 安装问题 中列出的步骤进行纠错。
或者,用这个可选项启动系统:

linux init 3

这将进入控制台模式,而不启动 X 。

* section index * top

* 症状 V :系统冻结(freeze)

莫名其妙地中断(interruptions),也被称为 'hang' 或 'freeze' ,很多都是由操作系统所在的硬件引起的(比如 bad memory chips 、驱动 bugs 、IRQ 冲突等等)。这种中断一般在系统日志文件 '/var/log' 中没有记录,可能需要升级软件或对硬件作些变动。

遇到这样的情况,您当务之急是防止更大的破坏,例如由于简单地断电导致文件系统遭到破坏。'Magic SysRq Key' 在这儿很有用。

The Magic SysRq Key

即使系统无法响应,这也能进行一些基本的维护任务,在 Mandrake Linux 中,此功能已默认启用。特别是可以正常地关机,从而避免文件系统崩溃。

'SysRq' 序列 要求三个键同时按下,左边的 ALT 键、'SysRq' 键(也称为 'PrtSc' 或 'F13' )及字母键:

  1. <ALT> <SysRq> <r> 将键盘设成原始(raw)状态。
    万一图形界面无法响应键盘或鼠标,这会有所起作用。同时按
    <ALT> <CTRL> <BACKSPACE>
    会杀掉 X server ,从而进入 控制台模式(这是从运行级 5 跳到运行级 3 的快捷键)
  2. <ALT> <SysRq> <s> 试图将未存的数据都写入硬盘,以保持同步。
  3. <ALT> <SysRq> <e> 向所有 进程 发送中止信号,当然除了 'init' 。
  4. <ALT> <SysRq> <i> 向所有进程发送中止信号,除了 init ,并且结束所有忽略此信号的进程。
  5. <ALT> <SysRq> <u> 对只读设备进行必要的卸载,从而避免系统文件崩溃。
  6. <ALT> <SysRq> <b> 重启系统。将 'b' 换成 'o' 可关机。

如果您仔细看看上面的步骤,就会发现其实是在手动进行 'init' shutdown 进程(除了第一步)。所以,需要顺序进行(比如,将设备同步以后,再卸载)Raw - Sync - tErm - kIll - Umount - reBoot 。这里有条帮助记忆的短语:'Raising Skinny Elephants Is Utterly Boring' 。Mandrake Linux user Louis 推荐了另一更和主题相符的短语:'Remembering the Sequence Entirely Is Useful Buddy' 。

通过网络

如果机器运行着 telnet 或 SSH server ,您可以试着从另一台机器进入冻住的系统。当然前提是只有图形界面冻住了,而基本系统和网络服务仍可工作。

* section index * top

* 症状 VI :重要文件被删

从 Mandrake Linux 8.2 的 CD 中装上 Recover undeletion utility(恢复工具),这将简化文件的恢复(此程序是作为 'debugfs' 工具的前端)。您要做的就是以 'root' 身份将其指向文件所在的分区:

recover /dev/device

'recover' 会询问一些问题,从而取回最接近的删除信息,也就能减少以后要寻找的文件数。请注意,'recover' 将恢复文件的内容,而不是名称,所以您得尽可能多地提供相关信息。

* section index * top


Legal: All texts on this site are covered by the GNU Free Documentation License.
Standard disclaimers of warranty apply.