在 CentOS 上“替换 /home 目录”常见有几种不同场景,下面按最常用、最安全的方式给你说明。你可以对照自己的需求选择。
/home 迁移到新磁盘(最常见)/home 放到新磁盘上lsblk
df -h
假设新磁盘是 /dev/sdb1
mkfs.ext4 /dev/sdb1
mkdir /mnt/newhome
mount /dev/sdb1 /mnt/newhome
/home 数据(保留权限)rsync -avP /home/ /mnt/newhome/
⚠️ 建议用
rsync,不要用cp -r
/homemv /home /home.bak
mkdir /home
/homemount /dev/sdb1 /home
blkid /dev/sdb1
复制 UUID,然后编辑:
vi /etc/fstab
添加:
UUID=xxxx-xxxx /home ext4 defaults 0 2
df -h /home
ls /home
确认无误后:
rm -rf /home.bak
✅ 这是生产环境最推荐方式
/home 目录(不推荐)rm -rf /home
cp -r /new/home /home
❌ 风险:
usermod -d /data/user1 -m user1
-d:新目录-m:自动迁移数据/home(误删后)mkdir /home
chmod 755 /home
然后重新创建用户或恢复数据。
如果系统启用了 SELinux:
restorecon -Rv /home
否则可能导致 无法登录、SSH 失败
| 需求 | 推荐方式 |
|---|---|
新磁盘替换 /home |
✅ rsync + 挂载 |
| 修改用户 home | ✅ usermod |
| 直接覆盖 | ❌ 不推荐 |
| 生产环境 | ✅ 必须备份 |
如果你愿意,可以把你的具体场景告诉我,例如:
/home 满了?我可以给你精确到命令级别的方案。