web-dev-qa-db-ja.com

カーネル引数をPXE経由でUbuntuのようなOSインストーラーISOに渡すにはどうすればよいですか?

QuantaStor (Ubuntuベース hiss のリモートインストールを実行する必要がある厳しい状況にあります=)帯域外アクセス機能が制限されたハードウェアへのアプライアンス。

ターゲットシステムは HP ProLiant DL180 G6サーバー であり、完全にライセンスされた Lights-Out LO100i リモートKVMがあります。これは、ILO3またはILO4管理プロセッサーからの大きな一歩です。このハードウェアの課題は、 LO100iの仮想メディア機能は信頼できない であるということです。 Javaリリースが進むにつれて、このILOの有用性は低下しました。現在、リモートメディアを介してシステムを起動することはできません この機能は過去にうまく機能していましたが)

したがって、次のステップは、QuantaStorISOイメージを使用してこのサーバーをPXEブートすることでした。奇妙なことに、howブートローダーなどをチェーンせずにISOイメージを直接PXEブートできるという矛盾するアカウントがいくつかあります。いくつかの実験の結果、ISOをブートできることがわかりました。 PXEサーバーを介して memdisk を使用します。私はこの環境でDNSとDHCPを制御しているので、/etc/dhcpd.conf構成ファイルを変更して以下を反映する標準的なルートを使用しました。

# Begin temporary PXE boot
allow booting;
allow bootp;
option option-128 code 128 = string;
option option-129 code 129 = text;
next-server 172.30.27.5;
filename "/pxelinux.0";
# End temporary PXE boot

PXE構成では、/tftpboot/pxelinux.cfg/defaultを次のように設定します。

default menu.c32
Prompt 0
timeout 300
ONTIMEOUT local

MENU TITLE PXE Menu

LABEL QuantaStor
        MENU LABEL QuantaStor
        KERNEL memdisk
        APPEND iso initrd=images/osn_quantastor_v3.8.2.5441.iso raw

これらの機能を組み合わせることで、システムにISOの起動を開始させることができました。残念ながら、リモートKVMのコンソールは次の文字化けしたビデオ出力を生成しました:

enter image description here

アプライアンスのインストール画面は次のようになります

enter image description here

何度か再起動し、いくつかの基礎研究の結果、LO100リモートKVM このフレームバッファーの症状を共有 いくつかの Supermicro IPMIボード と共有している)==であることがわかりました。ブート引数にvga16fb.modeset=0を渡すことです。これはUbuntuに固有です(sigh)。

このステートメントをPXEブートISOの引数行に挿入するにはどうすればよいですか?

ステートメントはどこに追加すればよいですか?

/tftpboot/pxelinux.cfg/defaultの「APPEND」行でそうしようとしても役に立たないようです。 Ubuntuのヒントでは、ISOブート画面でF6を押して行を追加することをお勧めします。私のリモートKVMはその時点で文字化けしており、手動で追加することができません。

何か案は?


更新:

ISOを抽出し、isolinux.cfgファイルを変更して、カーネルAPPEND行でのインストーラーのフレームバッファーサポートを変更しました。システムが起動し、インストーラーが機能しているように見えます...ただし、CDROMに関するエラーが表示されます。 PXEメソッドが正しくないと思います。

このコンテキストでISOover PXEを使用する適切な方法は何ですか?

enter image description here

5
ewwhite

ブートディスクにはカーネルブートを処理する独自のISOLINUXがあるため、必要なパラメータでappendを変更しても、このセットアップではPXELINUXの助けにはなりません。

これを修正する2つの方法。

より簡単なオプション:ISOを抽出し、isolinux/isolinux.cfgファイルのappend行を必要なブート引数で変更し、ISOを再パックします。変更されたISOへのPXELINUXチェーンを用意します。

より複雑な(ただし、チェーンが削除されるため、より良い)オプション:memdiskを使用してISOを起動する代わりに、ISOのISOLINUXが実行するのと同じ方法で直接起動します。

編集: ISO内のOSから起動するためのより明確な手順:

  • ISOを/tftpboot/quantastoreに抽出します
  • ファイルpreseed/quantastor.seedを抽出されたISOからPXEサーバーで実行されているHTTPサービスのWebルートにコピーして、http://172.30.27.5/quantastor.seedで利用できるようにします。
  • ISOの抽出されたコンテンツを直接起動するようにpxelinux.cfg/defaultファイルを変更します。現在のLABEL QuantaStorを削除し、次のように置き換えます。

    LABEL QuantaStor
      menu label QuantaStor
      kernel quantastor/install/vmlinuz
      append preseed/url=http://172.30.27.5/quantastor.seed locale=en_US.UTF-8 keyboard-configuration/layoutcode=us initrd=quantastor/install/initrd.gz ramdisk_size=16384 nodmraid acpi=off root=/dev/ram vga16fb.modeset=0 rw quiet
    

これにより、ほとんどの部分でインストールが成功するはずですが、インストールの最後にQuantaStorが実行するコマンドは、/cdromを直接探しているため、失敗します。 quantastor.seedファイルから:

 d-i preseed/late_command string mkdir -p /target/lib/plymouth/themes/quantastor; \
 chroot /target echo "creating package dirs, setting up splash screens" >> /var/log/qs_install.log; \
 mkdir /target/qs-pkgs; \
 mkdir -p /target/qs-pkgs/drivers; \
 mkdir -p /target/opt/osnexus/quantastor/raid-tools; \
 cp /cdrom/finisher/raid-tools/* /target/opt/osnexus/quantastor/raid-tools; \
 cp /cdrom/finisher/deb/*.deb /target/qs-pkgs; \
 cp /cdrom/finisher/qs_preseed.sh /target/qs-pkgs; \
 cp /cdrom/finisher/drivers/* /target/qs-pkgs/drivers; \
 cp /cdrom/finisher/splash/* /target/lib/plymouth/themes/quantastor; \
 cp /cdrom/finisher/osnexus.gpg /target/qs-pkgs; \
 cp /cdrom/finisher/osnexus.list /target/etc/apt/sources.list.d/osnexus.list; \
 cp /cdrom/finisher/rc.local /target/etc/rc.local; \
 cp /cdrom/finisher/qs_runonce.sh /target/etc/qs_runonce.sh; \
 chroot /target /qs-pkgs/qs_preseed.sh

おそらく、インストールが最初に完了した後に手動で実行するだけです(/targetのものを削除します)-それ以外で機能している場合は、これらのコマンドを適応させて、CDが入っているかどうかに関係なくそれらのものを配置できますドライブ。

5
Shane Madden

「ブラインド」と入力しますか?

ヒット Enter (文字化けした)言語の選択が表示されるとすぐに、すぐにタイムアウトします。

次にタップ F6、 Escvga16fb.modeset=0と入力して、 Enter

あなたはおそらく打つ必要性を逃していた Esc 直後の F6

2
Michael Hampton