GRUBのトリプルブートMBRを使用したWindowsブートマネージャの防止

GRUBのトリプルブートMBRを使用したWindowsブートマネージャの防止

MBRパーティションディスクの3つの異なるパーティションにトリプルブートシステム(Windows 10 Home 21H1 / Windows 7 Pro / Debian 11)がインストールされており、起動時に問題なく各システムをブートできます。ただし、GRUBメニューでは、「Windows 10」(最初のインストールのため)という単一のエントリからすべてのWindowsシステムにアクセスできます。Windowsブートマネージャ起動したいWindowsシステムを選択します。したがって、すべてのWindowsシステムは起動時に2つのメニューを表示します。これは実用的ではありません。

WBMを介さずにGRUBメニューからWBMのWindowsエントリに直接アクセスできるソリューションがあるかどうか自分に尋ねました。さまざまなソリューションを検索してテストしましたが、何も機能しませんでした。

私はこれが可能だと信じていますが、どうすればいいかわかりません...

私が試した最後の試み:

root@host:~# lsblk -lo NAME,FSTYPE,LABEL,UUID
NAME FSTYPE LABEL UUID
sda               
sda1 ntfs   W10H  7A42F6E942F6A8D1
sda2 ntfs   W7P   0628B81B28B80C25
sda3 ext4         a696a4ab-3120-4028-bd87-c2aaa40499bd
...  
root@host:~# cat /etc/grub.d/40_custom
#!/bin/sh
exec tail -n +3 $0
...
menuentry "Windows 7" --class windows --class os {
   insmod part_msdos
   insmod ntfs
   insmod ntldr
   set root='(hd0,msdos2)'   
   search --no-floppy --set=root --fs-uuid 0628B81B28B80C25
   ntldr ($root)/bootmgr
   chainloader +1
}
root@host:~# update-grub

このエントリを起動すると、次のようになります。 error : /bootmgr file not available


@telcoMが提案したように、SEのグローバルセクションで助けを見つけました。ついに@oldfredと@Tom Yanの助けを借りて問題を解決しました。そこそこに私の実装を詳しく説明します。

ベストアンサー1

GRUBコマンドは現在、最初のHDDの2番目のパーティションで指定されたファイルをntldr探していますが、そのファイルは存在しません。bootmgrWindows 10とWindows 7はどちらも同じWindowsブートマネージャを使用できます。現在、システムでこれを行うように構成されており、ブートマネージャーは使用可能なオペレーティングシステムメニューを表示するように構成されています。最新のWindowsオペレーティングシステム用のインストーラは既存のWindowsブートマネージャを探し、存在する場合は別のインスタンスをインストールする代わりに、新しくインストールされたオペレーティングシステムを既存のブートマネージャメニューに追加します。

GRUBはオペレーティングシステムの選択情報をWindowsブートマネージャに渡すことができないため(つまり、WBMは他のブートローダからの入力をユーザーが直接入力することしかできません)、両方をインストールする必要があります。例: 1 つは次のように構成されます。 Windows 10を起動し、もう1つはWindows 7のみを起動するように構成されています。その後、GRUBメニューを使用して使用したいブートマネージャを選択し、Windowsのバージョンを選択できます。

Windowsブートマネージャの2番目のコピーをインストールすることは、Unix&Linux.SEの範囲外です。これについてのアドバイスが必要な場合は、尋ねることもできます。スーパーユーザーSE代わりに。

おすすめ記事