linux迁移/usr目录到新分区

今天帮助群里一个小伙伴解决服务器硬盘满的问题,分享下操作过程。如有错漏之处,麻烦留言指正。

创建新分区

这里使用fdisk命令创建新分区,也可以使用其他的分区工具,比如cfdiskparted

fdisk -l
fdisk /dev/sdb
# 依次输入下面的指令 #
n
p
1


w

格式化分区

这里使用ext4格式化分区,也可以使用其他的文件系统,比如xfsbtrfs

mkfs /dev/sdb1 -t ext4

挂载新分区

请注意,这里挂载的是分区,而不是设备

mkdir -p /mnt/newusr
mount -t ext4 /dev/sdb1 /mnt/newusr

复制文件到新分区

复制/usr下的文件到新的分区,这里不能直接用cp命令,因为/usr下有很多软链接,用cp命令会把软链接复制成普通文件,所以要用findcpio命令

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
文章作者: 若海; 原文链接: https://www.rehiy.com/post/504/; 转载需声明来自技术写真 - 若海

添加新评论