
現在の設定状態のため、SyslinuxにGRUB2をデフォルトのブートローダにリンクロードさせるようにしたいと思います。 GoogleはGRUB2リンクからSyslinuxをロードする方法について多くの情報を提供していますが、私が探している反対のシナリオについては実際に役立つ情報を提供しません。
答え1
私は自分で試したことがありませんが、ArchLinux Wikiでこれらの詳細を見つけました。適切なタイトルの記事から:システムLinux。次のセクションがあります。他のLinuxシステムをチェーンロード。
抜粋
他のブートローダ(Windowsなど)をロードするために接続することは、接続する明示的なブートローダがあるため非常に明白です。ただし、Syslinuxの場合、構成ファイルと同じパーティションにあるファイルのみをロードできます。したがって、別のパーティションに異なるバージョンのLinuxがあるが共有/ブートがない場合は、Extlinuxを使用する必要があります。デフォルトでは、Extlinuxはパーティションスーパーブロックにインストールでき、Syslinuxとは無関係にインストールされたMBRのブートローダとして呼び出すことができます。 ExtlinuxはSyslinuxプロジェクトの一部であり、syslinuxパッケージに含まれています。
次のようにGrub2を使用するシステムがあるとします。
/dev/sda3
(/
)/dev/sda2
(/boot
)
次のようにインストールできます。
$ mount /dev/sda3 /mnt
$ mount /dev/sda2 /mnt/boot (only necessary for separate /boot)
その後、extlinux
インストール後に以下を実行します。
$ extlinux -i /mnt/boot/syslinux
$ cp /usr/lib/syslinux/{chain,menu}.c32 /mnt/boot/syslinux
そして、このファイルを作成してください/mnt/boot/syslinux/syslinux.cfg
::
timeout 10
ui menu.c32
label Other Linux
linux /boot/vmlinuz-linux
initrd /boot/initramfs-linux.img
append root=/dev/sda3 ro quiet
label MAIN
com32 chain.c32
append hd0 0
答え2
GRUBのファイルが/boot/grub
syslinuxと同じパーティションにあると仮定すると、boot.img
次のように最初のGRUBイメージをチェーンロードできます。
LABEL GRUB
MENU LABEL Grub2 chainload
COM32 CHAIN.C32
APPEND file=/boot/grub/boot.img
答え3
これを行う方法はいくつかあります。ブートローダのパブリックソースコードを持たないチェーンロードWindowsとは異なり、grubはさまざまな形式で提供されており、追加するのは難しくありません。 CostinStroieの方法はブートセクタをロードするバリアントを使用し、grubがインストールされており、レガシーBIOSがあり、ネットワークブートではないと仮定すると正常に動作します。他の grub イメージを使用することもできます。かつてsyslinuxカーネルキーワードを使用してロードできるLinuxイメージヘッダーを持つGrubレガシーイメージがありました。 (私はこれをしている人がわかりませんが)、grubをsyslinux固有のc32イメージにコンパイルできます。もう1つ興味深いのは、pxelinuxからpxe grubイメージをロードすることと、memdiskを使用してgrubフロッピーイメージをロードすることです。
答え4
GRUB2をPBR(MBRではない)、Syslinuxと同じディスク(sdaなど)の他のパーティション(sda3など)にインストールしたとすると、次のコマンドリンクからGRUB2をロードできます。
LABEL Other Linux (Linux installed on sda3 & Syslinux installed on sda)
MENU LABEL Grub2 chainload
COM32 chain.c32
APPEND boot 3
問題なくYUMIでテストされました。