@TOC 此教程是非严谨教程,综合了网上的两种解决方案,因为我对Linux研究的不深,花了半天的时候才搞定,不想让你们也浪费时间,具体原理没有深入研究,能解决问题就行,看到此教程,你应该不需要看别的教程了。
系统简介
我的UOS是通过win10一键安装的,即win10+UOS双系统,系统信息如下 一直提示系统磁盘空间不足,可以通过此命令查看磁盘的使用率,结果如下图:
df -lh
当/dev/loop0的 可用空间不足的时候就会提示系统磁盘空间不足
通过扩容root.disk可以解决此问题
1.进入root账户。先在安装UOS系统的磁盘,选择用管理员身份打开,然后在新窗口,选择在终端中打开,即可进入root账户的终端
2.查看root.disk的位置。我网上查了很多,都跟我的位置不一样,但是命令是一样,结果如下图:
losetup
3.进入到root.disk所在的目录,并查看root.disk文件信息:
cd /host/uniontech/UOS/vdisk/
file ./root.disk
发现其实这就是一个ext4镜像,那么问题就变得简单了,只要扩展这个镜像文件大小就可以了,用 resize2fs 来调整分区大小,由于原来文件只有20G,使用这个命令会同时扩展这个文件的大小,所以确保root.disk所在分区有足够的空间用于扩容。我扩了2次,每次50G,
sudo resize2fs ./root.disk 50G
此时,再执行以下命令,就可以看到/dev/loop0 的总空间就会变大了,:
df -lh
4.如果没有变大,按照下面的步骤去操作:
1.执行此命令,扩大root.disk这个文件
dd if=/dev/zero of=root.disk bs=1G conv=notrunc oflag=append count=50
这里if 是输入设备,/dev/zero是空设备,表示凭空增加
of 是输出设备,输入我们的虚拟磁盘文件名
bs是单位 1G
conv 表示不转换
oflag=append表示在文件屁股后面增加
count =50 增加50G;
2. 执行此命令,扩大loop0分区
sudo losetup -c /dev/loop0
扩大了文件之后,如果计算机里显示的系统盘容量并没有变化,可以执行此命令:
sudo losetup -c /dev/loop0
再看容量就变了,但是此时还是不停的报容量不够, 再执行此命令:
sudo resize2fs –p /dev/loop0 50G
就好了,这里要输入分区的容量,如果输入大了,会出现You requested a new size of xxx blocks 字样,这就是失败了,缩小容量数字。 出现 the filesystem on /dev/loop0 is now xxx blocks long 就表示成功了到这里我们的扩容就完成了,UOS这里不是很友好,这个工作门槛有点高。
3.通过两种方法如果还不行,就再执行第3大步的命令就可以了,前提是确保还在root.disk文件所在的目录
sudo resize2fs ./root.disk 50G