編集:解決済み。以下を参照してください。
以前はWindows10のラップトップのみにArchLinuxをインストールしました。 ArchLinux用とWindows用のssdが1つずつあります。 ArchLinuxで完全に機能するブートローダーとしてrEFIndを使用したいと思います。 this チュートリアルに従って、Windowsのメニューエントリを設定しようとしました。問題は、\EFI\tools\Shell.efi
またはfs0:\EFI\tools\launch_windows.nsh
がないことです。私の勘は、2つのssdがあり、以前はWindows 1つしか使用していなかったため、2つのESPがあり、Windows .efi
ファイルがArchLinuxESPに存在しないということです。これは正確ですか? Windowsドライブのパーティションを調べてみましたが、そこにも.efi
ファイルがありません。 WindowsがBIOSを使用して起動していて、それらのファイルを作成しなかった可能性はありますか?
編集:UEFIモードでWindowsを再インストールする必要がありました。レガシーモードでした。
rEFIndは、Windows EFIブートローダーを自動的に検出し、そのメニューエントリを作成する必要があります。これが発生しない場合、私の勘は、WindowsがEFI/UEFIモードのGPTディスクではなく、BIOS/CSM /レガシーモードのMBRディスクにインストールされていることです。次のように、ディスクのパーティションテーブルタイプを確認できます(root
として)。
parted /dev/sda print | grep Table
ディスクごとに/dev/sda
を変更します(おそらく/dev/sda
と/dev/sdb
ですが、もっとエキゾチックなものかもしれません)。 parted
はGPTディスクをgpt
として報告しますが、MBRディスクにはmsdos
を使用します。私の勘が正しければ、LinuxディスクはGPTとして表示され、WindowsディスクはMBRとして表示される可能性があります。
私が正しければ、refind.conf
(通常は/boot/efi/EFI/refind
または/boot/EFI/refind
)の編集を試すことができます。scanfor
行のコメントを外し、hdbios
をに追加します。オプション。これにより、rEFIndはBIOSモードOSの起動のサポートをアクティブ化するように指示されます。起動すると、おそらく1つまたは2つの灰色のひし形のアイコンが表示されます。そのうちの1つはWindowsを起動するはずです。 (アイコンが1つしか表示されず、Windowsが起動しない場合は、uefi_deep_legacy_scan
のrefind.conf
オプションのコメントを解除してみてください。)機能しないWindows起動エントリを非表示にする場合は、これを行うことができます。 dont_scan_volumes
を使用して、ブートオプションの説明の一意の部分を見つけて非表示にできると仮定します。
これらすべての代わりに、またはrEFIndのBIOSモードのサポートがコンピューターで機能しない場合は、WindowsをBIOSモードではなくEFIモードで起動するように変換できます。これは、BIOSモードのサポートをrEFIndの構成に追加するよりもリスクがありますが、起動が少し速くなり、WindowsがEFI機能にアクセスできるようになります。この変更を行う方法については、 このページ を参照してください。
WindowsがBIOSモードで起動しているという私の仮定が間違っている場合は、他の何かが間違っています-おそらく、Windowsブートローダーを保持しているESPのファイルシステムが破損しているか、Windowsが破壊されている可能性がありますブートローダー。必要な修復は、問題の正確な性質によって異なります。この場合、 ブート情報スクリプト を実行してください。これにより、RESULTS.txt
というファイルが生成されます。そのファイルをに投稿してください。 Pastebinサイト そしてここにあなたのドキュメントへのURLを投稿してください。
\EFI\tools\launch_windows.nsh
ファイルは、実際のWindowsブートローダーを起動するスクリプトの単なる例だと思います。これはEFI\Microsoft
ディレクトリのどこかにあるはずです。
\EFI\tools\Shell.efi
ファイルはUEFIシェルであり、 ここ から取得できます。ただし、Windowsブートローダーを起動するだけの場合は、そのためのシェルは必要ありません。 Windowsブートローダーは、通常のUEFIアプリケーションと同じように直接起動できます。
次のようなものを追加してみてください。
menuentry Windows {
loader \EFI\Microsoft\Boot\bootmgfw.efi
}
rEFInd構成に。
WindowsがレガシーBIOSモードでインストールされていたシステムにEFIブートローダーを使用してLinuxをインストールした後、Windowsを起動できず、Linuxのみが起動しました。 @Rod Smithの回答は素晴らしく、さまざまな問題のトラブルシューティングに役立ちました。しかし、rEFIndをインストールして構成オプションを設定した後でも、Windowsを起動できませんでした。ドライブをMBRからGPTに変換しましたが、機能しませんでした。 UEFIとレガシーの間でマザーボードを切り替えようとしましたが、それでも何も起こりません。実際、Windows用のEFIブートローダーをWindows\Boot\EFIからESPにコピーする必要がありました。そして、私は@MarcelがWindowsを再インストールする代わりに同じことをしたかもしれないと推測しています-それは確かにオプションですが。
プロセス全体を説明する素晴らしいMediumの投稿があります: https://medium.com/@hetmansoftware/how-to-restore-the-structure-of-deleted-efi-partitions-in-windows-653a68b5c09f