web-dev-qa-db-ja.com

Syslinuxを使用してUbuntuインストールをチェーンロードする方法は?

私は私の質問を詳述するために最善を尽くします。忍耐力が足りなくなる場合は、最後の段落に進んでください。

Ubuntu 13.04を公式サイトからダウンロードし、ファイルをUSBスティックのubuntu\フォルダー(Z:など)に抽出しました。そのため、ファイルはZ:\ubuntu\にあります。

その前に、Syslinux 5.10(6.00にはバグがあります)をダウンロードし、それを使用して次のコマンドでUSBスティックにブートコードをインストールしました。

syslinux.exe --mbr --active --directory/boot/syslinux/--install Z:

次に、chain.c32と必要なライブラリをZ:\boot\syslinuxにコピーし、syslinux.cfgに追加しました(重要でない部分は無視されます)。

COM32 chain.c32

追加isolinux =/ubuntu/isolinux/isolinux.cfg

Syslinuxは正常に起動しましたが、Ubuntuの起動に失敗しました。

エラー:オプション「マップ」にはセクターが必要です」が、それが何を意味するのかわかりませんでした。

次に、以下を使用してUbuntuのisolinuxconfigureをロードしてみました。

config /ubuntu/isolinux/isolinux.cfg/ubuntu

しかし、次のようなメッセージしか得られませんでした。

Gfxbootを読み込んでいます...失敗しました:そのようなファイルまたはディレクトリはありません

私はもう一度試しました:

config /ubuntu/isolinux/isolinux.cfg/ubuntu/isolinux /

そしてそれは言った:

COM32ファイルgfxboot.c32のロードに失敗しました

しかし、[TAB]キーのラベルを見ることができました:

ブート:

ライブライブインストールチェックmemtesthdメインメニューヘルプ

そこで、コマンドラインからUbuntuを起動してみました。

ブート:ライブ

そしてそれはそれを示しました:

/ casper/vmlinuzのロードに失敗しました:そのようなファイルまたはディレクトリはありません

SyslinuxはZ:\/ではなくルートディレクトリZ:\ubuntu\として認識するため、vmlinzのロードに失敗したと思います。そこで、ファイルをZ:\に移動して再起動しました。 syslinuxはまだgfxbootをロードできませんでしたが、Ubuntuを正常に起動しました

config /isolinux/isolinux.cfg/isolinux /

ブート:ライブ

Isolinux configureを正しく読み取ったときにgfxboot.c32を読み込めなかった理由がわかりません。たぶん、私が使用しているsyslinuxとUbuntuで使用しているisolinuxは同じではなく、ブートコードとgfxbootは互換性がありません。

Syslinux Wikiには、CONFIGが別の構成ファイルを使用してブートローダーを再起動し、次を使用して新しいホームディレクトリを設定できると記載されています。

CONFIG /path/to/cfg/file/configfile.cfg/path/to/new/base/dir

私はガイドに従いましたが、SyslinuxにルートディレクトリとしてZ:\ubuntu\を設定させるように提出しました。たぶん私はこのガイドを誤解しました。

だから私の質問は、Ubuntuまたは他のオペレーティングシステムをスタンドアロンフォルダに入れ、syslinuxを適切に構成して、Ubuntuまたは他のOSがルートディレクトリとしてディレクトリを設定し、OSを正常に起動できるようにする方法です。

4
Noverull

これがもう関係があるかどうかはわかりませんが、同じ問題が発生していて、まだ遊んでいます。私はいくつかの成功を収めましたが、それを共有したいと思います。

まず第一に、私は同じことを達成しようとしているので、彼が何を達成しようとしているのかすぐにわかりました。彼は、いくつかのLinuxディストリビューションをインストールするためのマルチブートUSBスティックを作成しようとしています。

したがって、各OSを統合して更新を容易にするには、ファイルシステム上に単独であるかのように、各ディストリビューションのブートローダーをロードしてみるのが理にかなっています。したがって、彼は彼らのisolinuxセットアップ(.isoに付属)をチェーンロードしようとしました。私もこれを試しましたが、まだ運がありません。

私が見つけた唯一の回避策(netboot isoでのみテスト済み)は、CONFIGステートメントを使用して新しい構成(この場合は/path/to/distro/isolinux.cfg)をロードする方法を使用することです。ただ、この場合、いくつかのエラーが発生したので、子構成「menu.cfg」を試しました。これはUbuntuブートメニューをスキップしましたが、Ubuntuインストーラーを正常にロードしました。

CONFIG行または以下のAPPENDを使用して、新しいホームも指定する必要があることに注意してください。

最後に、質問に対するいくつかのコメント。 PATH(Z :)に関しては、ここでは関係ありません。実際にUSBスティックから実行しているときは、Windowsを使用しておらず、UNIXのルールが適用されるためです。したがって、パスはUNIXの方法/ xxx/zzzでのみ入力してください。たとえば、「SyslinuxはZ:\をルートディレクトリ/として認識すると思います」は意味がありません。Windowsでは/ = root(ドライブレター+)\(\ = root)だからです。

あなたは私とまったく同じ目標と問題を持っているので、私は将来の進歩を共有します。

編集:これがおそらくすべてを解決する答えです。

覚えておかなければならない単純な事実は、COM32ファイルはSYSLINUX/ISOLINUXの異なるバージョン間で互換性がないということです。 SYSLINUXとISOLINUX自体は相互に互換性があります。

Ubuntu Netboot.isoでは、1つのCOM32ファイルvesamenu.c32のみが使用されます。これを、USBにインストールされているメインのsyslinux(/boot/syslinux/vesamenu.c32)のものに置き換えただけです。

次に、ブートメニューでOSのインストールを開始するファイル(/boot/ubuntu/isolinux.cfg)を指定するだけです。これにはCONFIGを使用してください。魔法のように機能します。 「vesamenu.c32を読み込めませんでした」はもうありません。

1
Asavar Tzeth