- 确定可用空间:首先,通过执行以下命令来查看系统中可用的磁盘空间,最好可以新开一块空间。
df -h
补充:
如何新开:
1 在虚拟机分配完内存后,使用Gparted(不懂用法的百度一下)
2 分出一块未使用空间,怎么分?你选择一个有空闲空间的块(白色部分),然后单击右键选择[更改大小/移动] ,就可以得到一块未使用空间(灰色部分)
3 单击未使用空间,再单击右键,新建分区,就可以获得一个新分区(看你自己需要 尽量分大一点 ,本次演示就随便分配大小)。记得点绿色√确认。Ok,你现在有了新分区了,接着上面的 扩容部分 讲。
-
创建新的分区:如果有可用的空间,你可以使用工具如fdisk或parted来创建一个新的分区。以下是使用fdisk工具的步骤(这里的/dev/sdX换成你自己的空闲分区路径):
a. 运行fdisk命令:
sudo fdisk /dev/sdX
将"/dev/sdX"替换为你要进行分区的磁盘设备。b. 输入 n来创建一个新分区。
c. 选择分区类型,一般选择主分区(primary)。
d. 设置分区的起始扇区和结束扇区。如果你想使用整个可用空间,可以直接按回车键。
e. 输入 w保存分区表并退出。
格式化新分区:使用mkfs命令对新分区进行格式化。例如,如果新分区是/dev/sdX1,则可以使用以下命令进行ext4格式化:
sudo mkfs.ext4 /dev/sdX1
-
挂载新分区:创建一个目录作为新分区的挂载点,然后将新分区挂载到该目录。例如,假设你创建了目录/home2作为挂载点,并将新分区/dev/sdX1挂载到该目录:
sudo mkdir /home2
sudo mount /dev/sdX1 /home2 -
数据迁移:将/home目录中的数据迁移到新的分区。可以使用 rsync命令来复制数据,并确保保留权限和属性:
sudo rsync -avx /home/ /home2/
-
更新/etc/fstab文件:将新分区的挂载信息添加到/etc/fstab文件中,以便系统在引导时自动挂载新分区:
sudo vi /etc/fstab
在文件末尾添加以下行:/dev/sdX1 /home2 ext4 defaults 0 0
7.卸载并删除旧的/home目录:在确认数据已经迁移成功后,可以卸载旧的/home目录并删除它:
sudo umount /home
sudo rm -r /home
注意:如果这步你出现了无法删除home目录,那很正常,因为有进程在home目录下运行。那请你略过下面一步。从第6步开始做,下面看:新6
- 挂载新的/home目录:重新挂载新的/home目录:
sudo mount -a
新6. 一样的做完第5步的数据迁移,确保迁移成功了。(如何确保:1迁移过程中不要打断 2 查看home2目录下是否有你home下一模一样的文件了)。开机重启,以root用户登录进入,删除home目录下所有内容。
sudo vi /etc/fstab
在文件末尾添加以下行:
/dev/sdX1 /home ext4 defaults 0 0 (/dev/sdX1用你自己的分区替换)
删除原有的 home挂载,即删除:
/dev/mapper/centos-home /home xfs defaults 0 0
这一行 然后保存
新 7. 将之前挂载在home2的分区挂到你已经清空的home下。(因为之前你已经迁移过数据,所以挂载完成后 cd home目录应该是完整的数据)
sudo mount /dev/sdX1 /home
新8. 现在删除home2目录 重启 你就扩容完成了,通过df -h 你就可以看到,你自己的分区挂载到home下 而不是以前的/dev/mapper/centos-home /home 分区了
注意:确保每一步正确,如果出错了检查每一步
问题:
1重启后密码正确,用户登录不了?
解决:1 大概率是你挂载失败了,用户数据没到home目录,此时应该换用root用户登录
2可能是你关机方式不对,系统开启保护了(概率很低)
2 无法删除home目录?
上面已经提到,是进程占用,确保cd home 后 ls -l 没有内容即可。