ubuntu16.04优化/boot分区空间

来源:互联网 发布:sqlserver删除列 编辑:程序博客网 时间:2024/05/24 06:46
解决boot分区空间不足问题:
出现场景:
有新的linux内核版本需要安装

问题原因:
可能大多数用户给boot分区的大小为200M,
且当前可能已经保留了多个linux内核,故再装新的linux内核时就空间不足略。

解决办法:
删除旧的linux内核,腾出空间安装新linux内核。
步骤:
1.先可了解boot分区使用情况。
使用"系统监视器"
或者
输入"df -h"命令
2.查看但前所有的linux内核版本。
输入命令"sudo apt-get autoremove linux-image-"接着按两下tab。
解释:linux内核文件名称是以"linux-image-"开头的,连按两下tab就会出现多选列表,即展示当前多有的linux内核版本。
或者使用"dpkg --get-selections | grep linux-image"命令,查看已安装的软件,管道grep过滤
3.查看当前使用的linux版本。
"uname -a"
4.卸载其他低版本(一般当前版本为最高版本,故只留一个最高版本,如果空间够你也可以留最高的两个版本保险)。
卸载命令(注意了解下面apt-get的三种卸载方式区别,推荐用第三种):
sudo apt-get remove 文件名称
sudo apt-get autoremove 文件名称

sudo apt-get purge 文件名称

可能会遇到一些问题,见下面实例

5.保险起见,最后执行命令:"sudo /usr/sbin/update-grub",更新grub启动文件。

6.再去看看boot分区空间,够够的略,可以继续安装新版本的linux内核略


实例一:

1.打开终端敲入如下命令,查看系统现有内核:

$ dpkg --get-selections |grep linux-imagelinux-image-4.8.0-46-generic            installlinux-image-4.8.0-49-generic            installlinux-image-extra-4.8.0-36-generic      deinstalllinux-image-extra-4.8.0-46-generic      installlinux-image-extra-4.8.0-49-generic      installlinux-image-generic-hwe-16.04           install
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

2.查看当前使用内核版本:

$ uname -aLinux yuanyuan-ubuntu 4.8.0-49-generic #52~16.04.1-Ubuntu SMP Thu Apr 20 10:55:59 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
  • 1
  • 2
  • 3
  • 4

3.删除不使用的旧内核:

sudo apt-get purge linux-image-4.8.0-46-generic
  • 1

4.清理/usr/src 文件

sudo rm -rf /usr/src/linux-headers-4.8.0-46*
  • 1

5.删除卸载不完全的文件

$ sudo apt-get autoremove$ dpkg --get-selections |grep linux-imagelinux-image-4.8.0-49-generic            installlinux-image-extra-4.8.0-36-generic      deinstalllinux-image-extra-4.8.0-49-generic      installlinux-image-generic-hwe-16.04           install
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

6.对于后面有提示 deinstall 的条目,可以通过如下命令删除:

$ sudo dpkg -P linux-image-extra-4.8.0-36-generic
实例二:

遇到ubuntu系统报如下警告

这里写图片描述 
这是系统更新内核导致的boot空间不足,可以尝试删除旧的内核。

1.查看已安装的linux-image各版本

dpkg --get-selections | grep linux-image

这里写图片描述

2.查看当前系统内核版本

uname -a

这里写图片描述

3.卸载旧的版本(uname -a 查到的是但前系统的版本)

sudo apt-get purge linux-image-4.4.0-72-generic

4.查看版本

dpkg --get-selections | grep linux-image

这里写图片描述 
已经没有linux-image-4.4.0-72-generic这个版本了 
/boot下也有空间了

5.其他

对于上图中被标为“deinstall”的linux-image-4.4.0-31-generic 
这是因为我之前用

sudo apt-get remove linux-image-4.4.0-31-generic

命令来删除,由于卸载不完全出现了残留。 
可以使用

sudo dpkg -P linux-image-4.4.0-31-generic

来完全清除

6.理论上,除正在用的其它的都可以卸载,但刚升级的东西可能不稳定,为保险起见,保留1-2个之前版本备用吧


执行过程中可能出现的错误以及解决办法

 这个依据个人实际情况而定,有的人按照上面的步骤就成功了。如果出现错误请继续往下看。

  1. 执行卸载命令sudo apt purge linux-image-4.4.0-66-generic时报错:

    正在读取软件包列表... 完成正在分析软件包的依赖关系树       正在读取状态信息... 完成       您可能需要运行“apt-get -f install”来纠正下列错误:下列软件包有未满足的依赖关系:linux-image-extra-4.4.0-66-generic : 依赖: linux-image-4.4.0-66-generic 但是它将不会被安装linux-image-extra-4.4.0-78-generic : 依赖: linux-image-4.4.0-78-generic 但是它将不会被安装linux-image-generic : 依赖: linux-image-4.4.0-78-generic 但是它将不会被安装E: 有未能满足的依赖关系。请尝试不指明软件包的名字来运行“apt-get -f install”(也可以指定一个解决办法)。
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    修复办法:

    错误提示很明显了,有的软件包缺少依赖关系,建议我们修复。 
    那我们就执行命令:sudo apt -f install

  2. 执行修复命令(sudo apt -f install)时报错:

     正在读取软件包列表... 完成正在分析软件包的依赖关系树       正在读取状态信息... 完成        .......gzip: stdout: No space left on deviceE: mkinitramfs failure find 141 cpio 141 gzip 1update-initramfs: failed for /boot/initrd.img-4.4.0-75-generic with 1.run-parts: /etc/kernel/postinst.d/initramfs-tools exited with return code 1dpkg: 处理软件包 linux-image-extra-4.4.0-75-generic (--configure)时出错: 子进程 已安装 post-installation 脚本 返回错误状态 1在处理时有错误发生: linux-image-extra-4.4.0-71-generic linux-image-extra-4.4.0-72-generic linux-image-extra-4.4.0-75-genericE: Sub-process /usr/bin/dpkg returned an error code (1)
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    解决办法:

    • gzip: stdout: No space left on device 这句话是说在/boot空间下没有足够的空间了。why???? 
      • 原因是这样:在修复的时候需要下载依赖包,然而在/boot下本来就没有多余的空间了,所以无法修复依赖的问题。
      • 这就产生死循环了,为了省出更多boot空间需要删除旧的内核,删除旧的内核时又需要修复一些依赖,修复依赖就需要下载依赖包,而boot空间下本来就满了,(⊙o⊙)…
      • 解决办法就是先把boot空间下几个比较大的文件暂存到别的文件夹,腾出来足够的空间来修复依赖,等依赖修复好了并且删除了旧的内核后再迁移回来(如果文件没什么用处就不用迁移回来了)。或者是接着删掉其他不用的文件,这样就腾出空间了,然后把刚才为删掉的文件再删了。
  3. 修复好了,再次执行卸载命令sudo apt purge linux-image-xxx,把没用的旧内核都删掉,一切都OK了。