目录
一、报错信息Error:No space left on device
二、使用繁琐的挂载步骤
1、将新硬盘格式化为ext4格式
2、将新硬盘临时挂载在一个目录下(比如/mnt/home)
3、把home下的文件拷贝到新硬盘的临时目录下
4、将原来的home目录命名为home_old
5、取消挂载硬盘【5-7步骤是为了重新挂载硬盘到home目录下】
6、新建/home文件夹
7、重新挂载新硬盘到/home
8、查看/dev/sda4的UUID【8-10步骤是为了设置开机自动挂载】
9、修改/etc/fstab文件,实现开机自动挂载。
10、文件最后添加要挂载的UUID及操作选项,“:wq”保存修改并退出。
11、重启,df -h查看是否挂载成功
12、此时上述所有操作完成后,就可以直接把原来的/home_old文件夹删掉了。
三、gparted调整分区大小【不必需】
1、安装gparted
2、终端中启动图形化界面
3、移动磁盘顺序
今天在编译的过程中出现了“磁盘空间不足而无法完成编译”的问题,正常来说主机中一共有500G,但是目前通过df -h提示只有100G。
由于我的所有代码都下载在/home目录中,所以空间占用比较多。
报错信息详情:
Traceback (most recent call last):
File "/usr/lib/scons/SCons/dblite.py", line 143, in **del**
File "/usr/lib/scons/SCons/dblite.py", line 140, in close
File "/usr/lib/scons/SCons/dblite.py", line 148, in sync
OSError: [Errno 28] No space left on device
使用df -h提示仅仅使用了100G。
命令行sudo fdisk -l显示还有将近400G空间未使用。
我现在要做的就是把其余几个sda空间给home目录中。所以用的是最大的sda4。
之所以说使用繁琐的挂载步骤,是因为查了帖子看到大家有推荐用gparted图形化工具的,但是我目前比较常用的就是命令行格式,gparted主要用来调整sda分区的大小。
mkfs -t ext4 /dev/sda4
mkdir /mnt/home
mount /dev/sdb /mnt/home
cp -a /home/* /mnt/home/
此时就可以看出来,这个mnt目录中已经有需要的文件了。
也可以在这一步直接删掉原来的home目录,但是不推荐,可能会造成文件丢失。建议在完成第11步后再删除。
sudo mv /home /home_old
sudo umount /dev/sda4
sudo mkdir /home
sudo mount /dev/sda4 /home
这个时候就能看出根目录中已经存在了两个和home相关的目录里,其中一个home_old是原始的,home是新挂载在sda4上的。
UUID(硬盘通用唯一识别码)是为了指定分区可以确保唯一性。
sudo blkid
【如果之前存在自动挂载/home的内容,需要先删除这行内容】
sudo vi /etc/fstab
UUID=650f9fa8-a83b-4258-9829-8ff53f05a349 /home ext4 defaults 0 2
其中每个参数的说明:
第一列:设备名或者设备卷标名,(UUID或者/dev/sda4)
第二列:设备挂载目录 (例如上面的“/”或者“/home”)
第三列:设备文件系统 (例如上面的“ext4”或者“vfat”)
第四列:挂载参数
defaults 大多数系统使用defaults就可以满足需要。 为了安全起见,也可以指明其他挂载参数,例如:
第五列:指定分区是否被dump备份 (0代表不备份,1代表每天备份,2代表不定期备份,一般根分区要备份)
第六列:指明自检顺序。 (0为不自检,1或者2为要自检,如果是根分区要设为1,其他分区只能是2)
reboot
rm -rf /home/*
之所以想调整分区大小是为了留出来一个最大的空间给home,这样就省去了以后可能存在的空间不足等问题。gparted的图形化界面如下。
sudo apt-get install gparted
sudo gparted
如果使用gparted对空间进行重分配的话,如果unallocation的空间和需要扩容的磁盘不在一起的话,就需要使用“右键—resize”,Free Space Preceding设为0,而 Free Space following设为空闲区的大小,就可以完成后移动。