系统经过几次kernel升级后,/boot下会有多个 kernel的文件,我的/boot本来就不大,因此可以将一些旧kernel卸载掉,以释放磁盘空间.
查看kernel的安装情况
方法如下:
dpkg --get-selections|grep linux
例如得到如下输出:
libselinux1
install
linux-headers-2.6.24-16 install
linux-headers-2.6.24-16-generic install
linux-headers-2.6.24-17 install
linux-headers-2.6.24-17-generic install
linux-headers-2.6.24-18 install
linux-headers-2.6.24-18-generic install
linux-headers-2.6.24-19 install
linux-headers-2.6.24-19-generic install
linux-headers-generic install
linux-image-2.6.24-16-generic deinstall
linux-image-2.6.24-17-generic deinstall
linux-image-2.6.24-18-generic install
linux-image-2.6.24-19-generic install
linux-libc-dev install
linux-restricted-modules-2.6.24-16-generic deinstall
linux-restricted-modules-2.6.24-17-generic deinstall
linux-restricted-modules-2.6.24-18-generic install
linux-restricted-modules-2.6.24-19-generic install
linux-restricted-modules-common install
linux-sound-base install
linux-ubuntu-modules-2.6.24-16-generic deinstall
linux-ubuntu-modules-2.6.24-17-generic deinstall
linux-ubuntu-modules-2.6.24-18-generic install
linux-ubuntu-modules-2.6.24-19-generic install
util-linux install
util-linux-locales install
其中,类似"linux-image-xxx-generic"的是我们主要关注的.
上面的例子显示:
linux-image-2.6.24-16-generic deinstall // 已卸载
linux-image-2.6.24-17-generic deinstall // 已卸载
linux-image-2.6.24-18-generic install // 已安装
linux-image-2.6.24-19-generic install // 已安装
sudo apt-get remove linux-image-xxx-generic
这个命令会:
sudo apt-get remove linux-image-2.6.24-18-generic
输出如下:
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
读取状态信息... 完成
下列软件包将被【卸载】:
linux-image-2.6.24-18-generic linux-restricted-modules-2.6.24-18-generic
linux-ubuntu-modules-2.6.24-18-generic
共升级了 0 个软件包,新安装了 0 个软件包,要卸载 3 个软件包,有 0 个软件未被升级。
操作完成后,会释放 126MB 的磁盘空间。
您希望继续执行吗?[Y/n]
选 Y,则将会卸载linux-image-2.6.24-18-generic, linux-restricted-modules-2.6.24-18-generic 和 linux-ubuntu-modules-2.6.24-18-generic,并将启动菜单的下列条目予以删除:
Ubuntu 8.04, kernel 2.6.24-18-generic
Ubuntu 8.04, kernel 2.6.24-18-generic (recovery mode)
需要注意的是,被卸载的某个kernel对应的启动菜单条目在进行卸载操作时必须存在,否则将导致dpkg程序崩溃错误.
更新menu.list
linux-headers-2.6.24-16 install
linux-headers-2.6.24-16-generic install
linux-headers-2.6.24-17 install
linux-headers-2.6.24-17-generic install
linux-headers-2.6.24-18 install
linux-headers-2.6.24-18-generic install
linux-headers-2.6.24-19 install
linux-headers-2.6.24-19-generic install
linux-headers-generic install
linux-image-2.6.24-16-generic deinstall
linux-image-2.6.24-17-generic deinstall
linux-image-2.6.24-18-generic install
linux-image-2.6.24-19-generic install
linux-libc-dev install
linux-restricted-modules-2.6.24-16-generic deinstall
linux-restricted-modules-2.6.24-17-generic deinstall
linux-restricted-modules-2.6.24-18-generic install
linux-restricted-modules-2.6.24-19-generic install
linux-restricted-modules-common install
linux-sound-base install
linux-ubuntu-modules-2.6.24-16-generic deinstall
linux-ubuntu-modules-2.6.24-17-generic deinstall
linux-ubuntu-modules-2.6.24-18-generic install
linux-ubuntu-modules-2.6.24-19-generic install
util-linux install
util-linux-locales install
其中,类似"linux-image-xxx-generic"的是我们主要关注的.
上面的例子显示:
linux-image-2.6.24-16-generic deinstall // 已卸载
linux-image-2.6.24-17-generic deinstall // 已卸载
linux-image-2.6.24-18-generic install // 已安装
linux-image-2.6.24-19-generic install // 已安装
卸载某个kernel
方法如下:sudo apt-get remove linux-image-xxx-generic
这个命令会:
- 除了卸载linux-image-xxx-generic外,还会卸载linux-restricted-modules-xxx-generic和linux-ubuntu-modules-xxx-generic,因此释放的磁盘空间不仅限于/boot
- 自动更新grub的启动菜单(就是开机时,你看到的启动菜单),把里面相应的条目予以删除
sudo apt-get remove linux-image-2.6.24-18-generic
输出如下:
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
读取状态信息... 完成
下列软件包将被【卸载】:
linux-image-2.6.24-18-generic linux-restricted-modules-2.6.24-18-generic
linux-ubuntu-modules-2.6.24-18-generic
共升级了 0 个软件包,新安装了 0 个软件包,要卸载 3 个软件包,有 0 个软件未被升级。
操作完成后,会释放 126MB 的磁盘空间。
您希望继续执行吗?[Y/n]
选 Y,则将会卸载linux-image-2.6.24-18-generic, linux-restricted-modules-2.6.24-18-generic 和 linux-ubuntu-modules-2.6.24-18-generic,并将启动菜单的下列条目予以删除:
Ubuntu 8.04, kernel 2.6.24-18-generic
Ubuntu 8.04, kernel 2.6.24-18-generic (recovery mode)
需要注意的是,被卸载的某个kernel对应的启动菜单条目在进行卸载操作时必须存在,否则将导致dpkg程序崩溃错误.
更新menu.list
sudo update-grub
我之前因为嫌启动菜单太长,手工注释了几个,结果就发生了此错误.此时,把那些注释掉的条目恢复后,再次sudo apt-get remove linux-image-xxx-generic,就可以了.