蛴螬=应该efi

蛴螬=应该efi

我知道有涉及的问题GRUB问题,但我有一个特定问题,很长时间无法解决。

我的硬盘使用布局谷氨酰胺磷酸酶格式(不是膜生物反应器- 请参阅下面的列表)。我有两个 64 位操作系统:

  1. Windows 10
  2. Debian Stretch席德)。

问题是,在一次系统升级之后(我不确定是 Debian 还是 Windows 升级的问题),GRUB 在启动时停止显示,使 Windows 成为默认启动项。要启动我的 Debian,我使用 GRUB 命令提示符,使用Debian 的 LiveCD

grub> root=(hd0,6)
grub> linux /vmlinuz-4.3.0-1-amd64 root=/dev/sda8
grub> initrd /initrd.img-4.3.0-1-amd64
grub> boot

到目前为止我尝试过的

我尝试用很多不同的方法解决这个问题:


诊断信息

  • 我的主板是技嘉 GA-Z77-D3HUEFI 双 BIOS™, 意思就是 (引用“它具有 BIOS 兼容模式 - 内置启动菜单为每个设备显示两个条目,一个带有 UEFI 前缀,一个不带有”. 无论是在 UEFI 模式还是在 BIOS 传统模式下启动都不起作用。

  • efibootmgr命令结果:

    root@mycomp:/home/me# efibootmgr 
    BootCurrent: 0007
    Timeout: 1 seconds
    BootOrder: 0002,0003,0004,0005,0000,0007
    Boot0000* Windows Boot Manager
    Boot0002* UEFI: ST1000DM003-9YN162
    Boot0003* Hard Drive 
    Boot0004* CD/DVD Drive 
    Boot0005* Removable Drive 
    Boot0007* UEFI: USB USB Hard Drive
    
  • parted命令结果:

    root@mycomp:/home/me# parted /dev/sda print
    Model: ATA ST1000DM003-9YN1 (scsi)
    Disk /dev/sda: 1000GB
    Sector size (logical/physical): 512B/4096B
    Partition Table: gpt
    Disk Flags: 
    
    Number  Start   End     Size    File system     Name                          Flags
     1      1049kB  316MB   315MB   ntfs            Basic data partition          hidden, diag
     2      316MB   420MB   105MB   fat32           EFI system partition          boot, esp
     3      420MB   555MB   134MB                   Microsoft reserved partition  msftres
     4      555MB   268GB   268GB   ntfs            Basic data partition          msftdata
     5      268GB   805GB   537GB   ntfs            Basic data partition          msftdata
     6      805GB   806GB   500MB   ext4                                          msftdata
     7      806GB   830GB   24,4GB  ext4                                          msftdata
     8      830GB   838GB   8000MB  ext4                                          msftdata
     9      838GB   853GB   15,0GB  ext4                                          msftdata
    10      853GB   863GB   10,0GB  linux-swap(v1)
    11      863GB   1000GB  137GB   ext4                                          msftdata
    
  • /etc/fstab内容(我归零唯一唯一标识符为了保护隐私,请参见下文):

    root@mycomp:/home/me# cat /etc/fstab
    # <file system>                           <mount point>     <type>  <options>          <dump>  <pass>
    # / was on /dev/sda8 during installation
    UUID=00000000-0000-0000-0000-000000000000 /                 ext4    errors=remount-ro   0       1
    # /boot was on /dev/sda6 during installation
    UUID=00000000-0000-0000-0000-000000000000 /boot             ext4    defaults            0       1
    # /boot/efi was on /dev/sda2 during installation
    UUID=0000-0000                            /boot/efi         vfat    defaults            0       1
    # /home was on /dev/sda11 during installation
    UUID=00000000-0000-0000-0000-000000000000 /home             ext4    defaults            0       2
    # /tmp was on /dev/sda9 during installation
    UUID=00000000-0000-0000-0000-000000000000 /tmp              ext4    defaults            0       2
    # /usr was on /dev/sda7 during installation
    UUID=00000000-0000-0000-0000-000000000000 /usr              ext4    defaults            0       2
    # swap was on /dev/sda10 during installation
    UUID=00000000-0000-0000-0000-000000000000 none              swap    sw                  0       0
    # CD-ROM
    /dev/sr0                                  /media/cdrom0     udf,iso9660 user,noauto     0       0
    # Added for Google Chrome (see: https://unix.stackexchange.com/questions/116400/google-chrome-no-space-on-rootfs-partition)
    /usr/opt                                  /opt              none   bind                 0       0
    # C: Windows partition
    UUID=0000000000000000                     /media/Windows/C  ntfs   ro                   0       0
    # D: Windows partition
    UUID=0000000000000000                     /media/Windows/D  ntfs   ro                   0       0
    
  • fdisk -l结果:

    root@mycomp:/home/me# fdisk -l
       Device       Start        End    Sectors    Size Type
    /dev/sda1        2048     616447     614400    300M Windows recovery environment
    /dev/sda2      616448     821247     204800    100M EFI System
    /dev/sda3      821248    1083391     262144    128M Microsoft reserved
    /dev/sda4     1083392  524290047  523206656  249,5G Microsoft basic data
    /dev/sda5   524290048 1572866047 1048576000    500G Microsoft basic data
    /dev/sda6  1572866048 1573842943     976896    477M Microsoft basic data
    /dev/sda7  1573842944 1621499903   47656960   22,7G Microsoft basic data
    /dev/sda8  1621499904 1637124095   15624192    7,5G Microsoft basic data
    /dev/sda9  1637124096 1666420735   29296640     14G Microsoft basic data
    /dev/sda10 1666420736 1685952511   19531776    9,3G Linux swap
    /dev/sda11 1685952512 1953523711  267571200  127,6G Microsoft basic data
    
  • 引用msinfo32 Windows 系统信息,我的系统BIOS modeUEFI

如果您需要更多信息来诊断我的问题,请在评论中提出您的请求。


更新

我删除了grub-efi-amd64已安装所有依赖项的软件包grub-pc现在,只有当我在 BIOS 模式下启动时,GRUB 才能成功加载。以下命令

[ -d /sys/firmware/efi ] && echo UEFI || echo BIOS

显示BIOS,但我仍然想以 UEFI 模式启动!


有用的网址

可能有帮助的链接:

答案1

问题是 EFI 是 bios-init,你必须选择 efi 映像(windows 或 linux-grub)

如果您不设置 grub,它将启动默认的安全启动,因此进入 bios 并禁用安全启动。

此后...Grub 将正确更新。(正确启动后)

现在知道您讨厌 ubuntus 的“自动魔法”(好吧,好吧)但为了理解起见您仍然可以根据这些设置进行逆向工程......

EFI Boot = 在固件(bios)中设置

  • 启动类型 = uefi
  • 第一次启动 = 选择 EFI:磁盘和 EFI:启动(Windows 启动管理器)或(Debian/Ubuntu/Etc...)

蛴螬=应该efi [此处输入磁盘名称]

或者它们的某种组合...现在您可以通过 Root -> kernel、ramdisk 等安装 grub...并且 windows 应该是 hd0,1...2... efi/boot 或者某些 windows 引导加载程序。

设置强制 BIOS 扫描启动 - 或 Debian。

引导修复。

https://sourceforge.net/projects/boot-repair-cd/

  • 制作活动磁盘
  • 开机直播。
  • 连接到互联网。
  • 按“Go”键

... 应该管用。

答案2

这里有这么多的分区!

“GRUB 在启动时停止显示,使 Windows 成为默认启动项。”

表示(可能)Windows 已更改启动标志。
从您的parted输出来看,分区 2 正在启动。这是 /boot/grub 所在的位置吗?...看起来 sda6 是您的 nix 安装的 /boot 分区?

使用cfdisk或类似命令来确保启动标志分区是 /boot/grub 所在的分区。

我不认为重新安装 grub 有什么坏处:

grub-install /dev/sda && update-grub && shutdown -r now

答案3

要使grub2菜单显示在uefi系统上,您只需添加一个菜单项efibootmgr

sudo efibootmgr --create --disk /dev/xxxx --part 1 --write-signature --loader /EFI/Manjaro/grubx64.efi --label "MANJARO" --verbose
  • 你应该安装电喷分区下的/boot/efi&文件在此挂载点下将为您提供path上述 --loader指向的正确信息grubx64.efi

  • 代替--disk xxxxx& 分区号--part与您的实际电喷设备。

在双启动系统上将显示类似以下内容:

[stuart@manjaro ~]$ efibootmgr
BootCurrent: 0003
Timeout: 10 seconds
BootOrder: 0003,0000,0001
Boot0000* Windows Boot Manager
Boot0001  Hard Drive 
Boot0003* MANJARO
  • Manjaro Architect ISO如果写成图像USB (即dd)可以启动UEFI 模式&在初始菜单上有一个搜索选项电喷加载器。这可用于启动您的系统以运行上述efibootmgr命令。如果菜单选项不是出现意味着你已经从USBMBR 模式

相关内容