Ubuntu 8.04 下删除旧内核
出现的问题:最新一次升级后,发现无法打开“新立得”。出现错误提示为:dpkg was interrupted. 需要输入”dpkg –configure -a”来重新配置。但是当输入上述语句后,提示没有足够空间。。
df一看,发现100MB空间的/boot占用率100%。旧的内核一直没有删除,有2.6.24-16,19,20,21以及最新的22。
于是GOOGLE找出删除内核的办法:
- 实现uname -a 可以查看当前系统使用的内核
- 然后删除某个内核用:sudo apt-get remove linux-image-2.6.15-16
- 依次实行上述命令行删除其它的内核,空间就会被释放出来。
- 再执行sudo update-grub,这样/boot/grub/menu.lst的启动选项中,就不会再有旧内核的选项了
- 还有一个最简洁的命令行:sudo aptitude purge ~ilinux-image-.*\(\!`uname -r`\),这个可以自动删除除了最新内核外其它所有的旧内核,非常强大。
- 另外还有一个办法就是在“新立得”里查找linux来删除
不过,我的问题不是上面这么简单解决的,因为/boot空间是100%使用,所以最近一次升级中没有正常完成,造成dpkg interrupted。所以不管是执行sudo apt-get remove linux-image-2.6.15-16,还是执行sudo aptitude purge ~ilinux-image-.*\(\!`uname -r`\),都会提示dpkg was interrupted,需要重新configure一次。但是有趣又无奈的地方就在这里,因为空间已经满了,所以执行dpkg –configure -a就无法进行。
最后没有办法,只好使用另外一种方法:
先把/boot下的所有除了最新内核22以外的旧内核16,19,20,21的文件全部移到另外一个目录下。这样/boot空间就释放出来了。如果再执行sudo update-grub,启动选项中就不会再有旧内核,旧内核所占/boot的空间也被释放了(旧内核所占其它的空间不会被释放),而且旧内核还是存在于磁盘上,当需要它们的时候,还可以再把这些文件重新复制回/boot目录下。
因为我想把所有的旧内核都彻底删除掉。所以先把20,21的文件移除到别的地方,腾出来一些空间,以便于执行”dpkg –configure -a”。执行完毕后,使用命令行“sudo aptitude purge ~ilinux-image-.*\(\!`uname -r`\)”,自动删除所有旧内核。
有个小问题是,因为我先把/boot下的20,21文件挪到另外一个目录,虽然最后这些文件可以手动删除,但是不知道内核20,21的其它文件有没有被删除掉。。
