web-dev-qa-db-ja.com

GRUB 2は起動時に表示されません

tons の質問があり、 [〜#〜] grub [〜#〜] の問題があることは知っていますが、特定の問題があり、それができません。かなり長い間解決します。

私のハードドライブ is レイアウト [〜#〜] gpt [〜#〜] フォーマット(ではない [〜#〜] mbr [〜#〜] -以下のリストを参照してください)。私は2つの64ビットOSを持っています:

  1. Windows 1
  2. Debian StretchSid )。

問題は、システムのアップグレードの1つの後(それが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

私がこれまでに試したこと

私はさまざまな方法で問題を解決しようとしました。

  • 名前にgrub文字列が含まれるすべてのパッケージを削除し、インストールしました grub-efi-AMD64 (とりわけ)に依存するパッケージ: grub-commongrub2-commongrub-efi-AMD64-bin 。その結果、これらのパッケージはすべてインストールされました。
  • /etc/default/grub@ gilles ' 回答 this の質問で提案されているように)に次の変更を加えて実行しました- update-grub コマンド(またはupdate-grub2ワンライナーbashスクリプトへのシンボリックリンクであるupdate-grub):
    • GRUB_HIDDEN_TIMEOUT_QUIET=false
    • GRUB_HIDDEN_TIMEOUT=
    • GRUB_TIMEOUT=10
  • I オフWindows Fast Startup および休止状態。
  • grub-install --target=x86_64-efi && update-grub

診断情報

  • 私のマザーボードは GIGABYTE GA-Z77-D3H with EFIDualBIOS™ 、つまり( quote 'BIOS互換モードがあります-組み込みのブートメニューには、デバイスごとに2つのエントリが表示されます。1つはUEFIのプレフィックスが付いており、もう1つは'が付いていません。 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 content(プライバシー保護のため、以下でゼロに設定しました [〜#〜] uuid [〜#〜] s):

    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
    
  • 参照msinfo32Windowsシステム情報、私のシステムBIOS modeUEFI

私の問題を診断するためにさらに情報が必要な場合は、コメントにリクエストを入れてください。


更新

grub-efi-AMD64 パッケージをすべての依存関係とともに削除し、インストールしました grub-pc そして今GRUBは、私がBIOSモードで起動します。 次のコマンド

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

BIOSが表示されますが、それでもUEFIモードで起動したいです。


便利なリンク

役立つかもしれないリンク:

2
patryk.beza

問題は、EFIがbios-initであり、efiイメージ(windowsまたはlinux-grub)を選択する必要があることです。

Grubを設定しないと、デフォルトのセキュアブートが起動するため、BIOSに移動してセキュアブートを無効にします。

その後... Grubは正しく更新されます。 (正しく起動した後)

あなたがubuntusの「自動魔法」(大丈夫、大丈夫)を嫌うことを今でも知っているので、理解のためにそれらの設定をリバースエンジニアリングすることができます...

EFIブート=ファームウェアに設定(BIOS)

  • ブートタイプ= uefi
  • 1回目の起動= EFI:DiskおよびEFI:boot(Windows Boot Manager)または(Debian/Ubuntu/Etc ...)を選択します

Grub =should beefi [ここのディスクの名前]

または何かの組み合わせ...これで、ルート->カーネル、RAMディスクなどでgrubをインストールできます...ウィンドウはhd0,1 ... 2 ... efi/bootまたは何か-何かウィンドウブートローダーである必要があります。

ブートまたはDebianをスキャンするように強制BIOSを設定します。

ブーツの修理。

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

  • ライブディスクを作成する
  • ライブで起動します。
  • インターネットに接続します。
  • Goを押します

...動作するはずです。

2
TardisGuy

それはたくさんのパーティションです!

「起動時にGRUBが表示されなくなり、Windowsの起動がデフォルトになりました。」

(おそらく)ウィンドウがブートフラグを変更したことを示します。
parted出力から、パーティション2が起動しています。これは/ boot/grubがある場所ですか? ... sda6はnixインストール用の/ bootパーティションのように見えますか?

cfdiskなどを使用して、ブートフラグが設定されたパーティションが/ boot/grubがあるパーティションであることを確認します。

そして、grubを再インストールするのが痛いのはわかりません。

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

grub2メニューをuefiシステムに表示するには、efibootmgrを使用してメニューエントリを追加するだけです。

Sudo efibootmgr --create --disk /dev/xxxx --part 1 --write-signature --loader /EFI/Manjaro/grubx64.efi --label "MANJARO" --verbose
  • [〜#〜] efi [〜#〜]パーティションを/boot/efiの下にマウントし、ファイルこのマウントポイントの下で正しいpathを取得する必要があります。上記の--loaderの場合はgrubx64.efiを指します。

  • --diskxxxx--partのパーティション番号を実際の[〜#〜] efi [〜#〜]デバイスに置き換えます。

デュアルブートシステムでは、これは次のように表示されます。

[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を使用)で起動できますEFIモード&初期メニューに検索するオプションがあります[〜#〜] efi [〜#〜]ローダー。これを使用して、システムで上記のefibootmgrコマンドを実行できるようにすることができます。メニューオプションにnotが表示される場合は、MBR mode[〜#〜] usb [〜#〜]から起動したことを意味します。
0
Stuart Cardall