用新硬盘更换 - Ubuntu 20.04

用新硬盘更换 - Ubuntu 20.04

我双启动 Windows 10 和 Ubuntu 20.04。我的 Ubuntu 分区是 60GB,但空间不足。我正在尝试用更大的磁盘替换该磁盘,但我不想复制 Windows,而且我担心可能会丢失 Ubuntu 中的文件。做这个的最好方式是什么?

答案1

您要做的是将旧磁盘的映像制作到新磁盘上。您将需要一个可启动的 Live CD 或 USB 拇指驱动器(如果您的计算机可以从拇指驱动器启动),最好是 Ubuntu 20.04。如果您的 Windows 分区不是驱动器上的第一个分区(或者至少不是引导分区、UEFI 分区等之后的第一个分区),那么您还需要一张 Windows 安装磁盘。

  1. 备份所有重要文件,因为任何像这样的磁盘混乱都有可能丢失数据。

  2. 关闭计算机后,将新磁盘附加到系统。

  3. 从 Live CD 启动。

  4. 打开终端,然后输入ls /dev/sd?,这将列出您的系统识别的所有硬盘驱动器。您应该看到两个/dev/sda/dev/sdb。如果你看到其他什么,停止并在这里询问您需要做什么。

  5. 现在我们需要弄清楚哪个磁盘是旧磁盘,哪个磁盘是新磁盘。类型sudo fdisk /dev/sda。如果它抱怨无法找到 MBR 或分区表,那么这就是新磁盘。如果没有报错,则这是旧磁盘。如果这是旧磁盘,请键入p以获取该磁盘上所有分区的列表,并用手机拍照;我们稍后可能需要所有这些数字。无论哪种情况,请使用q退出 fdisk。

  6. 使用 重复步骤#5 sudo fdisk /dev/sdb,只是为了验证您是否以正确的方式获得了磁盘标识符。另外,如果/dev/sdb是旧磁盘,您需要拍摄分区列表的照片。

  7. 这是危险的一步,所以绝对确定您已在正确的位置放置了正确的设备节点。要实际制作图像,请输入sudo dd if=<old drive> of=<new drive> bs=4M status=progress

  8. 去喝杯咖啡什么的。这需要一段时间。

  9. 完成后dd,键入sudo fdisk <new drive>,然后使用p命令打印分区列表,并将其与您拍摄的旧驱动器分区列表的图片进行比较。如果所有数字都匹配,那么恭喜你,你就完成了!如果不是,则意味着新磁盘使用与旧磁盘不同的块大小,因此您将必须完全重新创建分区表。使用d命令将分区一一删除(这不会删除数据,只会删除分区信息),然后使用命令n使用照片中的数字一一重新创建分区,然后使用命令t更改每个分区分区的类型以匹配旧磁盘上的类型。之后,p再次使用该命令重新验证分区是否与照片匹配,并使用该w命令将更改写入磁盘。

  10. 关闭系统,取出旧磁盘,并将其放在一边妥善保管。

此时,您应该能够在 Windows 和 Linux 中启动到新磁盘。由于这是您旧硬盘驱动器的精确映像,因此一切都将完全相同,包括您的所有文件、设置、安装的软件等。当然,这也意味着您的 Linux 分区的大小将与以前相同,并且仍然会一样满。实际上能够使用您花费了很多精力才获得的额外空间,您将需要进行一些分区编辑。

再次从 Live CD 启动,然后打开 GParted。这是一个非常易于使用的程序,可让您移动分区并调整分区大小。只需选择一个分区,然后单击工具栏上的“调整大小/移动”按钮即可对其进行移动或调整大小。如果您改变主意,可以使用“撤消”按钮。一旦您按照您想要的方式获得了所有内容,请单击“应用”按钮以实际进行更改(单击“应用”后无法撤消)。但是,有一些问题需要注意:

如果您有单独的/boot分区,您可以根据需要移动主 Linux 分区并调整其大小。但是,如果不这样做,移动 Linux 分区的起始位置将(暂时)导致您无法启动 Linux。幸运的是,Ubuntu 附带了一个名为“boot-repair”的程序来修复此类问题。

  1. 启动至您的 Ubuntu Live CD(如果您尚未启动)。

  2. 使用以下三个命令安装 boot-repair(需要访问互联网):sudo add-apt-repository ppa:yannubuntu/boot-repair, sudo apt-get update,sudo apt-get install -y boot-repair

  3. 通过键入 运行启动修复sudo boot-repair,然后按照它提供的说明进行操作。它将为您提供有关系统的更多信息的链接;如果它不起作用,请给我们该链接。

Windows 也遇到了类似的问题;如果移动 Windows 分区的起始位置,它将无法启动。要修复此问题,请从 Windows CD 启动,进入命令行(不同版本之间获取命令行的具体细节差异很大,您只需环顾四周直到找到它),然后输入bootrec /fixmbr。请注意,这可能会禁用对 Linux 系统的访问,因此一旦 Windows 正常工作,您还需要按照上述步骤修复 Linux 启动。

相关内容