最近、デュアルブート(Ubuntu / Win10)を(Pop!_OS 20.04 / Win10)に置き換えました。コンピュータを起動すると、起動メニューは表示されず、Windowsから直接起動します。これが私が今まで試したことです:
説明したようにsystemd-bootloaderを修正しました。ここしかし、これは私の問題を解決しませんでした。
Grubメニューに移動するために、Ubuntu Livestick(GRUBがインストールされている)を接続しました。そこからいいえUbuntuを起動しますが、GRUBコマンドラインに移動し、次のようにブートローダをsystemdに設定します。
chainloader (hd2,1)/efi/systemd/systemd-bootx64.efi
boot
これにより、Pop!_OSで起動できます(ただし、メニューも表示されないため、そこからWindowsから起動できません)。また、systemd ブートローダが通常正常に動作していることも示しています。
その後、問題がWindowsにある可能性があると考えてWindowsで起動し、
bcdedit
.Ubuntuのインストールと同様の問題があり、grub efiファイルのパスを定義して問題を解決できましたbcdedit /set {bootmgr} path \EFI\ubuntu\grubx64.efi
。これには実際に問題があることがわかりました。- まず「という結論が出てきます。存在しないデバイスが指定されました。」。
{bootmgr}
第二に、現在のデバイスは「partition = C:」として定義されているようです。しかし、私が探しているEFIファイルは、C:パーティションではなくDisk1Partition1にあります。問題は、このパーティションが何であるかわからないということです。つまり、起動中にそれを識別するには、bcdeditエントリでそれをどのように定義する必要がありますか?これが出力ですbcdedit
C:\WINDOWS\system32>bcdedit
Windows Boot Manager
--------------------
identifier {bootmgr}
device partition=\Device\HarddiskVolume2
path \EFI\systemd\systemd-bootx64.efi
description Windows Boot Manager
locale en-GB
inherit {globalsettings}
default {current}
resumeobject {c9199aab-b651-11ea-8b88-3ce1a1c4ba83}
displayorder {current}
toolsdisplayorder {memdiag}
timeout 30
Windows Boot Loader
-------------------
identifier {current}
device partition=C:
path \WINDOWS\system32\winload.efi
description Windows 10
locale en-GB
inherit {bootloadersettings}
recoverysequence {c9199aae-b651-11ea-8b88-3ce1a1c4ba83}
displaymessageoverride Recovery
recoveryenabled Yes
isolatedcontext Yes
allowedinmemorysettings 0x15000075
osdevice partition=C:
systemroot \WINDOWS
resumeobject {c9199aab-b651-11ea-8b88-3ce1a1c4ba83}
nx OptIn
bootmenupolicy Standard
hypervisorlaunchtype Auto
A device which does not exist was specified.
これは私の構成を示すWindowsディスク管理ウィンドウです。 systemd-efi ファイルは Disk1 Partition1 にあります。
また、マイコンピュータに関する情報もあります。
この問題を解決する方法を知っている人はいますか?
よろしくお願いします:)
答え1
私はコメントの助けを借りてこの問題を解決しました。みんなありがとうございます!完全性を期すために、この問題を解決するためにとられたすべての手順をすばやく説明しました。
Quickfix - 実際の問題を解決せずにクイックスタートが必要な場合
通常のブートローダーでライブスティックを接続します(私はGRUBでUbuntu 20.04を使用しています)。
LivestickでGRUBが起動したら、次のキーを押してブートロードプロセスを停止します。氏またはEsc。
それでは、使用したいブートローダーを定義してください(私はハードドライブ2のパーティション1のシステムブートローダーでした)。
chainloader (hd2,1)/efi/systemd/systemd-bootx64.efi
boot
これにより、定義されたブートローダを使用して起動できます。
問題を解く
私は最初にsystemdブートローダを次のように修正しました。これマップ時間。 (Linuxシステムを起動するには、上記のクイックフィックスを使用する必要があるかもしれません)
それでも問題が解決しなかったので、Windowsから起動して(管理者として)コマンドプロンプトを実行しました。
次のようにEFIパーティションをマウントしました。このガイド(私はV:にインストールしました。)
次に、EFIファイルを{bootmgr}パスとして追加し、マウントされたEFIパーティションをbcdedit {bootmgr}エントリのデバイスとして追加しました。
bcdedit /set {bootmgr} path \EFI\systemd\systemd-bootx64.efi
bcdedit /set {bootmgr} device partition=V:
その後、再起動し(Windowsから直接起動します)、{bootmgr}のbcdeditデバイスエントリが次から変更されたことを確認しました。パーティション=V:到着パーティション=\Device\HarddiskVolume2
再起動しましたが、うまくいきました。それでは、端末を次のように設定することもできます。パーティション=\Device\HarddiskVolume2...しかし、これは私にとって効果的です。