AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 786013
Accepted
Kalamalka Kid
Kalamalka Kid
Asked: 2016-06-13 01:39:03 +0800 CST2016-06-13 01:39:03 +0800 CST 2016-06-13 01:39:03 +0800 CST

grub2 不会在双启动时加载 Ubuntu

  • 772

从 Windows 启动管理器运行的双启动设置存在问题。我可以从 Windows 引导管理器成功加载到 grub2,但是 grub2 似乎无法定位到内核或其他东西,因为它正在将我直接放入带有以下输出的 shell:

[ Minimal BASH-like line editing is suported. For the First word, TAB
list the posible command completion. Anywhere else tab list the posible
completions of a device/filename,]

grub>

我过去使用过 Easybcd 并通过 Windows 引导加载程序成功加载了 Linux grub,但这是两个操作系统都在同一个分区上的时候,但是由于我的操作系统现在安装在不同的分区上,所以 EasyBcd 似乎无法发挥它的魔力。

一个鼓励是,如果我使用 Neo grub 引导加载程序并使用以下命令编辑配置,我能够让 Easybcd 加载工作的 Grub:

title Ubuntu 14.04
find --set-root /boot/vmlinuz-3.19.0-61-generic
kernel /boot/vmlinuz-3.19.0-61-generic ro root=/dev/sdc
initrd /boot/initrd.img-3.19.0-61-generic

但是,这在 Grub4DOS 中加载非常慢,并且截至今天,此方法已停止工作,请参阅此帖子了解详细信息)。

这是我为 Ubuntu 14.04 安装尝试的所有不同方法的 EasyBcd 设置的输出:

Default: Windows 7
Timeout: 30 seconds
Boot Drive: C:\

Entry #1
Name: Windows 7
BCD ID: {current}
Drive: C:\
Bootloader Path: \Windows\system32\winload.exe

Entry #2
Name: Ubuntu 14.04 Legacy
BCD ID: {a4f127cf-3150-11e6-8aaf-408d5cb9e442}
Drive: C:\
Bootloader Path: \NST\nst_linux.mbr

Entry #3
Name: Ubuntu 14.04 Grub2
BCD ID: {a4f127d0-3150-11e6-8aaf-408d5cb9e442}
Drive: C:\
Bootloader Path: \NST\AutoNeoGrub0.mbr

Entry #4
Name: Ubuntu Neo Grub
BCD ID: {a4f127d1-3150-11e6-8aaf-408d5cb9e442}
Drive: C:\
Bootloader Path: \NST\NeoGrub.mbr

*似乎上面看到的路径都没有指向我的 dev/sdc2/ 分区,在我的 Windows 卷管理器上,该分区将被视为 DISK1。


编辑- 在尝试为 Ubuntu/Windows 获取工作引导管理器的困惑中,您会看到 grub 和 Windows 引导管理器都已安装在许多位置。以下是所有 bootmanager 和 Grub 安装的当前位置和内容:

dev/sdb Windows7 驱动器

/dev/sdb1 - 当前为空的 512 MB fat32 分区

/dev/sdb2 - 110 GB ntfs 分区,包含 Windows7 安装。此分区包含一个“引导”文件夹,其中包含 BCD 文件和一整套语言文件夹。这是 WINDOWS BOOTLOADER 使用的文件夹。

/dev/sdb4 - 121.53 ntfs 分区,包含媒体存储


dev/sdd - Ubuntu 驱动器

dev/sdd1 - 512 MB 分区,包含一个“EFI”文件夹,其中有两个文件夹“grub”和“Ubuntu”,它们都包含完全相同的文件(grub.cfg、grubx64.efi、MokManager.efi、shium64 .efi)

dev/sdd2 - 48.83 GB ext4 分区,包含“/”文件夹和 Ubuntu 安装。

dev/sdd3 - 69.91 GB ntfs 分区,包含媒体存储

我需要做什么才能让我进入的 Grub shell 加载 Ubuntu?如何让这台机器从 Grub 中双启动?

dual-boot
  • 2 2 个回答
  • 2053 Views

2 个回答

  • Voted
  1. cl-netbox
    2016-06-16T06:35:58+08:002016-06-16T06:35:58+08:00

    您有两个选择 - 使用 GRUB 引导加载程序(我推荐的)或 Windows 加载程序。首先删除您之前在 Windows BCD 存储中创建的所有 Ubuntu 或 GRUB 条目。要列出所有标识符以管理员身份打开命令提示符,请执行:bcdedit /enum all /v

    要删除 Ubuntu 条目,请执行 :bcdedit /delete {*}对于您拥有的每个 Ubuntu 条目。将 * 替换为要删除的 Ubuntu 标识符 - 注意不要删除 Windows 条目。此外,我建议卸载 EasyBCD 以避免 BCD 操作出现更多问题。

    方法 1:GRUB 引导加载程序

    从 Ubuntu 安装媒体启动并选择 Try Ubuntu without installation,在 Live 桌面上打开 GParted 以识别安装操作系统的磁盘和分区。在大多数情况下,磁盘是分区表sda上的 Windows 分区。 msdossda1

    现在安装 GRUB 引导加载程序,您可以通过它以 Legacy BIOS(msdos分区表)模式将 Ubuntu 和 Windows 引导到磁盘 - 因此打开终端并执行以下命令:

    sudo mount /dev/sd** /mnt  
    sudo grub-install --boot-directory=/mnt/boot /dev/sd*
    

    将sd*(disk) 和sd**(Ubuntu partition) 替换为您确定的字母和数字。

    如果系统以 UEFI BIOS 模式安装...请以 EFI 模式安装 GRUB 引导加载程序。

    sudo mount /dev/sd*** /mnt
    sudo mount /dev/sd** /mnt/boot/efi
    for i in /dev /dev/pts /proc /sys /run; do sudo mount -B $i /mnt$i; done
    sudo chroot /mnt
    grub-install /dev/sd*
    update-grub  
    

    将sd*(disk), sd**(efi partition), sd***(Ubuntu partition) 替换为您确定的内容。

    启动进入 BIOS 并在 UEFI 设置中更改启动顺序 - 选择 Ubuntu 作为默认操作系统。

    方法 2:Windows 引导加载程序

    从 Ubuntu 安装媒体启动并选择 Try Ubuntu without installation,在 Live 桌面上打开 GParted 以识别安装操作系统的磁盘和分区。在大多数情况下,磁盘是分区表sda上的 Windows 分区。msdossda1

    首先挂载Windows分区,打开终端,执行:用你之前识别的字母和数字 sudo mount /dev/sd*** /mnt
    替换(Windows分区)。sd***

    复制 Ubuntu 的前 512 个字节:dd if=/dev/sd** of=/mnt/linux.bin bs=512 count=1
    将sd**(Ubuntu partition) 替换为您之前确定的字母和数字。

    启动到 Windows,以管理员身份打开命令提示符并执行以下命令:

    bcdedit /create /d Ubuntu /application bootsector
    bcdedit /set {identifier} device partition=c:
    bcdedit /set {identifier} path \linux.bin
    bcdedit /displayorder {identifier} /addlast  
    bcdedit /timeout X  
    

    将“标识符”替换为执行第一个命令时返回的字符、字母和数字,并将“X”替换为您希望查看 Windows 引导加载程序菜单的秒数(例如 10) - 在它自动启动之前默认操作系统。

    • 2
  2. Best Answer
    Kalamalka Kid
    2016-06-17T00:26:17+08:002016-06-17T00:26:17+08:00

    我终于能够让 grub2 在启动时加载一个 Windows 7 条目,但是它需要大量的试验和错误。

    我所做的是从安装在众多驱动器上的所有不同位置删除所有 Grub 条目,然后删除所有 EasyBcd Grub 条目。

    在此之后,我启动到启动修复磁盘并恢复 MBR 以允许 Windows 正常启动,重新启动回到启动磁盘修复,然后重新安装 Grub2(在所有驱动器上)。然后我进入我的 BIOS,更改了启动磁盘并启动到 Ubuntu 并输入sudo update-grub

    只有在执行此命令后,Grub2 引导加载程序才能识别 Windows。但它并没有在这里结束,因为在 Grub2 菜单中选择 Windows 后,Windows Bootloader 仍然出现(本质上添加了另一个步骤),所以我使用 EasyBCD 禁用 Windows 引导加载程序菜单,以便 Grub 直接加载到 Windows 中而无需等待输入Windows 引导加载程序。

    然后我可以使用 grub-customizer 更改 Grub2 中的引导顺序

    sudo add-apt-repository ppa:danielrichter2007/grub-customizer
    sudo apt-get update
    sudo apt-get install grub-customizer
    

    我将奖励第一个答案的赏金,因为它是唯一的答案,而且我很高兴作者花时间对他们的解释进行彻底的解释。

    • 1

相关问题

  • 如何在 ubuntu 中挂载加密的 windows 分区?[关闭]

  • 如何使用 Debian 进行双引导?

  • 如何使用 Ubuntu 和 Windows XP 安装双启动配置?[关闭]

  • 如何让双启动 USB 驱动器在 Vista 中工作 [关闭]

  • 如何从双启动计算机访问加密的主文件夹?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve