如何将Ubuntu 20.04新安装系统中的/home目录挂载至旧系统位于硬盘的/home分区
老哥,太懂你的心情了——重装要花十几个小时不说,还学不到真东西,咱们就用修改/etc/fstab的办法把旧硬盘上的/home分区挂回来,步骤我尽量讲得直白,跟着做就行,别怕那个“哈希标记提示符”!
第一步:先给关键文件做个备份,稳字当头
/etc/fstab是系统挂载分区的核心配置文件,改之前先存个备份,万一改出问题能立刻恢复:
sudo cp /etc/fstab /etc/fstab.bak
执行完这个命令就相当于给fstab拍了个快照,之后要是出岔子,用sudo cp /etc/fstab.bak /etc/fstab就能还原回去。
第二步:找到旧/home分区的唯一标识(UUID)
直接用/dev/sda2虽然也行,但系统重启后设备名偶尔会变,用UUID更稳。执行下面的命令:
sudo blkid
在输出里找/dev/sda2那一行,你会看到类似UUID="abc123-def456-ghi789"的内容,把这个UUID完整抄下来(带不带引号都行)。顺便确认一下这行里的TYPE="ext4",如果你的旧分区是其他文件系统,后面要对应修改。
第三步:处理当前新系统的/home目录
现在新系统的/home在SSD上,得先腾地方:
- 把当前的/home重命名为/home_old,留着备用:
sudo mv /home /home_old
- 创建一个空的/home目录当挂载点:
sudo mkdir /home
第四步:编辑fstab文件,添加旧分区的挂载规则
用新手友好的nano编辑器打开fstab:
sudo nano /etc/fstab
打开后往下翻到文件末尾,添加一行内容,把刚才抄的UUID替换进去:
UUID=你抄的那个UUID值 /home ext4 defaults 0 2
给你解释一下这行每个部分的意思:
UUID=xxx:指定要挂载的分区(用唯一标识,不会认错)/home:挂载点,就是旧分区要对应到系统里的哪个目录ext4:文件系统类型,和你刚才blkid里看到的TYPE一致defaults:默认挂载选项(允许读写、开机自动挂载等)0:是否用dump工具备份(0就是不备份,咱们不需要)2:开机时fsck检查的顺序(根分区是1,其他分区设2就行)
输完这行后,按Ctrl+O保存,再按Ctrl+X退出nano编辑器。
第五步:测试挂载,不用重启就能验证
执行下面的命令把旧/home分区挂到新的挂载点上:
sudo mount /home
如果没有弹出任何错误提示,就成功了!你可以打开文件管理器看看/home目录,里面应该就是你之前的照片、视频那些旧内容了。
可选:合并新系统的配置文件(如果需要)
新安装的系统里,/home_old里可能有一些新程序的配置文件,要是想把它们合并到旧/home里,可以用这个命令:
sudo rsync -a /home_old/ /home/
rsync -a会完整复制所有文件,包括权限和隐藏文件,不会覆盖旧文件(如果有重名的会提示,或者你可以加--ignore-existing参数跳过已有的文件)。确认所有需要的内容都移过去后,再删除/home_old:
sudo rm -rf /home_old
万一出问题的补救办法
要是重启后系统进不去,别慌:用Ubuntu安装U盘启动,选择“试用Ubuntu”,然后找到SSD上的根分区(就是你新安装系统的那个分区),挂载它之后,找到/etc/fstab,把我们之前备份的fstab.bak复制回去覆盖原文件,重启就能恢复到修改前的状态了。
备注:内容来源于stack exchange,提问作者Will Steward

