linux下如何迁移home目录
sda2磁盘的东西太多爆满了,打算把home目录迁走。
网上查了好多都有问题,自己详细记录一下。如有不对欢迎批评指正。
-
具体情况:
环境:Ubuntu16.4
根目录:/dev/sda2
目标目录:/dev/sdb8
任务:把根目录上的home目录迁移到目标目录上 -
具体操作:
- 把/dev/sdb8 挂在到 /mnt 上
sudo mount /dev/sdb8 /mnt
- 进入想迁移的home目录,把家目录中的文件全部复制到 /dev/sda8 上
rsync -av /home/* /mnt/
# 或者(推荐第一种)
cp -aR /home/* /mnt/
- 可以比较下拷过去的是否齐全。(也可掠过)
diff -r /home /mnt
- 查看 /dev/sdb8 分区的UUID
sudo blkid /dev/sdb8
复制下来。
- 修改 /dev/sda2 的 /etc/fstab ,以改变系统挂载点。
sudo mkdir /mnt/root/ #在/mnt下创建一个根目录的挂载点
sudo mount /dev/sda2 /mnt/root #把sda2挂载上去
cd /mnt/root/etc/
gedit fstab # 修改挂载点
/etc/fstab 这个文件大概这样:
# /etc/fstab: static file system information.
# # Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
# # <file system> <mount point> <type> <options> <dump> <pass>
# / was on /dev/sda2 during installation
UUID=1d1398af-e518-436b-a716-8ac2d60f7ba3 / xfs errors=remount-ro 0 1
# /home was on /dev/sda8 during installation
UUID=1d1398af-e518-436b-a716-8ac2d60f7ba3 /home ext4 defaults 0 0
/swapfile
0 0
也有可能没有这两行:
#/home was on /dev/sda8 during installation
UUID=1d1398af-e518-436b-a716-8ac2d60f7ba3 /home ext4
没有的话,按它的格式添加上就行。把刚才复制的sdb8的uuid和原来的替换了(可以把原来的注释掉就行以备份)。
- 保存,退出。重启电脑reboot,如果重启成功后,查看一下/home过去没
查看命令:
df -h
- 此时可以看到sdb8已经有/home了,但sda2还是空间没变,说明home还在。两个home。所以要把根目录底下那个家目录删掉 。但原来根下的home还在但被隐藏了,所以要找出来删掉。
ctrl+alt+F1切换到无图像界面。
先把/dev/sdb8取下来:
sudo umount /dev/sdb8
这样隐藏在根目录下的原来的home就能找到了。因为现在剩下的就是它。
cd /home
rm -rf /home
此时,ctrl+alt+F7切回图形界面。
再 df -h 就可以看到迁移成功啦!