Ubuntu上将/home挂载到新的磁盘上
有时候服务器更新,会插入一个新的大容量磁盘,这时候是希望将主要的用户系统都迁移到这块新磁盘上。有时候这块新磁盘上可能还保留有一部分资料,那么要怎么办?
例如,我们要把/home迁移到新的硬盘/dev/sdb1上。
1. 备份数据
为了避免迁移过程出现问题(断电、其他用户误操作之类的),最好要先进行备份
sudo cp -a /home /home.bak
2. 在新硬盘上创建新的home目录结构
假设其挂载点是/data(可能是空的也可能还有内容)
cd /data
sudo mkdir -p home
sudo chmod 755 home
3. 将/home内原本内容复制到新位置
这里最好用rsync保持权限和属性
sudo rsync -avx /home /data/home
4. 修改fstab配置文件
先备份,再向其中添加配置
sudo cp /etc/fstab /etc/fstab.bak
sudo vim /etc/fstab
在末尾添加一行
/dev/sdb1 /home ext4 defaults 0 2
5. 卸载当前home并挂载新的
这一步最好保证没有其他用户登陆,如果条件允许,可以进入单用户模式
sudo mv /home /home.old
sudo mkdir /home
sudo umount /dev/sdb1
sudo mount /dev/sdb1 /home
# verify
df -h /home
lsblk
注意,这样挂载完之后,可能新的/home里面没有当前设置的用户文件夹,需要手动创建一下或者写个sh文件从/home.old里面读用户列表。此外,./bashrc文件也需要从/home.old里面复制出来并重新source一下。