FreeBSD紧急救援状况的应变措施
发布时间:2006-10-14 8:46:53   收集提供:gaoqian

作者: foxfair (.........) 看板: 386BSD 
标题: [DOC]紧急救援状况的应变措施 
时间: Sun May 2 18:36:27 1999 


玩 FreeBSD 的各位,有没有常常『重灌』系统呢? 

如果只是因为某些设定上的疏忽,比如说设错 root 或是某个 user 的 shell 
路径,或是安装某些程式结果开机以後不能使用,或是 make new kernel 以後 
变得无法开机,这些问题难道就都只有『重灌』一途可以解决吗? 

当然不!请记住你现在不是在用 M$ "飞窗"系统,重灌只是属於鸵鸟的那种人 
才会使用的解决方法。以下提供一点小 hint 告诉你怎麽在系统出问题的时候, 
做出紧急应变措施,大部分的情形下我假设你已经进入(或是该说,只能进入) 
单机模式(single user mode)。 
========================================================================== 
Q0: Ok, 什麽是单机模式?(Single user mode) 我该怎麽进入单机模式? 
Hint: 
1.请记住 UNIX 系统(当然包含 FreeBSD)先天的设计上是多使用工作环境, 
别人可以藉由 telnet 或是 rsh 或其他的远端签入程式连线过来使用你的 
机器,单机模式简单的说,系统处於最原始的状态,所有有关网路方面的 
service 都还没有跑起来,file system 也还没有 mount, 只有最原始的 
系统组态被读入,然後由 kernel 开机进入 command line 这样而已。这 
种类似浑沌初开的原始状态,就是单机模式。 
2.进入单机模式,在 FreeBSD 的方法就是当你开机看到 boot: 提示号 
时,马上打 boot -s 就可以了。如果你有装 boot loader, 在 loader 
里面打 boot -s 也是一样的效果。 

Q1: root(or other user)shell 设错,怎麽办? 
(类似这样的问题还有,密码忘记了等等) 
Hint: 
1.开机进入单机模式。 
2.用 vipw 改密码或 shell 路径吧! 
3.或系统提示号 # 出现以後马上用 passwd 命令更改密码,这次请把密码抄 
在女朋友的背上,刻在自己的额头上,或是用任何不会再忘记或找不到的 
方法强迫自己记忆。 

Q2: 开机到一半结果好像硬碟有问题,没有办法 mount 某个 partition 结果 
就整个停住了,怎麽办? 
(类似这样的问题还有,把硬碟从 master 换到 slave, 或是相反的动作,或是 
/etc/fstab 档里面写错一个 slice name 等等) 
Hint: 
1.开机进入单机模式。 
2.在系统提示号 # 出现後,打 /sbin/mount / 先把 root partition mount 
起来。 
3.然後改 /etc/fstab. 
4.如果不确定有这个 device name, 或许你该去 /dev 下利用 MAKEDEV 这个 
指令做出 dev 再说。比如说你把原本放在 primary master 的硬碟搬到 
slave 去,device name 应该从 wd0->wd1, 但是你看 /dev 下没有任何叫 
rwd1 的 device name, 你就应该这样做: 

# cd /dev 
# ./MAKEDEV wd1 

Q3: 单机模式下,键盘按键变得好奇怪,还有方向键(上下)不能拿来 repeat 以 
前的命令,怎麽办? 
Hint: 
1.在系统提示号 # 後面打 set -E 
2.可以更换 shell, 因为单机模式是使用 /bin/sh 这个 shell, 你还是可以 
使用自己习惯的 shell. 直接找到 shell 所在的目录,一般来说常用的就 
是 /bin/csh, /usr/local/bin/tcsh; /usr/local/bin/bash 等这几种。 

Q4: 单机模式下,我要使用 /stand/sysinstall 或是 ee 等程式的时候,系统告 
告诉我 Unknown terminal type, 怎麽办? 
(同样的问题还有,vi 不能使用,说 terminal 不对等等...) 
Hint: 
1.set TERM=cons25 
2.done. 

Q5. 我的硬碟里面好像有坏轨,结果不能正常开机进入单机模式了,怎麽办? 
Hint: 
1.进入单机模式以後, 
2.用 fsck -y 命令先检查看看,如果有坏轨就用 bad144 或其他 repair 
程式去扫描修复。 

Q6. 我的 kernel 不能开机了,怎麽办? 
Hint: 
1.在 boot: 提示号出现的时候,直接打 kernel.GENERIC 或是 kernel.old 
用旧的 kernel 来开机。再怎麽样,kernel.GENERIC 都一定要可以用。 
2.有装 boot loader 的人,可以在 loader 里面先下 load kernel.GENERIC 
的命令读取这个 kernel, 然後用 boot 命令启动系统。 
 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50