この質問を調べましたが、明確な答えが見つかりませんでした...明確な質問も見つかりませんでした。だから簡単な例を挙げましょう。
マイコンピュータには**ハードドライブ2台:**があります。
- ハードドライブ1:UbuntuLinuxとGRUB2存在する膜バイオリアクター。
- ハードドライブ2:どの他のオペレーティングシステム(どのオペレーティングシステムに影響しますか?)とは異なるMBRローダ。
GRUB2のみUbuntuで起動(私の例では、最初のハードドライブにあります)
発行を確実update-grub
に検出されないOSは2番目のハードドライブにありますが、1つもあることを知っています。
入るとバイオス起動時間と起動順序をHDD 2(2番目のOS)に変更良いブーツ。
どうやってできるかGRUB2にアイテムを追加ブートセカンドハードドライブ?
(事実はこの質問ができると思います。いいえ2番目のハードドライブのオペレーティングシステムを指定します。それとも? )
要求に応じて、os-prober
この構成を使用してサンプルマシンの出力を追加します。
luis@threepwood:~$ sudo os-prober
/dev/sdb1:Windows 7 (loader):Windows:chain
/dev/sdb7:Ubuntu 14.04.3 LTS (14.04):Ubuntu:linux
この特定の例では(BIOSで起動順序を変更しました):
sdb
HDD-1です。sda
HDD-2です。
答え1
私は通常grub.cfg
手動で作成し、絶対に使用しませんupdate-grub
。そして、起動場所を選択できる、いわゆるデフォルトのGrub2ブートローダがあります。その後、各Linuxディストリビューションに独自のルートパーティションに独自のブートローダをインストールさせます。これにより、Linuxで編集できます。私のメインgrub2ブートローダに触れることなく、独自のブートローダを使用できます。
別のディスクMBRに移動するためにgrub.cfg
ディスクを最初のディスクと見なす必要がない通常のOSには、次の項目が設定されました。
menuentry "Boot from second disk" {
chainloader (hd1)+1
}
menuentry "Boot from third disk" {
chainloader (hd2)+1
}
menuentry "Boot from fourth disk" {
chainloader (hd3)+1
}
だから私が望む別のディスクにMBRをロードします。
ただし、最初のディスクと同じように、他のディスクを見たいと思うトリッキーなLinux(および一部のWindows)では、grubメニュー項目にいくつかのコマンドを追加して次のようになります。
menuentry "Boot from second disk and see it as first disk" {
set root=(hd1)
drivemap -s hd0 hd1
chainloader +1
}
menuentry "Boot from third disk and see it as first disk" {
set root=(hd2)
drivemap -s hd0 hd2
chainloader +1
}
menuentry "Boot from fourth disk and see it as first disk" {
set root=(hd3)
drivemap -s hd0 hd3
chainloader +1
}
すべて詳しく説明します。
(hd#)はディスクを表します。ここで、#は0から始まります。
Drivemapはドライブスワップを実行するため、すべてのディスクを最初のディスクまたは希望の番号で表示できます(表示されている2つのディスクの順序を変更します)。
chainloader(hd#)+ 1はディスクのMBRにジャンプします。
chainloader +1(ルート)に保存された最初のセクタにジャンプ
set root=... (root) が所有する項目を設定します。
(root)は、入力を少なくするために使用できる変数と同じです。
ファイルの完全な文書を表示するには、grub.cfg
公式ウェブページを確認してください。
答え2
それは簡単です。次の手順に従ってください。
例のシナリオ:
/dev/sda1
– セントOS/dev/sdb1
– Debian
CentOSドライブにアクティブMBRがあるとします。このようにして起動後にDebianを追加するだけでCentOSシステムに入ることができます。
アクティブなオペレーティングシステム(このシナリオではCentOS)での作業:
mount /dev/sdb1 /mnt/debian
menuentry
次のように、全体のDebian部分を切り取ります/mnt/debian/boot/grub{2}/grub.cfg
。menuentry 'Debian GNU/Linux' --class debian --class gnu-linux ... { ... }
これでファイルを作成します。
touch /etc/grub.d/11_linux
これはスクリプトなので、次のことを行う必要があります。
chmod +x /etc/grub.d/11_linux
次に追加:
#!/bin/sh echo "
11_linux
セクションを貼り付けます。"
最後までやりましたね。したがって、私たちは次のことをしなければなりません。centos #~> cat /etc/grub.d/11_linux #!/bin/sh echo "menuentry 'Debian GNU/Linux' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-78026456-ebcc-4eed-b59d-a3f0bdff7353' { load_video insmod gzio if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi insmod part_msdos insmod ext2 set root='hd0,msdos1' if [ x$feature_platform_search_hint = xy ]; then search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 f2de4123-5a98-4568-99dd-e61940b99ab2 else search --no-floppy --fs-uuid --set=root f2de4123-5a98-4568-99dd-e61940b99ab2 fi echo 'Loading Linux 3.16.0-4-amd64 ...' linux /vmlinuz-3.16.0-4-amd64 root=/dev/mapper/Thinkpad--vg-root ro quiet echo 'Loading initial ramdisk ...' initrd /initrd.img-3.16.0-4-amd64 }"
grub2-mkconfig -o /boot/grub{2}/grub.cfg
再起動。
望むより。
答え3
こんにちは、ちょうど同じ問題が発生しました。 os-proberをインストールした後、grub-customizerはos-proberを使用して2番目のHDDでオペレーティングシステムを見つけて起動メニューに追加できることを発見しました。設定ファイルを編集するよりもこれが簡単であることがわかります:)
答え4
2番目のHDDのgrub構成にエントリを追加する必要があると思います。
どのオペレーティングシステムであるかは問題ではありません。
私はWindows HDDでgrub2でデュアルブックを使用しています。 WindowsとLinuxを検出して起動するオペレーティングシステムを選択するためのメニューを提供します。
高度な設定、チェーンロード、およびグルーブに手動でアイテムを追加するには、次のリンクをクリックしてください。