私はデュアルブートでWindowsとLinuxをインストールする古典的な手順に従いました。まず、WindowsをUEFIモードでインストールし、起動可能なPopOSキーを使用してデフォルトのWindowsパーティションのサイズを変更しました。残りのスペースにLinuxパーティションと/boot/efi
500MBのパーティションを作成しました。
私の問題は、systemd-boot
Windowsブートローダが検出されないようです。
システム起動メニューを表示すると、可能な起動オプションとしてPopOSのみが一覧表示されます。ただし、問題なくBIOSメニューからWindowsを起動できます。
実行すると、bootctl
次の結果が表示されます。
System:
Firmware: UEFI 2.70 (American Megatrends 5.14)
Secure Boot: disabled
Setup Mode: setup
Current Boot Loader:
Product: systemd-boot 245.4-4ubuntu3.1pop0~1590695674~20.04~eaac747
Features: ✓ Boot counting
✓ Menu timeout control
✓ One-shot menu timeout control
✓ Default entry control
✓ One-shot entry control
✓ Support for XBOOTLDR partition
✓ Support for passing random seed to OS
✓ Boot loader sets ESP partition information
ESP: /dev/disk/by-partuuid/585919b8-7f1b-4f94-a0b1-6ff195d07515
File: └─/EFI/SYSTEMD/SYSTEMD-BOOTX64.EFI
Random Seed:
Passed to OS: yes
System Token: set
Exists: yes
Available Boot Loaders on ESP:
ESP: /boot/efi (/dev/disk/by-partuuid/585919b8-7f1b-4f94-a0b1-6ff195d07515)
File: └─/EFI/systemd/systemd-bootx64.efi (systemd-boot 245.4-4ubuntu3.1pop0~1590695>
File: └─/EFI/BOOT/BOOTX64.EFI (systemd-boot 245.4-4ubuntu3.1pop0~1590695674~20.04~e>
Boot Loaders Listed in EFI Variables:
Title: Linux Boot Manager
ID: 0x0003
Status: active, boot-order
Partition: /dev/disk/by-partuuid/585919b8-7f1b-4f94-a0b1-6ff195d07515
File: └─/EFI/SYSTEMD/SYSTEMD-BOOTX64.EFI
Title: Windows Boot Manager
ID: 0x0000
Status: active, boot-order
Partition: /dev/disk/by-partuuid/42f0d8f0-13e0-41cf-bc36-ac80dccc54fd
File: └─/EFI/MICROSOFT/BOOT/BOOTMGFW.EFI
Title: UEFI OS
ID: 0x0009
Status: active, boot-order
Partition: /dev/disk/by-partuuid/585919b8-7f1b-4f94-a0b1-6ff195d07515
File: └─/EFI/BOOT/BOOTX64.EFI
Boot Loader Entries:
$BOOT: /boot/efi (/dev/disk/by-partuuid/585919b8-7f1b-4f94-a0b1-6ff195d07515)
Default Boot Loader Entry:
title: Pop!_OS
id: Pop_OS-current.conf
source: /boot/efi/loader/entries/Pop_OS-current.conf
linux: /EFI/Pop_OS-3ce60b75-530a-4cad-9e80-5156a8e6bb56/vmlinuz.efi
initrd: /EFI/Pop_OS-3ce60b75-530a-4cad-9e80-5156a8e6bb56/initrd.img
options: root=UUID=3ce60b75-530a-4cad-9e80-5156a8e6bb56 ro quiet loglevel=0 systemd.sh>
Windows Boot Manager
以下の項目を参照してくださいBoot Loaders Listed in EFI Variables
。 systemd-bootはどういうわけか私のWindowsパーティションが存在することを知っていますが、起動可能であることを検出できないようです。
(走ってもbootctl install
何も変わらないようです)
私の/boot/efi/
ディレクトリは次のとおりです。
/boot/efi/EFI
├── BOOT
│ └── BOOTX64.EFI
├── Linux
├── Pop_OS-3ce60b75-530a-4cad-9e80-5156a8e6bb56
│ ├── cmdline
│ ├── initrd.img
│ └── vmlinuz.efi
└── systemd
└── systemd-bootx64.efi
/boot/efi/loader/entries/
└── Pop_OS-current.conf
したがって、Windows ブートローダで入力する必要があるディレクトリは何らかの方法で入力されません。
この問題を診断し、Windowsをsystemd-bootの起動オプションとして追加するにはどうすればよいですか?
答え1
この方法はマルチドライブシステムでのみテストされました。
Windows EFIパーティションの検索
lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINT
パスの作成とWindows EFIパーティションのマウント
sudo mkdir /mnt/win-efi
sudo mount /dev/sdb1 /mnt/win-efi
Windows EFIの内容をPOP EFIにコピーします。
sudo cp -r /mnt/win-efi/EFI/Microsoft /boot/efi/EFI
ブートローダにタイマーを追加
sudo micro /boot/efi/loader/loader.conf
loader.confに新しい行timeout 5
または秒数を追加します。
再起動
sudo reboot
答え2
これはうまくいきません。
インストーラは、オペレーティングシステムをインストールするときにbootctl install
正しいパラメータを呼び出す必要があり、インストール後に変更することはできません。
pop osが誤って設定されているため、インストール時にbootctlへのパーティションパスを提供しないため、systemdbootはWindowsパーティションを検出できません。
システムの起動を忘れ、代わりに grub を使用する必要があります。
答え3
rEFIndのインストール
さらなる調査の最後に発見したものこのRedditトピック同じ問題を持つ人から来ました。このスレッドと他のスレッドのいくつかのポスターでは、代わりにインストールを提案しましたrEFInd
。
rEFIndはインストールが非常に簡単で、Windowsパーティションをすぐに検出しました。
私は私が推奨する次のYoutubeチュートリアルに従いました。
答え4
uefiモードで利用できるかどうかはわかりません。 2010年のノートブックにレガシーモードをインストールするときも同じ問題が発生しました。 os-proberをインストールして解決しました。次に「sudo os-prober」と入力すると、インストールされているWindows 10が返されます。
その後、「sudo update-grub」と入力しました。
ついにWindows 10が見つかりました。
これが他の人に役立つことを願っています。