看板Linux
标 题一个急救的经验
发信站台大电机 Maxwell BBS (Fri May 5 18:28:29 2000)
转信站Ptt!bbs.ee.ntu!Maxwell
因为在等程式跑出来的结果,所以偷空来 post 一下 :-))
以下是我的一个 Linux 急救的经验,说出来与大家分享。那是一个晚上,
我在电脑前快睡着了,神智不清的情况下,以 root 身分不小心操作失误
导至。那时我已将软碟 mount 上来 (我的软碟是 ext2 filesystem),刚
刚才将我写一个晚上的程式 cp 上去准备明天早上到学校继续努力。结果,
我在还没 umount 前,手去碰了一下软碟机的磁片取出按扭。磁片没有抽
出来,因为我突然惊觉还没 umount, 急忙缩手,但磁片必竟还是动了一下。
这下完了,已经与整片磁片抽出无异了。系统接下来已无法正确操作软碟机
(会 read/write error), 还好还能 umount。更惨的是 (或说,我更不应该
的是),第一次我 umount 成功了,就应该马上 shutdown 重开,却见到我
有一个档忘了 cp 到软碟,又试图重新 mount 软碟,想将那个档案拷过去。
结果那个 mount 指令就 hang 住了,打 ps 一看,变成了 zombie ....
这让我想起了很久以前的恶梦,也是没有 umount 就抽出磁片,结果系统
整个大乱。先是 umount/mount 没有作用,接着 sync 指令也会 hang 住,
更惨的是 shutdown 也没有作用,用 ps 来看只见 zombie process 越来
越多,最後的下场就是按下 reset, 然後求神保佑 (因为连 sync 都挂了,
所以真的要求神保佑 ....)
而现在,尚在症状初期,系统已有两个 zombie, 一个就是 mount 软碟的
指令,另一个就是 sync。於是我开始了以下的抢救步骤:
1. 系统其他部分似乎还很正常,於是我用 modem ppp 连线,先将我辛苦一个
晚上的程式先传到学校再说。
2. 我离开 X-Window, 打 ps -ax 列出所有的 process, 用 kill 将所有的
process 一个个砍掉,就连 inetd, syslogd 也不例外,简单地说,就是
「手动」进入 single user mode。有人会问为什麽不直接打 telinit s
就好了?因为现在系统已不太对劲了,我很怕在进入 single user mode
的过程中,可能那个 script 的动作又会 hang 住,变成 zombie process,
所以才手动一个个砍。
3. 然後我试图 umount 硬碟的 filesystem, 我的 partition 如下
Filesystem 1k-blocks Used Available Use% Mounted on
/dev/hda1 694695 584419 74393 89% /
/dev/hda2 247871 47904 187166 20% /var
/dev/hda3 595195 518024 46427 92% /home
/dev/hdb1 1211511 871568 277348 76% /opt
我先 umount /opt 与 /var, 幸好都可以 umount, 要 umount /var 要注
意,必须确定所有的 system daemon 都 kill 掉了,才能 umount 成功。
因为 system daemon 常常读写 /var/log 的档案,只要有任何程式在使用
档案,就无法 umount。
4. 因为我出事的那一刻是在 /home partition 下的,也就是 mount, sync
等指令是在 /home partition 下执行的,因此,除非这两个 process 完
全结束,才能 umount 这个 partition。然而,这两个 process 正以 zombie
的姿态挂在那里,也无法 kill 掉,所以,我将这 partition mount 成
read-only:
mount -o remount,ro /home
幸好这样子还没问题。
5. 最後, / partition 也 mount read-only:
mount -o remount,ro /
6. 按下 reset 重开机。由於我这时所有的 partition 不是 umount 了就是
已 mount read-only, 所以理论上这时按下 reset 重开对於 filesystem
完全没有损坏。事实上也是如此,重开的过程中, filesystem 完全不需
要 check, 一下子,系统就正常了。
以上就是一个很简单的系统抢救经验,提供给大家参考 :-))
--
─── 居 士 ───
<
[email protected]>
Welcome to XCIN Project:
http://xcin.linux.org.tw
--
※ Origin: 台大电机 Maxwell 站 ◆ From: twcpro.phys.ntu.edu.tw