ttt

getttyent

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

2005-11-26 15:50:40 | デジタル・インターネット

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

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/以下のファイルがあるので、必要に応じて、入れ替えます。