前段时间突然发现 Debian 的安装包的依赖关系出现了问题,今天有时间检查了一下,发现是因为 Debian 的稳定版升级了,从 etch 变成了 lenny。而系统还是 sarge, 而且其中的 source.list 中没有指定具体版本,只是用的 stable,于是就指向了最新的 lenny,导致有些旧的安装包的依赖关系被打破了。把 source.list 文件中的 stable 改为 etch,然后运行
aptitude update
aptitude upgrade
aptitude install initrd-tools
就解决了问题。
然后就顺手把 Debian 升级到了 etch:
aptitude install linux-image-2.6-686
aptitude dist-upgrade
aptitude update
重新启动,发现无法找到根分区。在网上搜了一下,是因为 linux 内核对硬盘分区的命名方式改变的原因。Debian 的帮助文件里给出了好几个解决方法。我用的方法是,用原来的 2.4 的内核启动,中间会有些错误提示,不管他,可以进入系统,然后修改 /etc/fstab 文件,把所有分区的名字由原来的 hdcX 改为 sdaX,这里 X 是从 0 开始的数字。然后重新启动。
然后再把 /etc/apt/source.list 中的 etch 改为 lenny,重新执行以下步骤:
aptitude update
aptitude upgrade
aptitude install initrd-tools
aptitude install linux-image-2.6-686
aptitude dist-upgrade
aptitude update
这样就把系统升级到了最新的稳定版 lenny 了。