別のNVMEドライブのWindows 10をsystemd-bootローダーエントリに追加する方法は?

別のNVMEドライブのWindows 10をsystemd-bootローダーエントリに追加する方法は?

次のようにsystemd-boot設定を更新してみました。https://wiki.archlinux.org/index.php/systemd-boot

起動メニューにWindows 10を追加しようとしています。これは私のドライブです。

    kaisellgren@pop-os:~$ lsblk
    NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
    sda           8:0    0 931,5G  0 disk
    ├─sda1        8:1    0   128M  0 part
    └─sda2        8:2    0 931,4G  0 part
    sdb           8:16   0 931,5G  0 disk
    ├─sdb1        8:17   0    16M  0 part
    ├─sdb2        8:18   0   600M  0 part /boot/efi
    └─sdb3        8:19   0 930,9G  0 part /
    nvme0n1     259:0    0 465,8G  0 disk
    ├─nvme0n1p1 259:1    0   499M  0 part
    ├─nvme0n1p2 259:2    0    99M  0 part
    ├─nvme0n1p3 259:3    0    16M  0 part
    └─nvme0n1p4 259:4    0 465,2G  0 part

ご覧のとおり、私のブートSATA3ドライブはsdb(パーティションsdb2)です。

私の/EFI/Microsoft/Boot/bootmgfw.efiブートローダはパーティション2のnvme0n1ドライブにあります(確認しました)。

だから私はこれを作りました:

kaisellgren@pop-os:~$ sudo cat /boot/efi/loader/entries/windows.conf
title Windows
efi /EFI/Microsoft/Boot/bootmgfw.efi
options root=UUID=4C58-E6DF

ここからルートドライブUUIDを取得しました。

kaisellgren@pop-os:~$ ls -l /dev/disk/by-uuid/
total 0
lrwxrwxrwx 1 root root 10 Jul 10 18:53 02165C56165C4D33 -> ../../sda2
lrwxrwxrwx 1 root root 15 Jul 10 18:53 160469B004699391 -> ../../nvme0n1p4
lrwxrwxrwx 1 root root 15 Jul 10 18:53 3C025449025409F2 -> ../../nvme0n1p1
lrwxrwxrwx 1 root root 15 Jul 10 18:53 4C58-E6DF -> ../../nvme0n1p2
lrwxrwxrwx 1 root root 10 Jul 10 18:53 5B44-2C7F -> ../../sdb2
lrwxrwxrwx 1 root root 10 Jul 10 18:53 646d95a4-1bb4-45c0-96bc-3ee20c4b4211 -> ../../sdb3

これは私のローダー構成です。

kaisellgren@pop-os:~$ sudo cat /boot/efi/loader/loader.conf
default Pop_OS-current
timeout 5

コンピュータを起動すると、現在のPopOSと既存のPopOSという2つのオプションを持つ起動メニューが表示されます。リストにWindowsエントリは表示されません。私は何が間違っていましたか?タイムアウトパラメータを変更すると起動メニューに影響を与えるため、正しい設定ファイルを必ず編集してください。

すべての助けに事前に感謝!

答え1

久しぶりに解決策を見つけました。 Linuxパーティションから起動し、Windows EFIパーティションをフォルダにマウントし、Microsoftフォルダを/boot/EFI/(Linuxシステム上で)コピーします。それがすべてです。

ローダーエントリにwindows.confを手動で追加する問題で説明されているプロセスは私には必要ありませんでした。

もともと記載された詳細なコピープロセスは次のとおりです。

sudo fdisk -l

100Mサイズと種類のパーティションを見つけますEFI System。サイズと種類が他のパーティションと同じディスクにある場合は、499M正しいことがわかりますWindows recovery environment。たとえば、EFIパーティションのデバイス名を書き留めます/dev/nvme0n1p2(以下のmountコマンドで使用します)。

ディレクトリを作成し、ここにWindows-EFIパーティションをマウントします。

sudo mkdir /mnt/winefi
sudo mount /dev/nvme0n1p2 /mnt/winefi

ブート構成データ(BCD)をsystemd-boot EFIメニューにコピーし、Windowsパーティションをアンマウントします。

sudo cp -R /mnt/winefi/EFI/Microsoft/ /boot/EFI/Microsoft
sudo umount /mnt/winefi
sudo rm -rf /mnt/winefi

これは、ArchのGPT / MBR / UEFI / BIOS設定がWindowsと同じ場合にのみ機能します。たとえば、systemd-bootをチェーンロードArch = GPT/UEFIできません。Windows=Bios/MBRよりウィキペディア

関連情報