我的内部硬盘驱动器中安装了 Windows 7 并想试用 Ubuntu,所以我有一个 USB 来安装 Ubuntu LiveUSB 并将 Ubuntu 安装在外部硬盘驱动器上,一切正常。
现在的问题。如果我移除外置硬盘并尝试正常启动 Windows,它会显示 grub 救援屏幕。启动到 Windows 的唯一方法是连接外部硬盘。
有什么办法可以使我不必连接外部硬盘就可以启动我的 Windows 7?
当您安装 Ubuntu 时,它会将 Grub 引导加载程序放在您的内部驱动器 MBR 上,但所有 grub 模块都存储在外部驱动器上的 Ubuntu 分区上。如果 Grub 无法加载模块,则它不会让您做太多事情,因此,如果没有插入外部插件,您将无法启动任何东西。
您应该做的是将 Windows 引导加载程序留在内部驱动器上,并将 Grub 安装到外部驱动器上。然后,无论何时插入外部,只需在启动时覆盖即可从外部启动。
要将 Grub 安装到外部 MBR(假设它是/dev/sdb):
sudo grub-install /dev/sdb
Run Code Online (Sandbox Code Playgroud)
要在没有外部的情况下启动 Windows,请重新安装 Windows 引导加载程序。要从 Windows 7 修复 CD 或 Windows 安装 DVD 启动到修复提示并运行:
bootrec /fixmbr
Run Code Online (Sandbox Code Playgroud)
如果您没有 Windows 修复 CD,您可以从 Windows 制作一张 Windows 修复 CD。也可以从 Ubuntu 安装中安装类似 Windows 的引导加载程序:
sudo apt-get install lilo
sudo lilo -M /dev/sda mbr
Run Code Online (Sandbox Code Playgroud)
请注意,这lilo会弹出一个很大的警告屏幕,但可以安全地忽略它,因为这是用于引导 linux 的时间。
这是它的使用方式lilo(注意命令区分大小写):
bcbc@neptune:~$ sudo apt-get install lilo
[sudo] password for bcbc:
Reading package lists... Done
Building dependency tree
Reading state information... Done
Suggested packages:
lilo-doc
The following NEW packages will be installed:
lilo
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 275 kB of archives.
After this operation, 807 kB of additional disk space will be used.
Get:1 http://mirror.csclub.uwaterloo.ca/ubuntu/ precise/main lilo amd64 1:23.2-2 [275 kB]
Fetched 275 kB in 1s (198 kB/s)
Preconfiguring packages ...
Selecting previously unselected package lilo.
(Reading database ... 505850 files and directories currently installed.)
Unpacking lilo (from .../lilo_1%3a23.2-2_amd64.deb) ...
Processing triggers for man-db ...
Setting up lilo (1:23.2-2) ...
bcbc@neptune:~$ sudo lilo -M /dev/sda mbr
Backup copy of /dev/sda in /boot/boot.0800
The Master Boot Record of /dev/sda has been updated.
bcbc@neptune:~$
Run Code Online (Sandbox Code Playgroud)
你会看到一个类似这样的警告——当你lilo用作 Windows 风格的引导加载程序时,它可以被忽略:

| 归档时间: |
|
| 查看次数: |
30218 次 |
| 最近记录: |