我刚刚在 Dell Inspiron 5567 上安装了 Ubuntu 16.04(旧版)和 Windows 10(UEFI 版)。一切运行正常。
我已将其设置为 Ubuntu 首先启动。Windows 可以从 BIOS 启动。我可以从 Ubuntu 访问 Windows 文件。
在 GParted 上,GRUB 出现在 Windows 和 Ubuntu 之间,但它不会在计算机启动时出现。这不是什么大问题,因为我认为我不需要它。
我想扩展 Ubuntu 的分区。问题是我的可用空间位于一侧的 Windows 分区与另一侧的 GRUB 和 Ubuntu 分区之间。
- 我还需要 GRUB 吗?还是我可以直接删除它?
- 我可以将 Ubuntu 分区扩展到 GRUB 上的可用空间吗?
答案1
我刚刚在 Dell Inspiron 5567 上安装了 Ubuntu 16.04(旧版)和 Windows 10(UEFI 版)。一切运行正常。
这种混合模式配置充其量只是次优的。您显然已经让它工作了,但您应该知道还有更简单的方法可以做到这一点。您可能需要考虑切换到其中一种作为解决问题的一部分。有关此主题的一些一般信息,请参阅我在 CSM 上的网页。
我已安排好让 Ubuntu 首先启动。Windows 可以从 BIOS 启动。
从技术上讲,你没有 BIOS;你有一个可扩展固件接口 (EFI)。您所说的“BIOS”最好一般地称为“启动管理器”,或者具体地说是 EFI 的内置启动管理器;但在在线论坛中,术语基本输入/输出系统 (BIOS)经常与术语同义使用固件,这实际上是一个更通用的术语。也就是说,BIOS 和 EFI(或其 2.x 版本变体 UEFI)是两种不同类型的固件。大多数 EFI 和大多数现代 BIOS 提供的一个功能是内置启动管理器;但这是一个特征固件,而不是 BIOS、EFI 或固件本身。不幸的是,许多制造商通过将其 EFI 称为“BIOS”或“UEFI BIOS”来混淆视听。
请注意,我并不是想在这里吹毛求疵或挑剔;我只是想说清楚。我从你的问题中推断出,你对各种组件以及它们如何组合在一起的心理模型并不完整,但更完整的模型将帮助你驾驭这些水域。
在 GParted 上,GRUB 出现在 Windows 和 Ubuntu 之间,但它不会在计算机启动时出现。这不是什么大问题,因为我认为我不需要它。
通过“GRUB”(或后面的引用,使用“它”这个词),你指的是至少三个不同但相关的东西:
- 这BIOS 启动分区,GParted 通过
bios_grub
标志来识别。 - GRUB 2 引导加载程序菜单,您在启动计算机时会看到它。
- GRUB 2 引导加载程序代码,将 Linux 内核加载到内存中并执行。
GRUB 2 是一个引导加载程序,这是一个将操作系统内核加载到内存并执行的程序。GRUB 2 还提供了启动管理器功能,这意味着它会提供一个引导选项菜单。这两种类型的程序是截然不同的;一个程序可以是引导加载程序,但不能是引导管理器,反之亦然。但是,GRUB 2 在一个程序中提供了这两种功能。也就是说,如果 Ubuntu 是计算机上安装的唯一操作系统,或者配置 GRUB 的脚本无法识别其他可引导的操作系统,则 GRUB 将配置为不显示引导菜单 - 也就是说,GRUB 将作为引导加载程序运行,而不是作为引导管理器运行。但是,重要的是要了解,即使您从未看到它的菜单,GRUB 仍在运行,并且仍在执行引导计算机的关键任务。
根据启动方式(BIOS 还是 EFI)和其他因素,GRUB 可以驻留在硬盘上的几个不同位置。在从 GPT 磁盘(您拥有的磁盘)进行 BIOS 模式启动时,GRUB 将分散在不同位置,一其中位于 BIOS 启动分区中。因此,删除 BIOS 启动分区将导致 Ubuntu 无法启动,直到问题解决为止。此外,移动BIOS 启动分区将导致计算机无法启动。因此,如果我理解你的情况正确的话,你做需要计算机上的 BIOS 启动分区 — — 至少在其当前配置中。
我想扩展 Ubuntu 的分区。问题是我的可用空间位于一侧的 Windows 分区与另一侧的 GRUB 和 Ubuntu 分区之间。
如果我理解正确的话,您的分区布局如下所示:
+-----------+-------+----------+
| Windows | BBP | Ubuntu |
+-----------+-------+----------+
您想要扩展 Ubuntu 分区并缩小 Windows 分区。 如果是这样,您有以下几种选择:
- 缩小 Windows 分区,在释放的空间中创建一个新分区,并将其作为单独的文件系统添加到 Ubuntu 中——可能挂载在
/var
或/home
。这可能涉及移动一些文件从旧位置移至新位置。详细信息将取决于所涉及的具体大小。请参阅这个问题和答案了解有关此方法的更多信息。 - 调整 Windows 分区的大小,移动(或删除并重新创建)BIOS 启动分区,调整 Ubuntu 分区的大小,然后重新安装 GRUB。最后一步需要使用 Ubuntu 紧急启动磁盘在 BIOS 模式下。像这样的工具引导修复可能会有帮助。
- 删除 BIOS 启动分区,调整分区大小,然后为 Linux 安装 EFI 模式启动加载程序。有两种方法最容易处理:
- 由于您说您的 Ubuntu 安装是新的,因此在缩小 Windows 分区后,您可能需要考虑将其完全删除,然后使用更大的分区大小从头开始重新安装。
如果你使用以下方式安装 Ubuntu,则可能还有其他选项逻辑卷管理 (LVM)系统。
请注意,第二个或第三个选项都需要从起始点调整 Ubuntu 分区的大小,这比从结束点调整分区大小更耗时且风险更大。因此,第一个选项可能更安全、更快捷;但此时将 Ubuntu 安装拆分为多个分区可能会很麻烦,具体取决于所涉及的大小。
如果您“咬紧牙关”进行调整大小操作,我建议您使用 EFI 模式引导加载程序,因为从长远来看,这可能不那么尴尬和混乱。如果您选择从头开始重新安装 Ubuntu,也是如此。
答案2
如果没有引导加载程序,则无法启动 Ubuntu,而默认情况下,引导加载程序是 Grub。您可以使用其他兼容的引导加载程序,但这似乎不是您的目的。
这与 Grub 的双启动功能无关。
引导加载程序最多占用几兆字节的空间。
$ du -sh /boot/grub 7.2M /boot/grub
如果 ±50 MB 对您来说很重要,您应该寻找比 Ubuntu 更精简的 Linux 发行版。这个选择的影响远大于引导加载程序优化。
我不知道您如何对 Ubuntu 安装进行分区,但可以缩小包含根文件系统的分区
/boot
或将其与包含根文件系统的分区合并( )。如果您执行后者,/
请不要忘记调整和更新/修复 Grub!/etc/fstab
请注意,
/boot
除了引导加载程序(部分)之外还包含其他内容,最突出的是一个或多个Linux 内核图片。
答案3
GRUB 太小了,我不知道您是否会恢复多少空间来扩展 Ubuntu 分区。但是.....更安全的方法是将 grub 分区挂载点重命名为类似以下内容的名称:
sudo mv /boot/grub /boot/grub.BAK
您的解释听起来不太清楚。如果您的机器是真正的双启动机器,那么您需要 GRUB 分区。如果您正在做一些“奇怪的”事情,也许您不需要。
实现您想要的更现实的方法(IMHO)是购买更大容量的驱动器(或额外的驱动器)并以此方式增加 Ubuntu 文件系统的大小。
运行 bleachbit 可能会比清除 grub 分区恢复更多的磁盘空间。