linux迁移/usr目录到新分区
今天帮助群里一个小伙伴解决服务器硬盘满的问题,分享下操作过程。如有错漏之处,麻烦留言指正。
创建新分区
这里使用fdisk
命令创建新分区,也可以使用其他的分区工具,比如cfdisk
、parted
等
fdisk -l
fdisk /dev/sdb
# 依次输入下面的指令 #
n
p
1
w
格式化分区
这里使用ext4
格式化分区,也可以使用其他的文件系统,比如xfs
、btrfs
等
mkfs /dev/sdb1 -t ext4
挂载新分区
请注意,这里挂载的是分区,而不是设备
mkdir -p /mnt/newusr
mount -t ext4 /dev/sdb1 /mnt/newusr
复制文件到新分区
复制/usr
下的文件到新的分区,这里不能直接用cp
命令,因为/usr
下有很多软链接,用cp
命令会把软链接复制成普通文件,所以要用find
和cpio
命令
cd /usr/
find . -depth -print0 | cpio --null --sprse -pvd /mnt/newusr
切换到新分区
umount /mnt/newusr
mv /usr /old_usr
/old_usr/bin/mkdir /usr
/old_usr/bin/mount /dev/sdb1 /usr
启动时自动挂载
修改/etc/fstab
文件,添加下面的内容,告诉系统启动时mount
新的分区
vim /etc/fstab
/dev/sdb1 /usr ext4 defaults 0 1
重启系统
一切正常的话,就可以删除旧的/usr
目录了
rm -rf /old_usr