2005年11月27日日曜日

(VMware) FreeBSD 5.4 snapshotのアップグレード・インストール

参考までに、これまでの話。





Windowsでのディスククラッシュの影響で、いくつかのファイルが壊れてしまったFreeBSD 5.4が信用できないこともあり、FreeBSD 5.4のsnapshotバージョンをアップグレード・インストールしてみました。そういう障害復旧のためでなくても、たまにセキュリティーホールの修正が入ったりするので、いつまでもX.X-RELEASEバージョンを使わずに、アップデートしたほうがよいでしょうね(面倒でやらないことも多いけど、以下略)。



今回は、VMwareらしく、とっても楽チンな方法、インストール用フロッピーディスクを作成せずにインストールする方法をとりました。



FreeBSD snapshotsについてはこちら
http://www.jp.freebsd.org/snapshots/



(1) インストール用フロッピーイメージの入手



インストール用フロッピーディスクのイメージファイルをダウンロードします。
boot.flpkern1.flpkern2.flpの3つが必要です。



ここらへんからダウンロードできます。



HTTPで
http://snapshots.jp.freebsd.org:8021/pub/FreeBSD/snapshots/i386/



FTPで
ftp://snapshots.jp.freebsd.org/pub/FreeBSD/snapshots/i386/



今回はとりあえず、最新の5.4-STABLE-20051125-JPSNAPを入れることにして、その下のfloppiesの中から、イメージファイルをダウンロードしました。



ダウンロードしたファイルはすべて、VMwareのvmxファイルや、仮想ディスクイメージファイルが置かれているのと同じフォルダへ入れておきます。



(2) vmxファイルの編集



VMwareのvmxファイルをテキストエディタ編集して、フロッピーディスクのイメージファイルを、仮想マシンでフロッピーディスクとして認識できるようにします。

floppy0.present = "TRUE"
floppy0.startConnected = "TRUE"
floppy0.fileName = "fd.img"
floppy0.fileType = "file"

こんな風にvmxファイルを書き換えます。fd.imgが、フロッピーディスク・イメージのファイル名になります。



ちなみに、イメージファイルを絶対パスで、floppy0.fileName = "C:/Temp/fd.img"とかいう風に指定することもできます。



(3) インストーラの起動まで



ダウンロードしたイメージファイルのうち、boot.flpのファイル名を、先ほどvmxファイル中で指定したfd.imgへ変更します。



vmxファイルをダブルクリックして、VMware Playerを実行します。



仮想マシンが、フロッピーディスクから起動して、いつものFreeBSDをフロッピーで起動してインストールするときの画面になります。





仮想マシンがフロッピーから起動しない場合は、以下をチェック!



  • ウィンドウの上の枠にならんでいる「Floppy」というボタンが押されているか?(仮想マシン上でフロッピーが使えるようになっているか?)


  • フロッピーのイメージファイルの名前が間違っていないか?ファイルは本当に存在しているか?


  • 仮想マシンで、起動デバイスが、フロッピーになっているか?




「Kernel floppy 1」を入れろ、といわれています。



upgrade10





フロッピーを入れ替えなければならないのですが、ちょっと面倒なことをします(もっとうまい方法があるかも)。



  1. ウィンドウの上の枠にならんでいる「Floppy」というボタンを1回クリックして、仮想マシン側でのフロッピーをはずします(disconnect状態にする)。


  2. ファイル名fd.imgを、元のboot.flpへ戻します。


  3. ファイル名kern1.flpを、fd.imgへ変更します。


  4. ウィンドウの上の枠にならんでいる「Floppy」というボタンを1回クリックして、仮想マシン側でのフロッピーが使えるようにします(connect状態にする)。


これで、フロッピーディスクが交換されたことになります。インストール作業を続行するために、仮想マシン内で、何かキーを押します。



しばらくすると、「Kernel floppy 2」を入れろ、といわれています。同様の手順で、フロッピーを入れ替えを行います。



  1. フロッピーをdisconnect


  2. fd.imgをkern1.flpへファイル名変更


  3. kern2.flpをfd.imgへファイル名変更


  4. フロッピーをconnect


また、しばらくすると、「boot floppy」を入れろ、といわれています。同様の手順で、フロッピーを入れ替えを行います。



  1. フロッピーをdisconnect


  2. fd.imgをkern2.flpへファイル名変更


  3. boot.flpをfd.imgへファイル名変更


  4. フロッピーをconnect


とくにトラブルがなければ、これで、FreeBSDのインストーラが起動するはずです。



FreeBSDのインストーラは、この部分でのエラー処理が不親切で、フロッピーの入れ替え作業を失敗すると、おかしな状態のまま先にすすんでしまいます。失敗したら、面倒ですが、仮想マシンをリセットして(Playerというところをクリックするとメニューが表示されるので、[Troubleshoot]のなかの[Reset]を選ぶ)、最初からやりなおします。



今回は、フロッピーイメージを使っているので、ちょっと面倒なことになっています。もしも、CDのISOイメージがあるのなら、6.0をインストールしたときと同じ方法が使えるので、入れ替えの手間なくインストールできます。



ちなみに、よくわかりませんが、カーネルが起動する途中で、ad0が認識されたあと、妙に長時間待たされました。見なかったことにします。エヘ







(4) アップグレード・インストール



sysinstall Main Menuにて「Upgrade」を選びます。



upgrade12





本当にアップグレードするのかと警告されます。



upgrade13



何をインストールするか選べ、と言われます。



upgrade14



Customを選んでから、具体的に、basedictdocgamesinfomanを選びました。



upgrade16



どれをアップグレードするのか教えてくれ、といわれます。よっぽど複雑なインストール方法をしていない限り、ここで何をするかというと、ただ単に、ファイルシステムのマウントポイントを指定するだけです。



upgrade17



くれぐれも、newfsしないでね、と親切に警告メッセージがでていますよ。newfsすると、既存のファイルが全部消えちゃいます。newfsするつもりなら、よっぽどの理由がない限り(一部のファイルシステムだけぶっ壊れている、とか)、アップグレードインストールではなく、普通の新規インストールをするべきでしょうね。



次に進むと、disklabelエディタがでてきます。



ad0s1aを/にマウント。なぜか、いつも、SoftUpdateのフラグがたたないので、Sキーを押して、UFS2+Sという表示になるようにしておきました。意味あるのかわかりません。



upgrade18





次に、fsckが実行されて、ファイルシステムに異常がないかチェックされます。



現在の/etc以下のファイルを残しておくために、バックアップ先ディレクトリを指定します。



upgrade19



インストール用データをどっからとってくるかを指定します。ここは、新規インストールするときと同じです。



FTP、HTTPなどでインストールできます。



upgrade20



ファイル配布元としては、「Snapshots Server Japan  snapshots.jp.freebsd.org」を選びます(つまりはインストール用フロッピーのイメージファイルをダウンロードしたところ)。



upgrade21



ネットワークインターフェイスの設定をします。



VMwareでは、NICはlnc0になります。



upgrade22



FTPやHTTPでインストールするのに、ファイルをネットワークからもってこなければならないので、そのためのネットワーク設定を行います。



VMwareのEthernetをNATで動かしている場合は、DHCPでアドレスを取得するようにすればよいはずですが・・・



upgrade23





なぜかうまくいかなかったので、手で指定してみました。



upgrade25

(あとでわかったこと)  10.0.2.15など、QEMUで使っていたアドレスやホスト名がでてくるので、変だなと思ったのですが、/etc/hostsから情報をひっぱってきているみたい?です。QEMUからの引越しの際には、IPアドレスが変わってしまうので、/etc/hostsの修正も必要ですね。

指定すべき値を忘れてしまったら、Alt+F4を押すとシェルが動いているはずなので、そこで/etc/rc.confを確認するか、または、一番確実だと思われる方法は・・・こんな感じ。



VMware Playerがインストールされたフォルダ(「C:\Program Files\VMware\VMware Player」とか)のなかに、vmnetcfg.exeというアプリケーションがあるので、これを起動します。



vmware-101



「DHCP」というタブを開くと、仮想マシン側のネットワークアドレスがわかります。



vmware-110



この図では、VMmet8のサブネットとして「192.168.217.0」と表示されているので、192.168.217.128としました(最後が128なのは経験にもとづく、適当な値)。



とくに問題なければ、このまますんなりアップグレードが完了するはずです。



最後に、フロッピーをdisconnect状態にしてから、インストーラを終了。



あとは正常に起動することを祈ります。



(5) アップグレード・インストール終了後の手作業



/etc/upgrade/以下に、自動ではコピーされなかった新しい/etc/以下のファイルがあるので、必要に応じて、入れ替えます。





1 件のコメント:

  1. なくあととうまく手間などをTroubleshootしたかったの♪

    返信削除