如何从双系统的Windows/Ubuntu切换到单系统的Ubuntu?

我有一台旧的Vista笔记本电脑,我对其进行了分区并安装了Ubuntu,实现了双系统启动。现在我决定完全切换到Ubuntu。如何最好地实现这一目标?

我的当前分区情况:

+-------+--------------------+---------------+------------------------------+
| WinRE | C: (dual bootable) | D:            | Extended                     |
|       |                    |               +-----------+------------------+
|       |                    |               + Ubuntu    | Swap             |
+-------+--------------------+---------------+-----------+------------------+

我想把这个改成:
+-------+-------------------------------------------------------------------+
| WinRE | Extended                                                          |
|       +------------------------------------------------+------------------+
|       | Ubuntu (bootable)                              | Swap             |
+-------+------------------------------------------------+------------------+

(我想保留Windows恢复分区,以防将来想出售笔记本电脑。)
(我不确定Ubuntu分区当前是否有引导加载程序。我也不想丢失我的Ubuntu安装/数据。(我很乐意完全删除Windows分区-我已经备份了所有内容)。)
(更新:检查了我的引导加载程序后,我已经删除了Windows分区,现在有了空闲空间。不幸的是,看起来我无法调整现有的/(根)分区大小,因为它已经挂载。我能绕过这个问题吗,还是必须重新安装?)

Windows恢复分区是什么? - Gaurav Butola
这基本上是Windows的恢复盘,但它存储在硬盘上。你可以启动进入它,它会重新格式化并重新安装Windows。 - stusmith
在对分区进行任何操作之前,请确保准确地查找Grub2的安装位置。您可以通过运行此脚本获取大部分信息:http://sourceforge.net/projects/bootinfoscript/。请发布结果,以便我们能够给出更精确的答案。 - Takkat
@user3940 - 好的,没问题。我会今晚检查并明天发布更多信息。 - stusmith
@stusmith: 我敢打赌你肯定备份了,对吧?;-) 你只能调整未挂载的分区大小。只需从光盘启动并运行GParted即可。 - Takkat
@user3940 - 关于未挂载的分区的观点是正确的。我从一个LiveCD启动,关闭了交换空间,然后成功地移动和调整了扩展和主分区的大小。在删除Windows分区之前,我还确保了grub的设置已完成。如果您愿意留下符合上述描述的答案,我会将其标记为被接受的答案。 - stusmith
6个回答

如果您需要扩展当前的分区,删除旧的Windows分区后的新空闲空间应该紧邻它们。此操作需要非常小心,否则可能会损坏整个系统。我的建议是删除Windows分区,并将其转换为EXT4分区,您可以从Ubuntu中使用它们来存储文件,如电影等。
为此,您需要使用一个名为GParted的实用工具。如果您尚未安装,请从软件中心安装它。当您启动GParted时,它会列出硬盘上的分区。它们将以\dev\sda1等形式表示。您可以通过文件系统和挂载点轻松区分Windows分区。
使用右键单击时出现的菜单删除Windows分区。

分区现在将被标记为未分配空间。再次右键单击并选择“新建”。选择您想要将其分区的格式,然后单击“应用所有操作”工具按钮。
如果您对GParted不熟悉,请阅读本教程

我确实看了一下gparted,但是:(a)我想要增加/的大小,因为它有点小,而且(b)引导加载程序实际上在"C:"驱动器上 - 所以如果我清除那个驱动器,我将无法启动。我猜我的问题的一部分是“如何在现有的/分区上安装一个合适的引导加载程序?它应该放在ext4位还是整体扩展位上?” - stusmith
别担心,Ubuntu在ext4文件系统上启动得很好,无论是在扩展分区上还是不在扩展分区上。 - Extender
@stusmith:你的担忧完全正确,见上文。/Grub2需要ext4文件系统。 - Takkat

在标准安装中,GRUB可能不位于Windows分区中,但最好先通过运行BootInfo脚本来检查这一点,以免在删除分区后导致无法启动的情况发生。
一旦您备份了所有重要数据,您可以从LiveCD启动并像之前提到的那样启动GParted。请注意,只有对未挂载的分区才能进行删除或调整大小。

4请注意,LiveCD会自动挂载交换分区,因此在移动它之前,您需要使用gparted进行'swapoff'(禁用交换分区)。 - stusmith

你的引导程序(GRUB2)实际上不在C盘,而是在/dev/sda。所以你可以继续使用从Live-CD启动的gparted删除Windows分区。确保Ubuntu能够正常启动。之后,再次从LiveCD启动,并通过gparted中的鼠标扩大你的Ubuntu /分区。

1@Extender:你现在还不确定Grub是否安装在/sda或其他地方。 - Takkat
我开启了心灵感应模式 :) 玩笑不说,GRUB 的另一个位置可能在哪里呢?如果 Ubuntu 是在 Windows 之后安装的,现在双系统启动正常吗?顺便说一下,我的笔记本电脑也有类似的配置。 - Extender
1@ Extender: 心灵感应模式 - 这个不错。很可能你对/sda是正确的,但如果不是呢?我见过一些非常奇怪的 grub 安装位置。在我看来,grub 的一个主要优点就是几乎可以安装在任何地方。在对分区进行更改之前最好再仔细检查一下事情;-) - Takkat
1你说得对。在Ubuntu会话下,他肯定要执行sudo grub-install /dev/sda命令。 - Extender
如何在LiveCD中删除分区? - Nathan Osman
不是从LiveCD上运行,而是“从LiveCD启动”。 - Extender

无论您使用哪种方法来完成这个任务,都存在丢失部分或全部数据的风险。我认为最不冒险的选择是首先进行备份(例如rsync),然后进行某种验证。然后执行全新安装,创建所需的分区。然后恢复您备份的数据。最后重新安装您所需的所有软件包(也许可以使用aptoncd;它应该在软件源中可用)。

关于备份:如果您在另一个外部磁盘上有一些额外的空间,最可靠的选择是在开始调整任何内容之前使用CloneZilla制作完整的磁盘映像。之后,您可以将NTFS分区重新格式化为ext4 / reiserfs / whatever,并通过编辑fstab(自动挂载)将其挂载为文件系统的一部分,或者使用gparted将现有安装扩展到空白空间中。拥有磁盘映像将使您放心;但制作一个需要大量的空间和时间。如果您移动任何分区,您将不得不重新安装GRUB(它需要跳转到的磁盘扇区已经移动)。要做到这一点,如上所述,请使用sudo install-grub /dev/<disk name>。如果我没记错的话,它应该会自动更新grub... 如果您不移动任何分区,只需重新启动到Ubuntu安装中,并运行sudo update-grub以使grub重新扫描您的磁盘以查找可引导的分区(删除Windows选项)。

不要把它弄得太复杂了。很简单...插入Ubuntu光盘然后重新启动。在安装过程中,选择删除并使用硬盘上的所有空间的选项。它会删除所有分区,重新格式化并安装。它会为您完成所有操作。当一切都完成后,它应该像新的一样工作,除非您选择进行额外的配置。

OP想保留他现有的数据和恢复分区,而不是清除驱动器。 - WindowsEscapist