GRUB2からsyslinuxをチェーンロード-syslinux.cfgメニューを表示


9

システムのイメージを再作成するためにClonezillaライブUSBディスクを使用しています。http://clonezilla.org/fine-print-live-doc.php?path=clonezilla-live/doc/99_Misc/00_live-boot-parameters.docで説明されている内容に従って、ディスクに含まれるメニューが表示されますでsyslinux.cfg私はとプロンプトが表示されていますUEFIマシン(とBIOSが最初のUEFIデバイスからブートするように設定されている)されている非常に最新のものを除くすべてのシステムのためgrub.cfgのメニュー。メニュー

を大幅にカスタマイズしたので、すべての場合にメニューを表示するためにsyslinux.cfggrub.cfgファイルをsyslinuxに自動的にチェーンロードするだけに変更したいと思いますsyslinux.cfg

これはまったく可能ですか?どうやって?

ディスクにはGRUB2があり、私の理解(インターネットを見回すことから)はそれが可能であることですが、私はまだその方法を理解していませんでした。どんな助けでもありがたいです。

編集:
私はしているオプションのいずれかの選択の問題もなく、GRUBを使用してシステムをブートすることを明らかにしたいと思いますgrub.cfgConezillaのダウンロードにより提供されるように、デフォルトでメニューを、しかし、私がやりたいこと(中SYSLINUXのメニューを表示することですsyslinux.cfggrub.cfg

2番目の編集のデフォルトメニューの代わりに、私はそれを行いました。
結局、提案された解決策は私にとって機能しなかったので、単に「EFI \ boot」フォルダーを「使用不可」にしました(名前を変更)。このようにして、UEFIブートは失敗し、システムは古いシステムの場合と同様にsyslinuxからブートします。BIOSの変更なし、新しいメニューなし、チェーンロードなし...


configfileおそらく、grub.conf内のパラメーターを使用してsyslinux.cfgをチェーンロードできます
SHW

回答:


1

これは、これに関連するいくつかのバグといくつかのパッチであることを示唆しているため、確実に知ることは困難です。https//bugs.launchpad.net/ubuntu/+source/grub2/+bug/469568

まず、OSがgrubを更新すると、grub.cfgが再生成され、構成が消去されます。そのため、手動で/boot/grub.cfgを変更せず、/ etc / grub.d内のファイル(40_customなどの名前のファイル)を変更してください。そしてを呼び出しますgrub-mkconfig -o /boot/grub/grub.cfg

次のような簡単な方法を試すことができます。

menuentry "Syslinux root drive" {

root =(hd1,3)を設定します

チェーンローダー+1

}

(hd1,3)はsdb3ディスクパーティションです。GRUBはUUIDによる識別をサポートしているため、すべてのPCでパーティションが検出されるセットアップを作成できます。しかし、私の経験では、これで十分でない場合があります。

次のようなことも試すことができます chainloader (hd1,3)/path/to/syslinux/isofile.bin

すべてが失敗した場合、syslinuxを含むisoから起動することは可能ですが、あなたの場合、これはオプションではないようです。


私は最初にgrubコマンドラインからこれを試しました(grubでcを1回押します)、syslinux.cfgパーティションを識別して「chainloader(hd0、msdos2)+1」を直接試しましたが、「無効なEFIファイルパス」というエラーが発生しました。上記のパーティションのコンテンツには.binファイルが含まれていないことに注意してください。(私はさらに明確にするために質問を編集しました)
Rodedo

おそらくそうではありません。その名前とバイナリ形式の拡張子(.bin)はディストリビューションによって異なります(ライブCDには通常、syslinuxとisolinuxで起動できるようにするためのビンがありますが、あなたの場合はおそらく.bsファイルです。ここでコマンドを確認してくださいsyslinux.org/wiki/index.php/SYSLINUX#LABEL_command)。しかし、私は現在1つのことを研究しています:casperモジュール(別名live cd / live usbモード)でカーネルを直接起動しないと、そのブートローダーメニューが実行されません。数分後、結果を書きます。
IBr 2013

OK、候補はそのフォルダにある.c32ファイルです。より正確には、これはフォルダーのコンテンツです:cfgファイルを除く「chain.c32」、「menu.c32」、「reboot.c32」、「vesamenu.c32」、「memdisk」、「syslinux.cfg」<br> 、もう一つ一つ試してみませんか?周りを見回すと、chain32が他の方向のチャイロイドに使用されることになっていることがわかったので(私が必要とするものではないので)、間違っていますか?
Rodedo 2013

キャスパーを呼び出しても、ブートローダーメニューは呼び出されません。これをアーカイブする方法がわかりません。それが役立つだろうならば、私は、GRUBに例をchainloading自分のグラブを持って、私はそれがSYSLINUXで任意の使用を持っていることを疑う:menuentry 'Archlinux The Latest' { insmod ext2 set root=(hd0,6) multiboot /boot/grub/i386-pc/core.img }
IBR

0

4年後... :)

これを試して:

menuentry 'menuentry' {
    set root=(hd0,1)
    syslinux_source /path/isolinux/isolinux.bin
    syslinux_configfile /path/isolinux/isolinux.cfg
}

1
これについて問題を解決する理由を少し詳しく説明してください。
カウンター

-1

ブートセクターインストールではなく、ディレクトリインストールを実行する必要があります。ブートセクターのインストールを行う場合は、パーティションの最初の512バイトをファイルにddし、そのファイルにチェーンロードします。私のために働いた。


これは正しいかもしれませんが、説明されている手順の実行方法についての少しの説明(および適切な大文字の使用)から利益を得る可能性があります。
カレブ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.