介绍
帮b’5Y+2’同学,解决一个磁盘挂载的问题,故记录一下,方便学习
目的
事情是这样的,原本这台Linux上的/home目录不够用了,所以决定更换/home目录,也就是把其他盘挂载在/home上。但得做好数据迁移的工作。
流程
首先,使用
sudo fdisk -l
查看主机上有哪些硬盘,我们这里主要会涉及到两个,我们要做的就是把3.7T的sdb1挂载到/home上即可。1
2
3Device Start End Sectors Size Type
/dev/sda7 416980992 3750748159 3333767168 1.6T 83 Linux
/dev/sdb1 34 7814035215 7814035182 3.7T Linux filesystem使用
df -h
查看 磁盘信息,可以看到,sdb1已经被挂载到/data目录上了,我们使用sudo umount /data
把磁盘卸载掉1
/dev/sdb1 3.6T 1.3G 3.4T 1% /data
接着在创建一个目录/tmp/home,使用
sudo mount /dev/sdb1 /tmp/home
,这时候df -h
查看可以看到/dev/sdb1 已经被挂载到/tmp/home目录了1
/dev/sdb1 3.6T 1.3G 3.4T 1% /tmp/home
现在将原本/home的数据同步到/tmp/home,使用
sudo rsync -aXS /home/. /tmp/home/.
最后理论上应该要修改原本/home目录名字,然后挂载sdb1到/home即可。但是突然发现原本的/home已经是一个磁盘挂载了,是/dev/sda7的挂载,所以无法改名。尝试卸载/dev/sda7,无法卸载,因为有很多占用。所以这里决定大胆一点,直接修改系统的fstab,也就是管理系统启动时自动挂载磁盘的,再次开机就会自动把sdb1挂载到/home目录,sda7就先不管了。
查看fstab,可以看到原本的sdb1挂载在/data目录,sda7挂载在home目录
1
2
3
4# /data was on /dev/sdb1 during installation
/dev/sdb1 /data ext4 defaults 0 2
# /home was on /dev/sda7 during installation
UUID=ef7e9942-c6d3-467c-af71-2c2cec7cd752 /home ext4 defaults 0 2使用
blkid
查看磁盘uuid1
/dev/sdb1: UUID="7dc28a60-ec60-4d65-b2b8-e40c9414e1c3"
修改fstab,讲原本/data的挂载注释掉,将原本/home目录挂载的uuid修改为sdb1的uuid
1
2
3
4# /data was on /dev/sdb1 during installation
# /dev/sdb1 /data ext4 defaults 0 2
# /home was on /dev/sda7 during installation
UUID=7dc28a60-ec60-4d65-b2b8-e40c9414e1c3 /home ext4 defaults 0 2此时重启系统,理论上就会把我们已经同步好数据的sdb1挂载到/home目录上了,和原本没有任何区别。重启机器,成功!