我的笔记本电脑内置硬盘上装有 Windows Vista,外置硬盘上装有 Kubuntu Linux。
我的笔记本已经完全丧失了便携性,因为如果不连接外部硬盘,它就无法启动 Windows(而且外部硬盘不可移动)。它出现 GRUB 错误 21,因为我认为它试图从外部硬盘加载主引导记录,换句话说,当在开机期间连接外部硬盘时,我可以毫无问题地进入 GRUB 菜单。
我想让我的笔记本再次便携,即使这意味着从外部硬盘驱动器中删除 Linux 分区。我想我可以删除 GRUB,所以我安装了易BCD但它只在 Windows 引导加载程序中显示 Vista。
答案1
当您安装 Linux 与 Windows 双启动时,Linux 安装程序会将 GRUB(引导加载程序本身)安装在与 Linux 相同的驱动器上,即使您没有安装另一个驱动器,也可以轻松配置。但是,为了防止您不得不进行 BIOS 更改,它会使用指向 GRUB 的小型“存根”程序更改装有 Windows 的驱动器(可启动驱动器)上的 MBR。
发生的情况是,笔记本电脑中的所有驱动器都只有这个“存根”程序,它试图从外部驱动器加载 GRUB。GRUB 错误 21 表示无法加载 GRUB 本身,因为找不到它所在的设备。
不幸的是,修复这个问题并不是一件容易的事情。首先,您需要将笔记本电脑驱动器上的 MBR 恢复到其原始状态,加载 NTLDR(Windows 引导加载程序)。为此,请从 Windows 磁盘启动计算机。
- 对于 NT5 (2000/XP):出现提示时,按 R 键修复 Windows 安装。选择 Windows 安装。它将加载 Windows 恢复控制台。出现提示时,输入 Windows 安装中的管理员帐户密码(可能为空,即使你更改了自己的用户账户密码)。片刻之后,您将看到标准的 DOS 提示符。运行命令
fixmbr
,然后fixboot
替换 Windows MBR 条目并重新配置 NTLDR。 - 对于 NT6 (Vista/7):出现提示时,选择您的语言和键盘布局。在下一个屏幕上,单击“修复 Windows 安装”。等待启动恢复工具运行。这可能需要几分钟,但它会自动设置 MBR 并正确配置 NTLDR。您的计算机应自动重新启动。在某些情况下(取决于驱动器配置),您可能需要多次执行此操作。
再次启动 Windows 后,我们需要以正确的方式安装 Linux。以下是解决方法:
- 插入外部驱动器后,像平常一样启动 Linux 安装。
- 当提示您输入磁盘/分区配置时,请选择“手动”或“自定义”而不是自动选项。
- 安装程序的分区工具加载后,您需要做一些事情。如果您不熟悉磁盘分区,这可能会有点令人困惑。我们需要创建三分区:
- 启动分区。选择笔记本电脑中的驱动器,然后创建一个非常小的分区。您可能有足够的可用空间,而不必调整 Windows 的大小,启动分区只需要大约 10MB。在分区工具中,告诉它此分区应安装为
/boot
。您应该能够将其文件系统保留为默认文件系统 - ext3/ext4/reiser/whatever 都可以。 - 交换分区:Linux 将使用此空间来存储程序想要放入内存但实际上内存中放不下的东西(这个交换空间就是我们现在很少看到“内存不足”错误的原因)。在 Windows 中,交换空间只是一个文件(驱动器根目录中的 swapfile.sys,如果我没记错的话),但在 Linux 中,为此使用了一个单独的磁盘分区。切换回外部驱动器并创建一个新分区。告诉分区程序使用文件系统类型“swap”。交换分区的推荐大小通常是物理内存的两倍,但我通常不管怎样都将其设置为 4GB。如果您希望处理内存中非常大的东西(视频编辑可能是唯一的情况),您可以将其设置得更大,或者如果您有大量物理内存或不希望运行许多程序或加载非常大的文件,则可以将其设置得更小。
- 最后,我们需要安装操作系统的实际分区。在外部驱动器上,创建一个大分区(可能是驱动器的整个剩余大小),将其文件系统设置为默认或任何您想要的(如果您不熟悉 Linux 文件系统选择,只需使用默认),并将其挂载点设置为
/
。
- 启动分区。选择笔记本电脑中的驱动器,然后创建一个非常小的分区。您可能有足够的可用空间,而不必调整 Windows 的大小,启动分区只需要大约 10MB。在分区工具中,告诉它此分区应安装为
- 按照通常的方式继续安装 Linux。它会将 Linux 安装到外部驱动器,但会将启动组件(主要是 GRUB)安装到笔记本电脑自己的驱动器。现在,当您在没有外部驱动器的情况下启动笔记本电脑时,GRUB 仍会加载,您可以选择 Windows。当然,如果您选择 Linux,它会尝试加载不可用的文件并给您一个错误。
答案2
您是否尝试过在 BIOS 中将内置硬盘设置为第一启动设备?