分类: LINUX
2005-12-02 14:44:52
今天机器被黑了,启动不起来了!
启动的时候就报下面的错误:
init:version 2.84 booting ok
welcome to /etc/rc.d/rc.sysinit: line 70 : 37 segmentation fault
LC_ALL=C grep -q "red hat" /etc/redhat-release
red hat linux
press 'i' to enter interactive startup
mounting proc filesystem: failed
/etc/rc.d/rc.sysinit: line 90: 44 segmentation fault LC_ALL=C grep -q/initrd/proc/mounts
configuring kernel parameters: error:/ proc must be mounter to mount /proc at boot you need an /etc/fstab line like :
/proc /proc proc defaults
in the meantime, mount /proc /proc -t proc failed
setting clock ....... ok
loading default keymap(us) ok
setting hostname ok
/etc/rc.d/rc.sysinit: line 182: 68 segmentation fault LC_ALL=C grep -iq "nousb" /proc//cmdline 2>;/dev/null
/etc/rc.d/rc.sysinit :line 182: 69 segmentation fault LC_ALL=C grep -q "usb" /proc/device 2 >;/dev/null
然后就停在这里不动了.没有办法,只能进入到rescue模式下面:
用第一张光盘启动,在boot后面输入:linux rescue
在问你是否配置网络的时,选择NO.下一步的时候选择Continue
bash2.5$chroot /mnt/sysimage
bash2.5$cat /etc/rc.d/rc.sysinit (看了一下没有什么不对的,如果你不会看的话。可以直接从另外一台机器机器copy过来覆盖掉原来的)
我再把/etc/fstab目录下面的proc这一行注释掉了。其实这一行注释掉了话。系统自己能重建这个目录,再重启,可是问题依旧。后来参考网上的帖子说有可能改了/sbin和/bin目录下面的命令。我也觉得奇怪,我运行grep命令的时候总是报错。再比较了一下这个命令和正常机器上的命令大小,发现这个命令大了很多了。没有办法,我只好从另外正常的机器上cp /sbin和/bin目录,覆盖它原来的/sbin和/bin目录下面的命令。注意,这里不要整个目录覆盖,最少是从目录下面
bash2.5$mount /dev/sde1 /mnt/usb (如果你开始chroot了,请先exit出来,要不你mount的时候mount不上)
bash2.5$cp /mnt/usb/sbin/* /mnt/sysimage/sbin
bash2.5$cp /mnt/usb/bin/* /mnt/sysimage/bin
bash2.5$cp /mnt/usb/{rc,rc.local,rc.sysinit} /mnt/sysimage/etc/rc.d (把rc、rc.local、rc.sysinit也同时cp到/etc/rc.d/下面)
然后重启机器就OK了