web-dev-qa-db-ja.com

/としてのSLESのinitrdまたはramfs

SLESを起動して、RAMディスクから実行したいと思います。 PXEブートを開始し、PXEブートプロセスの一部として、ルートファイルシステムであるイメージをプルしてからこれをブートするようにマシンをセットアップしたいと思います。

誰かがこれまたは同様のことをもうしましたか?

私の考えでは、initrdはほとんど私が欲しいものですが、機能が小さすぎて不足しています。したがって、最小限のインストールを実行してから、これをcpioして、独自のカスタムinitdを作成しました。 (これは約350Mですが、この目的には大きいので問題ありません)。

fsck/dev/shm/rootを試行した時点で起動に問題があります。これを防ぐ正しい方法は何ですか(/etc/fstabで設定してみましたが、うまくいきません)。次のオプションとして、sysconfigファイルを設定してREADONLYROOTを強制します。これにより、初期化プロセスが/etc/init.d/rc3.dに切り替わるところまで起動しましたが、それ以上進むことができません。

アドバイスやアイデア、または他の誰かがこれを行った場合、それはすべて素晴らしいことです。

PS。セットアップは1TBの大きなノードですRAM OS用のローカルファイルシステムは必要ありません。代わりに、NFSサーバーをルートファイルシステムにしますが、NFSトラフィックは必要ありません。 RAMディスクは良いオプションのようです。

3
Ben

私は順調に進歩しました。

ファイル/etc/init.d/boot.d/boot.rootfsckを編集して、ファイルシステムタイプの例外としてramfsをfsckプロセスに追加しました。 (79行目)。

        aufs|tmpfs|afs|cifs|nfs|novell|smb|ramfs|UNKNOWN*) MAY_FSCK=0 ;;

これを行った後、READONLYROOTを使用してsysconfigを作成する必要はなくなりました。

これを行った後、次のようにブート行を持つようにpxelinux.cfgを設定します。

LABEL SLES11 InMemory OS
  KERNEL suseBig/vmlinuz-3.0.74-0.6.8-default
  APPEND initrd=suseBig/suseImage rdinit=/sbin/init
  TIMEOUT 100 

ファイルsuseImageは、SLESの稼働中のインストールのルートファイルシステム全体のcpioアーカイブですが、ルートの/ etc/fstab行が変更されています。 ((別のディスク上の)別の動作中のOSからこの動作中のSLES環境にアクセスしてCPIOアーカイブを構築する必要がありました)

rootfs /                  rootfs       defaults        0 0

これがすべて完了すると、ノードは正常に起動し、PXEを介してネットワーク全体で起動するSLESの動作中のRAMディスクバージョンができました。 (したがって、起動には時間がかかりますが、その後はOSのネットワークトラフィックがなくなります)。永続性はありませんが、アプリケーション層で私の場合はそれを解決します。

0
Ben