在新电脑上安装 Ubuntu,将现有硬盘与用户文件一起传输

在新电脑上安装 Ubuntu,将现有硬盘与用户文件一起传输

我即将购买一台新电脑。我当然会在上面安装 Ubuntu 16.04 :P

在我心中,我有以下迁移到新计算机的计划。我想了解这是否容易/合理:

我将购买一台带有 SSD 但没有传统硬盘的新电脑。我的想法是将 Ubuntu 安装在 SSD 上。但是,我还想安装旧电脑上的硬盘。

我们的想法是将 Ubuntu 系统文件放在 SSD 上,但也保留旧计算机硬盘上的所有内容(即用户文件),而无需进行复杂的复制/重新格式化过程。

我猜想可能会有一些非标准配置要做(例如在旧 HD 上安装“/home”)。

我以前安装过 Ubuntu,但只使用默认选项。我还应该说,现有硬盘是一个分区,有 ubuntu 系统文件以及 /home,但我想在完成安装后,我可以简单地从磁盘中删除旧的 Ubuntu 系统内容(...即除“/home”之外的所有内容?)。

实现这个目标有多容易?有什么陷阱需要注意吗?

答案1

首先确保您对所有重要文件进行了可靠的备份!

确保新系统上的用户 ID(UID/GID)与旧系统上的用户 ID 匹配,这样您就不必更改旧 /home 目录中所有文件的所有权(getent passwd <username>将为您提供信息)。在较新的 Ubuntu 系统中,新用户的 UID 将从 1000 开始。

由于旧的 /home 目录不是分区而是目录,因此您无法将旧分区(例如 /dev/sdb1)挂载到新的 /home 上并完成操作。但通过一些手动更正,这并不难。

假设在 SSD 上安装新的 Ubuntu 时旧磁盘已连接,一种可能的方法可能是:

假设新的 SDD 位于 /dev/sda 上,而旧磁盘位于 /dev/sdb 上。照常开始安装 Ubuntu(从 CD 或 USB),直到对磁盘进行分区。安装程序可能会告诉您已安装的分区;让它为您卸载它们。

在出现的对话框中选择“手动”以覆盖分区的默认设置。然后选择新磁盘(注意选择正确的磁盘;这里应该是 sda1,但您可以从磁盘大小确定)。如果还没有分区表,让安装程序创建一个。然后选择“可用空间”,然后选择“自动对可用空间进行分区”。现在您将在 /dev/sda 上获得两个新分区(/ 和 swap)。保持原样。

然后选择旧磁盘上数据所在的分区(通常是 sdb 上的主分区,ext4 格式)。在分区设置中,选择“用作”,然后选择磁盘上已有的文件系统(通常是 ext4)。

现在在分区设置中确保在选项“格式化分区:”否,保留现有数据" 被选中。否则您可能会丢失所有数据!

选择“挂载点”,在出现的对话框中选择“/home”。然后选择“完成分区设置”。您将返回到分区对话框;在这里您应该再次彻底控制分区。到目前为止,磁盘尚未执行任何操作。如果一切正常,请选择“完成分区并将更改写入磁盘”,然后再次控制建议的操作后,对“将更改写入磁盘?”选择“是”。这会影响你的磁盘,所以最好先检查一下!旧磁盘的分区一定不能被格式化!

在安装过程结束时,系统会询问您将引导加载程序安装到何处。选择您的 SSD (/dev/sda)。还会有一个 GRUB 菜单,让您选择并启动旧系统(只要它没有从磁盘中删除)。

完成安装过程并登录新系统后,您的旧“/”将被挂载到 /home,并且对于您创建的用户,将有一个新的子目录。此外,旧系统的所有目录都将作为子目录存在,而您的旧 /home 将作为 /home/home。现在只需sudo mv /home/home/<username> to /home/<username>(或者如果有多个用户,则sudo mv /home/home/* /home)即可完成。

如果您在安装过程中创建的默认用户与旧用户之一同名(因此主目录也同名),则此用户将无法执行此操作,因为已创建了一个同名的新用户目录。因此,最好使用不同的名称创建默认用户,并在移动用户主目录后更正此问题。我还假设您没有以系统目录(如 /bin、/tmp、/usr...)命名的用户,因为旧系统的这些目录仍存在于 /home 中。如果一切正常,您可以稍后(重新)移动它们。

这种方法还有一个问题:您将重用所有旧的用户配置(如 .cache、.config 等)。也许会出现一些奇怪的行为,尤其是在使用 GUI(如 unity、gnome 等)和新版本的软件时。

相关内容