LinuxでEFI Windowsブートを修正する

LinuxでEFI Windowsブートを修正する

既定では、Windows 8の起動オプションが失われ、Windowsインストールメディアの起動回復によって問題が解決されませんでした。

これはややWindowsの問題であることを知っていますが、efibootmgrより厄介なWindowsベースのコマンドを使用するソリューションよりもソリューションを探していますbcdedit。したがって、私はスーパーユーザーの代わりにここに尋ねます。

詳細な背景はここデフォルトでは、私のシステムは最初にBIOS / MBR / CSMモードに設定され、Windows 10がそこにインストールを拒否したため、MBRディスクをGPTに変換する必要がありました。その後、Linux側ですべてが正常に機能しましたが、Windowsインストールメディアを介してWindowsブートを変更できませんでした。

  • すべてのLinux OS /パーティションが見つかりましたupdate-grubが、GRUBメニューにWindows 8はありません。
  • os-proberまた、私のWindows 8を一覧表示または見つけることができません。

次のコマンドを使用してWindows 8を起動項目として再度追加することが回避策であることを願っていますが、efibootmgrここで迷子になって助けが必要です。現在のパーティションモードなど、より詳細な情報を再確認できます。ここ。ありがとうございます。

/EFI私のWindows 8はBIOS / MBR / CSMモードでインストールされていますが、そこにディレクトリが表示されないため、EFIブート機能はありませんか?私のWindows 8パーティションのすべてのルートレベルのディレクトリは次のとおりです。

$Recycle.Bin/              ProgramData/
$WINDOWS.~BT/              Programs/
$Windows.~WS/              Recovery/
BOOTNXT                    Recovery.txt
BOOTSECT.BAK               System Volume Information/
Boot/                      Tmp/
Documents and Settings/    Users/
ESD/                       Windows/
Intel/                     bootmgr
Program Files/             pagefile.sys
Program Files (x86)/       swapfile.sys

efibootmgrあるいは、まったく必要ではなく、/etc/grub.d/40_custom以下のカスタム項目のみが必要になる場合があります。

menuentry "Windows 8 BIOS MBR" {
     insmod part_msdos
     insmod ntldr
     insmod ntfs
     ntldr (hd0,msdos1)/bootmgr
}

答え1

いいですね。 @FelixJNのリクエストに応じて、リンクの代わりに答えがここにあります。

少なくともntldr 「Windowsの読み込み」を使用することがbootmgr過去に使用した方法だったので、私の意図はLinuxベースのソリューションを選択することでした。同様に、次のように動作します。grubgrub4dos

menuentry "Windows 8 UEFI/GPT" {
    insmod part_gpt
    insmod search_fs_uuid
    insmod chain
    search --fs-uuid --no-floppy --set=root 28cf-35de
    chainloader ($root)/EFI/Microsoft/Boot/bootmgfw.efi
}

しかし、私は grub2 とその文書に対する確信があまりないので、試していないし、代わりに @telcoM が要約したように Windows 用のソリューションに切り替えました。

UEFIモードでブートリカバリプロセスを実行して、Windows UEFIブートローダをESPパーティションに書き込みます。

詳細な手順は次のとおりです。ここ

  1. メディア(DVD/USB)をコンピュータに挿入し、再起動

  2. メディアから起動します。

  3. 選ぶコンピュータを修理する

  4. 選ぶトラブルシューティング

  5. 選ぶコマンドプロンプトメニューから:

    1. 次のコマンドを入力して実行します。

      diskpart
      
    2. 次のコマンドを入力して実行します。

      sel disk 0
      
    3. 次のコマンドを入力して実行します。

      list vol
      
  6. EFIパーティション(EPS - EFIシステムパーティション)がFAT32ファイルシステムを使用し、ドライブ文字を割り当てていることを確認します(未使用のドライブ文字割り当て)。

  7. 次のコマンドを入力して実行します。

     sel vol <number of volume>
    
  8. 次のコマンドを入力して実行します。

     assign letter=<drive letter>:
    
  9. 次のコマンドを入力して実行します。

     exit
    
  10. ブートレコードを回復するには:

    1. 次のコマンドを入力して実行します。

      cd /d <drive letter>:\EFI\Microsoft\Boot\
      
    2. 次のコマンドを入力して実行します。

      bootrec /FixBoot
      

この時点で、次のステップはすべてのオペレーティングシステムで同じです。

  1. BCDストレージの再構築

  2. まず、次のコマンドを実行して前のBCDをバックアップします。

     ren BCD BCD.old
    
  3. 次に、次のコマンドを使用して再生成します。

     bcdboot c:\Windows /l en-us /s <boot letter>:All
    

関連情報