问题
安装ubuntu系统时,采用手动分区:
1. /boot :一般分配1G,电脑空间大可以分配4G
2. / :分配150-200G,类似windows C盘,存放系统环境:如ROS,python等
3. swap : 交换空间,当系统内存不够用时,会使用swap空间,一般分配系统内存的1-2倍。如系统内存条是8G,则swap可以分配8G或者16G
4. home : 用于存放用户的功能包/代码,一般给300G(除了上述三个分区,剩余的空间都给home就可以)
但是,由于没有经验,只给了/boot 300M,导致系统空间不够用,无法安装其他环境,报错:Sub-process /usr/bin/dpkg returned an error code (1)
方法
一、通过清理更新的内核可以减少/boot分区的占用
1. 查看系统内核:
sudo dpkg --get-selections|grep linux-image
2. 确定自己现在使用的内核
sudo uname -a
3. 删除没用的内核
sudo apt-get purge ...如linux-image-4.8.0-56-generic linux-image-extra-4.8.0-56-generic
这里不要用sudo apt-get remove, 原因就是因为remove命令只会删除相应的文件,并不会删除相应的配置信息,要删除相应的配置信息,需要采用purge命令
4. 再次查看/boot分区使用情况
df -h 或 df -h /boot
二、使用上述方法确实可以减少/boot分区占用,但是并没有从根本上解决问题,接下来介绍给/boot分区扩容的方法
- 确定ubuntu系统装在了哪里(如果有2块硬盘),然后在windows系统下给ubuntu系统所在硬盘压缩卷,分出一部分未分配空间(1-5G就够用,我分了4G)。注意是给ubuntu系统所在硬盘压缩卷,而不动ubuntu系统分区,而且是ubuntu系统分区左右的一个空间压缩卷,得到一部分未分配的空间。
- 使用ubuntu 自带的disk软件查看/boot 分区配置,点击/boot分区下面小齿轮图标,选择Edit Mount Options,出现如下界面,并根据标注地方操作。
- 使用disk软件查看刚压缩卷得到的未分配空间,先点击这部分未分配空间的下面的三角形,让他变成方形,然后点击小齿轮图标,先选择Edit Partition,界面如下,并根据标注地方操作。
- 然后选择Edit Mount Options,出现如下界面,并根据标注地方操作。
- 把之前/boot下的内容全部拷贝到/media/xxx/xxx下面,/media/xxx/xxx具体路径可以通过Disk 软件看到,在disk点击那块未分配的空间,最下面有个Contents NTFS-Mounted at /media/xxx/xxx.
sudo cp -r /boot /media/xxx/xxx - reboot 开机重启,df -h 或者使用Disk 软件 发现/boot 已经挂在到新的空间中。