我双启动 Windows 10 和 Ubuntu 20.04。我的 Ubuntu 分区是 60GB,但空间不足。我正在尝试用更大的磁盘替换该磁盘,但我不想复制 Windows,而且我担心可能会丢失 Ubuntu 中的文件。做这个的最好方式是什么?
答案1
您要做的是将旧磁盘的映像制作到新磁盘上。您将需要一个可启动的 Live CD 或 USB 拇指驱动器(如果您的计算机可以从拇指驱动器启动),最好是 Ubuntu 20.04。如果您的 Windows 分区不是驱动器上的第一个分区(或者至少不是引导分区、UEFI 分区等之后的第一个分区),那么您还需要一张 Windows 安装磁盘。
备份所有重要文件,因为任何像这样的磁盘混乱都有可能丢失数据。
关闭计算机后,将新磁盘附加到系统。
从 Live CD 启动。
打开终端,然后输入
ls /dev/sd?
,这将列出您的系统识别的所有硬盘驱动器。您应该看到两个/dev/sda
和/dev/sdb
。如果你看到其他什么,停止并在这里询问您需要做什么。现在我们需要弄清楚哪个磁盘是旧磁盘,哪个磁盘是新磁盘。类型
sudo fdisk /dev/sda
。如果它抱怨无法找到 MBR 或分区表,那么这就是新磁盘。如果没有报错,则这是旧磁盘。如果这是旧磁盘,请键入p
以获取该磁盘上所有分区的列表,并用手机拍照;我们稍后可能需要所有这些数字。无论哪种情况,请使用q
退出 fdisk。使用 重复步骤#5
sudo fdisk /dev/sdb
,只是为了验证您是否以正确的方式获得了磁盘标识符。另外,如果/dev/sdb
是旧磁盘,您需要拍摄分区列表的照片。这是危险的一步,所以绝对确定您已在正确的位置放置了正确的设备节点。要实际制作图像,请输入
sudo dd if=<old drive> of=<new drive> bs=4M status=progress
。去喝杯咖啡什么的。这需要一段时间。
完成后
dd
,键入sudo fdisk <new drive>
,然后使用p
命令打印分区列表,并将其与您拍摄的旧驱动器分区列表的图片进行比较。如果所有数字都匹配,那么恭喜你,你就完成了!如果不是,则意味着新磁盘使用与旧磁盘不同的块大小,因此您将必须完全重新创建分区表。使用d
命令将分区一一删除(这不会删除数据,只会删除分区信息),然后使用命令n
使用照片中的数字一一重新创建分区,然后使用命令t
更改每个分区分区的类型以匹配旧磁盘上的类型。之后,p
再次使用该命令重新验证分区是否与照片匹配,并使用该w
命令将更改写入磁盘。关闭系统,取出旧磁盘,并将其放在一边妥善保管。
此时,您应该能够在 Windows 和 Linux 中启动到新磁盘。由于这是您旧硬盘驱动器的精确映像,因此一切都将完全相同,包括您的所有文件、设置、安装的软件等。当然,这也意味着您的 Linux 分区的大小将与以前相同,并且仍然会一样满。实际上能够使用您花费了很多精力才获得的额外空间,您将需要进行一些分区编辑。
再次从 Live CD 启动,然后打开 GParted。这是一个非常易于使用的程序,可让您移动分区并调整分区大小。只需选择一个分区,然后单击工具栏上的“调整大小/移动”按钮即可对其进行移动或调整大小。如果您改变主意,可以使用“撤消”按钮。一旦您按照您想要的方式获得了所有内容,请单击“应用”按钮以实际进行更改(单击“应用”后无法撤消)。但是,有一些问题需要注意:
如果您有单独的/boot
分区,您可以根据需要移动主 Linux 分区并调整其大小。但是,如果不这样做,移动 Linux 分区的起始位置将(暂时)导致您无法启动 Linux。幸运的是,Ubuntu 附带了一个名为“boot-repair”的程序来修复此类问题。
启动至您的 Ubuntu Live CD(如果您尚未启动)。
使用以下三个命令安装 boot-repair(需要访问互联网):
sudo add-apt-repository ppa:yannubuntu/boot-repair
,sudo apt-get update
,sudo apt-get install -y boot-repair
通过键入 运行启动修复
sudo boot-repair
,然后按照它提供的说明进行操作。它将为您提供有关系统的更多信息的链接;如果它不起作用,请给我们该链接。
Windows 也遇到了类似的问题;如果移动 Windows 分区的起始位置,它将无法启动。要修复此问题,请从 Windows CD 启动,进入命令行(不同版本之间获取命令行的具体细节差异很大,您只需环顾四周直到找到它),然后输入bootrec /fixmbr
。请注意,这可能会禁用对 Linux 系统的访问,因此一旦 Windows 正常工作,您还需要按照上述步骤修复 Linux 启动。