tons の質問があり、 [〜#〜] grub [〜#〜] の問題があることは知っていますが、特定の問題があり、それができません。かなり長い間解決します。
私のハードドライブ is レイアウト [〜#〜] gpt [〜#〜] フォーマット(ではない [〜#〜] mbr [〜#〜] -以下のリストを参照してください)。私は2つの64ビットOSを持っています:
問題は、システムのアップグレードの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-common
、 grub2-common
、 grub-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
。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
参照msinfo32
Windowsシステム情報、私のシステムBIOS mode
はUEFI
。
私の問題を診断するためにさらに情報が必要な場合は、コメントにリクエストを入れてください。
grub-efi-AMD64
パッケージをすべての依存関係とともに削除し、インストールしました grub-pc
そして今GRUBは、私がBIOSモードで起動します。 次のコマンド :
[ -d /sys/firmware/efi ] && echo UEFI || echo BIOS
BIOS
が表示されますが、それでもUEFIモードで起動したいです。
役立つかもしれないリンク:
問題は、EFIがbios-initであり、efiイメージ(windowsまたはlinux-grub)を選択する必要があることです。
Grubを設定しないと、デフォルトのセキュアブートが起動するため、BIOSに移動してセキュアブートを無効にします。
その後... Grubは正しく更新されます。 (正しく起動した後)
あなたがubuntusの「自動魔法」(大丈夫、大丈夫)を嫌うことを今でも知っているので、理解のためにそれらの設定をリバースエンジニアリングすることができます...
EFIブート=ファームウェアに設定(BIOS)
または何かの組み合わせ...これで、ルート->カーネル、RAMディスクなどでgrubをインストールできます...ウィンドウはhd0,1 ... 2 ... efi/bootまたは何か-何かウィンドウブートローダーである必要があります。
ブートまたはDebianをスキャンするように強制BIOSを設定します。
ブーツの修理。
https://sourceforge.net/projects/boot-repair-cd/
...動作するはずです。
それはたくさんのパーティションです!
「起動時にGRUBが表示されなくなり、Windowsの起動がデフォルトになりました。」
(おそらく)ウィンドウがブートフラグを変更したことを示します。parted
出力から、パーティション2が起動しています。これは/ boot/grubがある場所ですか? ... sda6はnixインストール用の/ bootパーティションのように見えますか?
cfdisk
などを使用して、ブートフラグが設定されたパーティションが/ boot/grubがあるパーティションであることを確認します。
そして、grubを再インストールするのが痛いのはわかりません。
grub-install /dev/sda && update-grub && shutdown -r now
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
を指します。
--disk
xxxx&--part
のパーティション番号を実際の[〜#〜] efi [〜#〜]デバイスに置き換えます。
デュアルブートシステムでは、これは次のように表示されます。
[stuart@manjaro ~]$ efibootmgr
BootCurrent: 0003
Timeout: 10 seconds
BootOrder: 0003,0000,0001
Boot0000* Windows Boot Manager
Boot0001 Hard Drive
Boot0003* MANJARO
dd
を使用)で起動できますEFIモード&初期メニューに検索するオプションがあります[〜#〜] efi [〜#〜]ローダー。これを使用して、システムで上記のefibootmgr
コマンドを実行できるようにすることができます。メニューオプションにnotが表示される場合は、MBR modeで[〜#〜] usb [〜#〜]から起動したことを意味します。