制作可在 EFI 中启动的可启动 USB 闪存驱动器

制作可在 EFI 中启动的可启动 USB 闪存驱动器

我最近买了一台安装了 Windows 8(EFI)的笔记本电脑。我以为我可以相对轻松地安装 12.04.2 - 我怎么就错了呢?

使用我在 ubuntu 上使用启动盘创建器制作的 live-usb,其中包含 64 位 .iso 文件...
*我首先尝试在没有启动分区的传统模式下安装 ubuntu,不用说,这没有用。
*然后我重新安装了带有启动分区的 ubuntu,仍然使用传统模式。 这次我设法让 grub 菜单显示出来,但我只能选择启动到 Ubuntu。(除非我告诉它以 EFI 模式启动,然后它只会启动 Windows)
*我两次都尝试了启动修复,但这根本没有帮助。

我现在意识到,如果 Windows 以 EFI 启动,我无法以传统模式启动 ubuntu。
因此,我需要以 EFI 模式从 live-usb 启动。但是,当我启用 EFI 模式并从 USB 闪存驱动器启动时,它显示:闪存驱动器已被当前安全策略阻止。(或类似内容)

我制作 live-usb 的方式有问题吗?
如果每次都收到错误消息,我该如何从 EFI 模式下的 live-usb 启动?

我意识到现在很多人都在问这类问题,但我已经寻找了一段时间,却没有找到任何可行的解决方案。:/ 谢谢你的帮助!

答案1

进入 BIOS 设置并禁用安全启动。肯定有一个选项。

答案2

就我而言,设置管理员密码后,我必须清除 USB 闪存盘上的 EFI 映像以进行启动(我在不同的 BIOS 页面上有一个条目可以让我这样做)。

顺便说一句,安装后,我必须对安装程序放在 HD 上的 shim64.efi 映像执行相同的操作,然后我必须将“ubuntu”启动映像的启动优先级更改为 Windows 8 启动映像。

答案3

Ubuntu 12.04.2 64 位或 Ubuntu 12.10 64 位都应该能够在启用安全启动的机器上启动。如果出现问题,可能是机器故障——这是一个新领域,供应商仍在解决问题。例如,东芝在 2013 年 1 月发布了固件更新 (6.60) 以解决密钥/数据库问题。请咨询您的供应商以获取最新固件。安装工作可能还存在其他问题,通常是由于 EFI 目录文件混乱造成的。成功启动实时媒体后,您应该做的第一件事是备份 /boot/efi 中的文件(此设置将启动 Windows)。安装后,将它们再次备份到另一个位置(此设置应启动 Ubuntu)。启动修复可能会修复这些文件的问题,但有些问题是无法修复的。例如,即使使用所有正确的命令,grub 也可能成功启动 Ubuntu,但无法启动 Windows。您需要首先确保自从进行 MBR 更改以来您拥有正确的命令。对于无法修复的问题,请返回到第二个启动设备,该设备具有自己的 EFI 分区和文件副本。这样,您可以从一组启动 Windows,从另一组启动 Ubuntu。

答案4

我个人希望能够使用 Grub2。我运行的是 Linux mint,但在这方面它足够相似,所以无论如何它都应该可以工作,我甚至应用了相同的原则来安装 Red Hat,这样我就可以准备 RHCSA 和 RHCE 考试(祝我好运)。

  • 禁用安全启动并启用传统启动和 efi 启动
  • 将普通 x64 Ubuntu/Linux iso 刻录到闪存驱动器或 DVD
  • 启动 DVD 并执行常规传统安装,包括将 grub2 安装到 /dev/sda 的根目录,并确保实时系统已连接到互联网
  • 安装完成后,您就可以使用实时 DVD 了,深吸一口气,打开终端
  • Live CD 不允许您使用 root 帐户,并坚持使用 sudo,但我没有看到在 live 磁盘上使用 sudo 比简单地成为 root 用户并执行您需要执行的操作有任何好处。您当然要非常小心,但另一方面,我们不会 rm 或覆盖任何内容,只是安装和卸载软件包。
  • 输入命令:

    $ sudo -s
    # passwd
    Enter new UNIX password:
    Reenter new UNIX password:
    Password successfully changed...
    # exit
    $ su
    Password:
    # 
    
  • 您现在是 root 用户,我们的下一个任务是安装我们新安装的系统,您需要知道分区布局和驱动器布局,但我将假设这一点:

    • /dev/sda(仅限内置硬盘)
    • /dev/sda1(EFI 系统分区)
    • /dev/sda2(Windows 系统)
    • /dev/sda3(恢复映像)
    • /dev/sda4(恢复程序)
    • /dev/sda5(诊断)
    • /dev/sda6 (您的新 /boot/ 系统)
    • /dev/sda7(您的新 Linux 交换)
    • /dev/sda8(您的新 / 系统)
    • /dev/sda9 (您的新 /home/ 系统)
  • 如果你需要弄清楚这一点,你可以使用命令sudo parted /dev/sda list

  • 现在让我们挂载我们的系统 # mount /dev/sda8 /mnt/ # mount /dev/sda6 /mnt/boot/ # mount /dev/sda9 /mnt/home/ # mount /dev/sda1 /mnt/boot/efi/ # # 这里是可选的,如果需要,你可以挂载 windows 分区 # mount /dev/sda2 /mnt/mnt/ # # 下面这也是必要的,它挂载虚拟文件系统 # mount -o bind /dev/ /mnt/dev/ # mount -o bind /dev/pts/ /mnt/dev/pts/ # mount -o bind /sys/ /mnt/sys/ # mount -o bind /proc/ /mnt/proc/

  • 好的,此时,您的 /mnt/ 基本上看起来和您启动系统时一模一样,事实上,除了网络配置不同之外,此时唯一的不同就是根目录不是系统的根目录,我们即将修复这个问题。但是,在我们修复这个问题之前,如果在发出下一个命令后出现问题,您需要使用该exit命令返回并修复它,然后再返回到新的根目录。

  • 将系统的根目录更改为新安装的系统:# chroot /mnt/
  • 好的,您已进入新系统,现在该进行一些更改了... #> apt-get update #> apt-get purge grub-pc
  • 是的,你将要销毁 grub 并永远摆脱它.... 好吧,你只是将它替换为 grub-efi
  • 现在执行以下操作:#> apt-get install grub-efi
  • 现在我们有了正确的 grub 包,现在让我们把东西放到它们应该在的位置 #> grub-install #> update-grub
  • 此命令可能会给您一个警告,但只要下一组命令为您提供列出的结果,您就没问题。具体来说,它会抱怨没有 efi 变量,因为“efivars”未加载到内核中(这是因为您以传统模式启动,但这对这部分来说并不重要,它只是意味着您的实时光盘无法祝福固件,我们将在几个步骤中处理这个问题。
  • 现在让我们确保一切都在它们应该在的地方... #> ls -R /boot/efi/EFI/* | grep grubx64.efi /boot/efi/EFI/ubuntu/grubx64.efi
  • 如果您看到上面的输出,那么我们的情况就很好了。记住那条路...
  • 现在我们的状态很好... #> exit # shutdown -r now

好的……GRUB 无法加载……我知道会这样。一切都设置好了,你只需要祝福固件……好吧,mac 称之为“祝福”,但我们要在 windows 中执行此操作,所以我们需要使用 bcdedit。我们需要首先调出管理员命令提示符。如果你使用的是 windows 7,它位于开始菜单中,如果你使用的是 windows 8,右键单击桌面左下角,它就会出现在菜单中。所以发出这个命令……

C:\WINDOWS\system32> bcdedit /set {bootmgr} path \EFI\ubuntu\grubx64.efi`

其中 \EFI\ubuntu\grubx64.efi 是您之前记录的路径,没有 /boot/efi 并且将正斜杠替换为反斜杠...完全/set {bootmgr} path按照所写内容输入,输入花括号和您看到的单词。您唯一要更改的是命令末尾的路径。

然后重新启动。

您现在应该可以看到 grub 菜单,并且可以选择 linux 或 windows。尽情享用吧!

相关内容