ubuntu系统中Error:No space left on device,解决办法:挂载大容量sda分区

目录

一、报错信息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、移动磁盘顺序


一、报错信息Error:No space left on device

今天在编译的过程中出现了“磁盘空间不足而无法完成编译”的问题,正常来说主机中一共有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空间未使用。

ubuntu系统中Error:No space left on device,解决办法:挂载大容量sda分区_第1张图片

我现在要做的就是把其余几个sda空间给home目录中。所以用的是最大的sda4

二、使用繁琐的挂载步骤

之所以说使用繁琐的挂载步骤,是因为查了帖子看到大家有推荐用gparted图形化工具的,但是我目前比较常用的就是命令行格式,gparted主要用来调整sda分区的大小。

1、将新硬盘格式化为ext4格式

mkfs -t ext4 /dev/sda4

2、将新硬盘临时挂载在一个目录下(比如/mnt/home)

mkdir /mnt/home
mount /dev/sdb /mnt/home

3、把home下的文件拷贝到新硬盘的临时目录下

cp -a /home/* /mnt/home/

此时就可以看出来,这个mnt目录中已经有需要的文件了。

ubuntu系统中Error:No space left on device,解决办法:挂载大容量sda分区_第2张图片

4、将原来的home目录命名为home_old

也可以在这一步直接删掉原来的home目录,但是不推荐,可能会造成文件丢失。建议在完成第11步后再删除。

sudo mv /home /home_old

5、取消挂载硬盘【5-7步骤是为了重新挂载硬盘到home目录下】

sudo umount /dev/sda4

6、新建/home文件夹

sudo mkdir /home

7、重新挂载新硬盘到/home

sudo mount /dev/sda4 /home

这个时候就能看出根目录中已经存在了两个和home相关的目录里,其中一个home_old是原始的,home是新挂载在sda4上的。

8、查看/dev/sda4的UUID【8-10步骤是为了设置开机自动挂载】

UUID(硬盘通用唯一识别码)是为了指定分区可以确保唯一性。

sudo blkid

ubuntu系统中Error:No space left on device,解决办法:挂载大容量sda分区_第3张图片

9、修改/etc/fstab文件,实现开机自动挂载。

【如果之前存在自动挂载/home的内容,需要先删除这行内容】

sudo vi /etc/fstab

10、文件最后添加要挂载的UUID及操作选项,“:wq”保存修改并退出。

UUID=650f9fa8-a83b-4258-9829-8ff53f05a349 /home ext4 defaults 0 2

其中每个参数的说明:

  • 第一列:设备名或者设备卷标名,(UUID或者/dev/sda4)

  • 第二列:设备挂载目录 (例如上面的“/”或者“/home”)

  • 第三列:设备文件系统 (例如上面的“ext4”或者“vfat”)

  • 第四列:挂载参数

    defaults 大多数系统使用defaults就可以满足需要。 为了安全起见,也可以指明其他挂载参数,例如:

    • noexec(不允许可执行文件可执行,但千万不要把根分区挂为noexec,那就无法使用系统了,连mount 命令都无法使用了,这时只有重新做系统了!
    • nodev(不允许挂载设备文件)
    • nosuid,nosgid(不允许有suid和sgid属性)
    • nouser(不允许普通用户挂载)
  • 第五列:指定分区是否被dump备份 (0代表不备份,1代表每天备份,2代表不定期备份,一般根分区要备份)

  • 第六列:指明自检顺序。 (0为不自检,1或者2为要自检,如果是根分区要设为1,其他分区只能是2)

11、重启,df -h查看是否挂载成功

reboot

ubuntu系统中Error:No space left on device,解决办法:挂载大容量sda分区_第4张图片

12、此时上述所有操作完成后,就可以直接把原来的/home_old文件夹删掉了。

rm -rf /home/* 

三、gparted调整分区大小【不必需】

之所以想调整分区大小是为了留出来一个最大的空间给home,这样就省去了以后可能存在的空间不足等问题。gparted的图形化界面如下。ubuntu系统中Error:No space left on device,解决办法:挂载大容量sda分区_第5张图片

1、安装gparted

sudo apt-get install gparted

2、终端中启动图形化界面

sudo gparted

3、移动磁盘顺序

如果使用gparted对空间进行重分配的话,如果unallocation的空间和需要扩容的磁盘不在一起的话,就需要使用“右键—resize”,Free Space Preceding设为0,而 Free Space following设为空闲区的大小,就可以完成后移动。

你可能感兴趣的:(linux系统,工程技巧积累,ubuntu,数据库,linux)