LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 4145|回复: 4

用Knoppix修理Debian系统

[复制链接]
发表于 2005-10-28 12:15:56 | 显示全部楼层 |阅读模式
我有一部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是绝对必要的
发表于 2005-10-29 00:12:33 | 显示全部楼层
how to 重新编译内核来解决那个讨厌的ub support?
thanks very much.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-10-29 05:50:03 | 显示全部楼层
Kernel一旦用上那个讨厌的ub support,就会屏蔽掉usb_storage,不再模拟scsi设备。因此,USB外置硬盘被认作/dev/ubaX而不是/dev/sdaX

但是ub讨厌之处在於它的稳定性与及数据传输速度,对比模拟scsi设备时相差太远,所以都出致今很少被用家接受,详见大大们在此帖的对话,http://www.linuxsir.cn/bbs/showthread.php?t=198083

偏偏Knoppix在3.8-3.9期间却用上ub!费解!

我亦曾经在Knoppix官方论坛反映过ub的缺陷,新版Knoppix自4.0以後也取消用ub改回scsi模拟了。

ub的另一个问题就是不能被bootloader辨认,若果用了ub,你是无法将GRUB装到USB外置硬盘上的。我向Knoppix官方论坛服告此问题反被那个哈利班竹耻言什麽Knoppix是LiveCD设计不应被用作硬盘安装之说,真气人! :mad:

废话说完,言归正传,要取消ub,kernel的ub选项必定要设成No,即是:

CONFIG_BLK_DEV_UB=n

也不要用CONFIG_BLK_DEV_UB=m编译成模块,它同样为你制造麻烦,尤其是造initrd的时候

Hope you clear.
回复 支持 反对

使用道具 举报

发表于 2006-3-17 20:23:19 | 显示全部楼层
谢谢老大的好文章!
我就是从Knoppix开始了解Debian的,后来才通过硬盘安装好Debian,不再用Knoppix.
感觉 Knoppix是最好的live cd!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-3-17 20:32:40 | 显示全部楼层
呵呵,其实 Knoppix 有个改良版叫 Kanotix,很多地方比 Knoppix 先进,有空下一个玩玩吧。;)
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表