温馨提示×

CentOS如何替换home目录

小樊
73
2026-07-09 07:42:44
栏目: 智能运维

在 CentOS 上“替换 /home 目录”常见有几种不同场景,下面按最常用、最安全的方式给你说明。你可以对照自己的需求选择。


一、把 /home 迁移到新磁盘(最常见)

场景

  • 新加了一块硬盘
  • 想把 /home 放到新磁盘上
  • 不影响系统其他目录

步骤(推荐做法)

1️⃣ 查看磁盘

lsblk
df -h

假设新磁盘是 /dev/sdb1


2️⃣ 格式化新分区(如未格式化)

mkfs.ext4 /dev/sdb1

3️⃣ 临时挂载新分区

mkdir /mnt/newhome
mount /dev/sdb1 /mnt/newhome

4️⃣ 复制原 /home 数据(保留权限)

rsync -avP /home/ /mnt/newhome/

⚠️ 建议用 rsync,不要用 cp -r


5️⃣ 备份并替换 /home

mv /home /home.bak
mkdir /home

6️⃣ 挂载新 /home

mount /dev/sdb1 /home

7️⃣ 设置开机自动挂载

blkid /dev/sdb1

复制 UUID,然后编辑:

vi /etc/fstab

添加:

UUID=xxxx-xxxx  /home  ext4  defaults  0 2

8️⃣ 验证

df -h /home
ls /home

确认无误后:

rm -rf /home.bak

这是生产环境最推荐方式


二、直接替换 /home 目录(不推荐)

rm -rf /home
cp -r /new/home /home

❌ 风险:

  • 会破坏用户权限
  • 可能导致无法登录
  • 不建议用于生产

三、仅替换某个用户的 home 目录

修改用户 home 目录位置

usermod -d /data/user1 -m user1
  • -d:新目录
  • -m:自动迁移数据

四、重建 /home(误删后)

mkdir /home
chmod 755 /home

然后重新创建用户或恢复数据。


五、SELinux 注意事项(CentOS 特有)

如果系统启用了 SELinux:

restorecon -Rv /home

否则可能导致 无法登录、SSH 失败


六、总结(推荐方案)

需求 推荐方式
新磁盘替换 /home ✅ rsync + 挂载
修改用户 home ✅ usermod
直接覆盖 ❌ 不推荐
生产环境 ✅ 必须备份

如果你愿意,可以把你的具体场景告诉我,例如:

  • 是否新加硬盘?
  • 是否 /home 满了?
  • 是否要保留用户数据?

我可以给你精确到命令级别的方案。

0