前回ではFlashアーカイブをDVDに焼いただけであり、これだけでは、インストール作業を途中まで行わなくてはならずtar、cpio、ufsdump、ufsrestoreコマンドを使用して、バックアップを取って、リストアすることと大差は無い。このためブータブルなリカバリDVDを作成して、DVDからのブートとFlashアーカイブの復元を組み合わせた、Windowsでいうところの「Acronis True Image」「Norton Ghost」といったバックアップソフト並みに一連のリカバリ作業を自動化すれば、煩わしい手作業から開放されるのだ。
簡単に言えば、ブータブルなリカバリDVDはSolariaインストールディスクにあるプログラムとFlashアーカイブというデータを組み合わせたものである。ここで言うプログラムとは、PCの電源を入れるとBIOSが起動して、DVDからブートローダーが読み込まれ、ブートローダーはインストールミニルート(以降ミニルート)と呼ばれるインストールに必要な最小限のOSを起動する、ミニルートはインストーラを起動する、インストーラ(特にJumpStart と呼ばれる自動インストーラ)はFlashアーカイブの内容をディスクに書き込む、・・・といった連鎖によってリカバリ作業を実行していくものを指す。
- ブータブルなリカバリDVDの作成
- Oracleの停止
- Flashアーカイブの作成
- インストールディスクのコピー
- ミニルートの展開
- sysidcfgの作成
- profindの修正
- install-solarisの修正
- ミニルートの圧縮
- GRUBメニューの編集
- rulesファイルの編集
- profileの作成
- 開始スクリプトの作成
- profileのチェック
- DVDイメージファイルの作成
- DVDに書き込み
- ワークエリアの消去
- リカバリ
- リブート
- リブート後の処理
- ホスト名を設定する
- ログホストを定義する
rootユーザーで入り、以下のようにブータブルなリカバリDVDを作成する。
Oracleを停止する
前回と同じようにFlashアーカイブを作成するが、最終的にはDVDにブートイメージを含めるで、1段階層を深くして/dvdimage以下に作成する。なおここが起点であり、DVDがマウントされたときの先頭ディレクトリになるところである。
インストールディスクから不要部を除いて、ハードディスクにコピーする。不要部とはインストーラと、それを実行するための必要環境以外のソフトウェアのことである、インストールディスクに入ったSolasisシステムをインストールするのではなく、Flashアーカイブに入ったSolasisシステムをインストールするので、出来る限り不要部は除外するほうが望ましく、空いた分だけ大きなFlashアーカイブが入ることになる。Solasisのインストールシステムは./Solaris_10以下に入っている。ただし/Solaris_10/Misc以下にはJumpStartのサンプルが入っているので、この部分だけはコピーしておく。
ドライブにインストールディスクを入れて、インストールディスク全体を「Solaris_10/Misc」以外の「Solaris_10」ディレクリを除外して「cpio」コマンドによってコピーする。
DVDイメージの展開先を「/dvdimage」とした、コピー元の「/cdrom/cdrom0」はドライブが一台の場合、メディアを入れると通常はここにオートマウントされる。最初のコピーは.「/Solaris_10以外」にフィルター、次のコピーは「Solaris_10/Miscのみ」のフィルターをかけてコピーする。
ミニルートはRAMディスクに展開されてから、実行される、このため決められた形式があるので、操作には専用コマンドを用いる。すなわち、root_archiveコマンドにunpackオプションを使用してインストールディスクの「boot/x86.miniroot」を「/dvdimage/miniroot」以下に展開する。以上でインストールディスクから必要なものはコピーしたので、ホームディレクトリに戻り、インストールディスクを取り出す。
「sysidcfg」は手動インストールの場合に入力する値をプロファイル化したものである。配置するディレクトリに移動して、元を(空リンクのシンボリックリンクになっている)を保存する。次にrootのシャドウパスワード(下記では“abcdefghijklm”と記す)を求めておいて、「sysidcfg」を新規作成する。
先に求めたrootのシャドウパスワードをroot_passwordの右辺に入れて、下記のように「sysidcfg」を作成する。なお、root_password以外の項目は手動インストールで設定した値と同じである。
インストレーションスクリプト「profind」はインストラーが参照するプロファイルがある場所をマウントする。ただしそれを行っている箇所が条件文によって通過しないので、無条件に通過してマウントするように修正する。
「201G」で201行目に飛び、下記のように修正する。
「第2回 Solaris 10 5/09(10/08)のインストール」の「BIOS(Basic Input/OutputSystem)の設定」で述べたように、CD-ROMの自動排出の指定は無効なオプションなので、同稿のようなBIOSの対策を取らないと、手動排出しない限り気がつかないままに、リカバリを繰り返し、そこから脱出できない。そこで下記のようにインストールスクリプトを修正して、リブートの直前になったらビープ音を鳴らしてユーザに注意を促し、ユーザはリブートのころを見計らって、DVDからブートが始まる前に、即座にメディアを取り出すようにする。
インストーラの実体は「install-solaris」というシュルスクリプトである。それの処理の最後でリブートをしている直前に、ビープ音を鳴らす処理を付け加える、 (100秒間繰り返すようになっているが、短すぎる、あるいは長すぎる場合は100の数値を変更する。)
920行目の「reboot」の前に下記の網伏せ部分を追加する、修正したら「:wq!」で強制書き込みをして終了する。
以上でミニルートの編集が終わったので、今度はroot_archiveコマンドを使用してunpackとは逆にpackオプションを使用して「/dvdimage/miniroot」以下を「boot/x86.miniroot」に圧縮する。これで、ミニルートは完成したので。ミニルートからカレントディレクトリを移動して削除する。
GRUBの画面で表示されるメニューから、installオプションによってJumpStartが実行されるように編集する。
下記の網伏せ部分を追加したら「:wq!」で強制書き込みをして終了する。
rules ファイルを作成する、書式は次のとおりでカラムはスペースで区切る、省略するカラムには「-」を入れる。
[Rule keyword][Rule Value] [Begin script] [Profile] [Finish script]
「/.install_config」へ移動する、ここは特に「JumpStartディレクトリ」になる所である。「rules」ファイルがチェックを受けて合格すると「rules.ok」という名前に変更されるので、これを「rules」ファイルの前回分として保存して、rules ファイルを編集する。
サンプルは/dvdimage/Solaris_10/Misc/jumpstart_sample/rulesであるが、ファイルの内容は下記の1行だけでよいので新規作成する。内容は「any -」で特定は無し、「-」で開始スクリプトは「x86-begin」、プロファイルは「any_machine」を使用、「-」で終了スクリプトは無し、と設定した。
サンプルは/dvdimage/Solaris_10/Misc/jumpstart_sample/any_machineであるが、これも流用できるところがほとんど無いのでviを起動して新規作成する。
下記の追加を行う。
設定した定義内容は下記のとおり。
install_type flash_install | … | フラッシュアーカイブによる上書きインストール |
archive_location local_file /cdrom/flash/soi.flar | … | フラッシュアーカイブのパスネーム |
partitioning explicit | … | パーティションをfilesysによって指定 |
filesys any free / | … | スワップを割当てた残りを全部 |
filesys any 4096 swap | … | スワップサイズは4096M バイト |
開始スクリプトは下記のとおりサンプルをコピーして、そのまま使用する。
カレントディレクトリのrules ファイルをチェックして、rules.okを作成する。
/dvdimage以下を「mkisofs」コマンドによってDVDディスクイメージに変換する。ISO9660(CD-ROM の標準ファイルシステム)を拡張してEl Toritoによってブート可能にして、Rock Ridge (ロックリッジ)によってUNIX 系ファイルシステムのアクセス権、シンボリックリンク、ファイル名、ディレクトリ階層をサポートする。使用するオプションは下記のとおりである。
使用したオプションは下記のとおりである。
-o /dvdimage/flash/soi.iso | … | 作成するイメージのパスネーム |
-b boot/grub/stage2_eltorito | … | ブートローダーに「stage2_eltorito」を使用 |
-c .catalog | … | ブートカタログに「.catalog」を使用(相対パス) |
-no-emul-boot | … | 非エミュレーションモード、stage2_eltoritoをそのまま実行 |
-boot-load-size 4 | … | 4セクタ(512バイト) ロードする |
-boot-info-table | … | ブートファイルの指定位置ににブート情報テーブルを挿入する |
-relaxed-filenames | … | ファイル名に小文字を除く全ての7ビットASCII文字を含む |
-N | … | バージョン番号を除外 |
-L | … | ドットファイル名を許可 |
-l | … | ファイル名を31文字まで許可 |
-r | … | RockRidge拡張形式 |
-J | … | Jolietディレクトリレコード |
-d | … | ファイル名末尾のドットを除外 |
-D | … | 深いディレクトリ階層の再配置をしない |
ドライブにDVDのリライタブルメディアを入れて、初期化が済んでいない場合は、「cdrw」コマンドに「-b」オプションを使用して初期化する(通常は「fast」、初期化できない場合は「all」によって時間がかかるが全体を初期化する)。次に「-b」オプションを使用してイメージファイルを書き込む。
イメージファイルが無事書き込まれたら、下記のとおり使用したディレクトリ以下のファイルを削除して、終わり。
ドライブにDVDを入れたまま、DVDからリブートするとリカバリが始まる。
Flashアーカイブからのリカバリが終了すると、「第3回Oracle インストールの前準備」で設定した下記の情報が飛んでしまうので、リブート後に再設定を行う。
0 件のコメント:
コメントを投稿