|
我有一部USB外置硬盘,上面安装了Knoppix-3.9的HD install,当然我已经重新编译内核来解决那个讨厌的ub support,因此没有任何启动问题。众所周位,Knoppix仍是用devfs的。
今天,心血来潮想把它转成udev,於是从http://packages.debain.org/ 的testing branch下了如下的包:
libc6_2.3.5-6_i386.deb
libselinux1_1.26-1_i386.deb
initscripts_2.86.ds1-4_i386.deb
udev_0.070-2_i386.deb
用dpkg -i 安装头两个包没有难度,但是,恶梦开始了。。。
initscripts说什麽错误跟sysvinit里的配置文件有冲突,於是一於把sysvinit相关的包也下来强制安装,包括:
libsepol1_1.8-1_i386.deb
sysv-rc_2.86.ds1-4_all.deb
sysvinit_2.86.ds1-4_i386.deb
完蛋了,最後安装不成还得到这个错误讯识:
dpkg: `update-rc.d' not found on PATH.
dpkg: 1 expected program(s) not found on PATH.
NB: root's PATH should usually contain /usr/local/sbin, /usr/sbin and /sbin.
再看/usr/sbin,update-rc.d果真不见,dpkg也不能用了
Shit! 前几天才建议vivo及pstar用Knoppix去修复系统
http://www.linuxsir.cn/bbs/showthread.php?t=226428
http://www.linuxsir.cn/bbs/showthread.php?t=226852
没想到今天我也陷於相同困境了!
还好,方法真的是管用的!
救援部骤:
1. boot起Knoppix LiveCD
2. 用Knoppix LiveCD连上 internet. 在http://packages.debian.org/ 的testing branch找到并下载这几个包:
sysv-rc_2.86.ds1-4_all.deb
sysvinit_2.86.ds1-4_i386.deb
initscripts_2.86.ds1-4_i386.deb
udev_0.070-2_i386.deb (其实先前已下载了)
3. 用alien把这些deb转换成tgz
alien -t *.deb
4. 把受损的系统挂起来
mount /dev/uba7 /mnt/uba7 (我用的是Knoppix-3.9,外置硬盘被认作uba)
5. 用tar将刚才的tgz解压
tar zxf sysv-rc_2.86.ds1-4_all.tgz -C /mnt/uba7
tar zxf sysvinit_2.86.ds1-4_i386.tgz -C /mnt/uba7
tar zxf initscripts_2.86.ds1-4_i386.tgz -C /mnt/uba7
tar zxf udev_0.070-2_i386.tgz -C /mnt/uba7
如此,重新复写受损的系统
6. 虽然软件是装上了,可是dpkg的database并无任何记录。也就是说dpkg不会视刚才的软件包已被安装,因此要重启一次电脑。
用root身分执行:
dpkg -i --forceoverwrite sysv-rc_2.86.ds1-4_all.deb
dpkg -i --forceoverwrite sysvinit_2.86.ds1-4_i386.deb
dpkg -i --forceoverwrite initscripts_2.86.ds1-4_i386.deb
dpkg -i udev_0.070-2_i386.deb
再安装软件包後dpkg的database便完整了。
好了,修复完成,再重启一次电脑。
启动时没有异样,udev运作良好,一齐正常!呵呵。。。
**************************************
结语:
1. 系统夸掉未必一定要重装,了解系统的运作就可以想方法去解决问题
2. 随手一张救援CD是绝对必要的 |
|