2008年9月15日月曜日

仮想化Ubuntuへの道(…まだ途上だけど…)-その3

 翌日、「まてよ…」と思って、パスではなく最終的なフォルダ名…今回の例でいえば「Tmp」だけ入力すると無事、ゲスト側 Ubuntu の share フォルダ内に、ホスト側 Windowsの Tmp フォルダ内のファイルやサブ・ディレクトリが見えてきた。

 ただ、課題は起動のたび、マウントし直さないとならないというところ。これはネットを調べていたとき、同じようなやりとりを見ていたので、そこを参考にして設定ファイルの書き換えに挑戦。

 どうやら「/etc/rc.local」に端末で入力したコマンドラインと同じく「mount -t vboxsf ~~」を書き込んでおけば、起動時に設定を読み込んでくれるということらしい。早速「$ sudo gedit /etc/rc.local」を実行。最終行の「exit0」の前に「mount ~~」を入力。保存して再起動♪…起動してから「share」フォルダを開いても「(空)」。まあ、そうそう簡単にはいかないさ、と気を取り直してから端末を開きコマンドを入力して、とりあえず動作を確認しようと思ったら…開けない???。さっきはこれで共有フォルダの内容が見られたんだからと思い、再度トライするも「No such device」のお言葉。大文字小文字が影響するのかと思い、正確に再現するも変わらず。ここでまた水入り…ということで、カミさんに頼まれていた買い物の運転手となり半日外出。

 帰ってきてからPCの電源をオン。VirtualBox を起動して ubuntu も起動。端末から共有フォルダのマウントを試みるが失敗。結果は同じエラー・メッセージ。ネットを検索してエラー・メッセージから何か分からないかと探してみるが有効な情報が見つからず諦めモードへ…。ところが、ふと、前回、最初にマウントに成功した後、前の晩から表示されていたけど、共有フォルダの設定ができてから行おうと思っていた update を晴れて実行したことを思い出した。作業の途中で ubuntu 本体の状態が変わるとまた振り出しに戻りそうなのをおそれてのことだった。ただ、その結果、まずマウスの動作が変化。前は ubuntu のウィンドウ内とホスト側のXPの間を区別無く動いていたのに、update したら、いちいち右の ctrl キーを押してからでないと Windows 側にアクセスできなくなっていた。また、ログイン画面の時、グラフィックス・カードを上手く認識できないのか 1280 ピクセルでスタートするようになってしまった。ubuntu 自体は 1027×768 に設定してあるんだが、以前、VirtualPC に ubuntu をインストールしようとしたときのように実際の画面サイズを無視した振る舞いをするようになってしまったのだった。まあ、それも仕方がないのかな、と釈然としない思いを抱きつつも、共有フォルダの再設定方法を探すことをまず優先していたわけだった。これが終わったら次、起動時の設定を検討しようと思って。

 しかし、そこに落とし穴があった。そもそも最初に共有フォルダを使えるようにする段階で、「Guest Additons のインストール」が必要だということだったので、それを実行してからマウントしたのだった。まあ、そのインストール自体も、何のための作業で、どのような性質の操作なのかも分かっていなかったので、何をすればいいのかも不明。DOS系のように EXE ファイルをダブル・クリックしてみたりしたが反応無し。他のファイルをエディターで開いてみて、何か記述があるかと思っても見当違いの様子。そこでネットで探すと…

(引用開始)
ゲストOSのインストール後に、仮想マシンウインドウのメニューの「デバイス」→「Guest Additions のインストール」から、コントロールや画面の描画速度を改善する拡張機能をゲストOSにインストールできます。

「Guest Additions のインストール」を選択すると、ゲストOSに仮想的なCD-ROMがマウントされます。そのCD-ROMの中にインストーラーが入っているので、インストールしておくと良いでしょう。

Guest Additionsのインストール(ゲストOSがWindowsの場合):CD-ROM内の「VBoxGuestAdditions.exe」を実行します。

Guest Additionsのインストール(ゲストOSがLinuxの場合):CD-ROM内の「VBoxLinuxAdditions.run」を実行します。

$ cd /media/cdrom0/$ sudo sh VBoxLinuxAdditions.run
(引用終わり)

という記述を見つけたので、自分なりに解釈して「VBoxLinuxAdditions.run」をマウントした CD-ROM 内にあった VBoxLinuxAdditions-x86.run に読み替えて実行したら、端末のボックス内で、ファイルが展開され、インストール作業の進行を伝えるコメントが続き、無事成功した様子。再起動し、端末からマウントさせると共有フォルダの内容が見られたんだった。

 …ということを思い出したわけです。そして、ネットで探していた途中で「kernelが変わるたびにやり直し」という記述を目にしたことを思い出した。「あ、後から update した、ということは kernel 変わってるじゃん!」ということで、Guest Additions をインストールするところから再開。再起動させて端末から「$ sudo mount -t ~~」を実行するとやっと共有フォルダの中が表示されるようになった。ここから起動時に自動的にマウントさせるため rc.local の書き換え(一度書き換え、また戻してあったもの)。そして、再起動させると最初から共有フォルダの中身が見えるではありませんか。

 そして、Guest Additons を行ったことで、マウスの動きやログイン時の画面サイズの異常も復旧。後から考えれば、kernel の部分ですでに状態が変わっていることに気付くべきだったのだけど、何せ勝手のほとんど分からない Linux/ubuntu 。どこで異常の有無を判断すればいいのか勘の働かせようもないのが正直な状態。7.10から数えて4ヶ月くらいかかってとりあえず安定的に使用できる状態にたどり着けた気がする。まあ、これからボチボチ覚えていきましょう。

今回特に参考になったページ
  URL=http://linuxsalad.blogspot.com/2007/08/virtualboxos.html
  URL=http://forum.ubuntulinux.jp/viewtopic.php?pid=13682

仮想化Ubuntuへの道(…まだ途上だけど…)-その2

 一方、Ubuntu では最初から VirtualBox 用のコンテナ・ファイルを公開していて、導入の敷居は VirtualPC と比べてはるかに低くなっている。ただ、最初は、VirtualBox というプログラムの仕様も分からなかったため、VirtualBox のページに行ってもどれをダウンロードすればいいのか分からなかった。私の場合、ホストが Windows XP Home Edition SP3 なので、VirtualBox 2.0.2 for Windows hosts x86 を落としてきた。次に、Ubuntu 日本語チームのページから、日本語ローカライズドVirtualBox用仮想マシンのダウンロードのページに行き、ubuntu-ja-8.04-virtualbox-i386.zip(仮想マシン本体)を落とし、解凍。 まず、VirtualBox をインストール。次に解凍した Ubuntu のボリュームを指定して VirtualBox に登録。起動させると前の時と同じく、言語やタイムゾーン、キーボードなどの初期設定をしてスタート。ネットは何もしなくても接続可能な状態になっており、IPアドレスやDNSサーバーの設定などは正常に行われている様子。音の方は最初鳴らなかったのだけど、VirtualBox の方の設定を見るとサウンドカードが初期状態では使うようになっていなかっただけで、「使う」にチェックを入れ、ドライバを選択すると無事鳴るようになった。

 そこで、次にホスト側の Windows とファイルのやりとりをするため、共有フォルダを設定しようと思った…が、ここで2日ほど苦しむことになった。これも Ubuntu や VirtualBox の仕様が把握できていなかったため経験することになった回り道ってことだった。

 まず、VirtualBox の側で共有フォルダを設定。メニューから「デバイス-共有フォルダ」とたどって、追加の+ボタンを押す。そうすると「共有フォルダの追加」というポップアップ・メニューが出てくるので「フォルダのパス」のレター・ボックス横のドロップ・ダウン・ボタンを選択。「その他」にカーソルを合わせクリックするとホスト側のフォルダ選択画面が出てくるので、共有用のフォルダを指定してOK。

 次にゲスト側の Ubuntu でそのフォルダを使えるように設定する必要があるんだけど、これが分からなかったんだな~。

 最初、VirtualPC でゲストも Windows の時みたいに、ファイル・マネージャーの類のアプリから簡単に参照できると思っていた。しかし、コンピューターを開き、ファイル・システムを開いてもどこにもホスト側のドライブへのリンクが見つからず彷徨。ネットで調べると、ゲスト側でマウントって作業が必要らしいということが分かる。ドライブとかデバイス類をマウントするっていう操作自体の意味は理解しているので、後は具体的な指定方法の検索。

 どうやら「$ sudo mount -t vboxsf SharedDirectory /media/share」というコマンドでそれが可能らしいというところまで分かった。さらに最後の「/media/share」というのは、実際にホスト側の共有フォルダの内容をゲスト側で参照するための窓のような役割をするためのフォルダで、「share」自体は任意に各自で作成したフォルダ名になるとのこと。まず、フォルダを作ることにする。

 以前、VirtualPC で格闘していたとき、システム上の設定ファイルをいじるには端末でコマンド入力が必要になるってことを知り、何度かトライしていたので、今回も迷わず端末を開き、フォルダ作成のコマンドを打ち込もうとする。…しかし、最初、うろ覚えのコマンドを打ったら「違うワイ、ボケッ」って怒られた。DOSのコマンドと似てたよな~と思って「md」って打ち込んだんだね…。確か「mkdir」だったよな~、略してもよかったよな~、というはるか昔の記憶。DOSコマンドを駆使して、自分用にランチャーになるバッチ・ファイルをよく作ったな~などという遠い思い出が蘇りました。改めてネットで Ubuntu の基本コマンドを検索して無事作成。後から気付いたのだけど、フォルダを作るくらいなら、ファイル・マネージャーで簡単にできたんでした。

 次にマウント作業。「$ sudo mount -t vboxsf SharedDirectory /media/share」の真ん中、「SharedDirectory」はホスト側のフォルダのはずなので、自分が共有させようと思っているフォルダの名前「D:\Work\Tmp」などと入力。ネットで検索したページにもあったやりとりと同じく「No such device」のエラー・メッセージ。いろいろ探しても「SharedDirectory」を入力としか書いて無くて、Ubuntu というか Linux というか、コマンド・ライン上の表記方法に DOS と違いがあるのか(例えば、区切りは/を使わないとダメとか…)知りたかったのだが、分からず。まあ、こんなもんさと思ってその日は就寝。

仮想化Ubuntuへの道(…まだ途上だけど…)-その1

 Ubuntu 8.04 をインストールしてみた。Linux はまったく触ったことがないが、関心はあった。しかし、メインのPCに入れてしまうと仕事に支障もあるので、踏み切れずにいたところ、VirtualPC や VirtualBox を使ってOS上に仮想化マシンを作り、その中で走らせることができるということを知り挑戦してみた。

 今年の6月頃に最初の挑戦を行った…。まず、VirtualPC 2007 をインストールし、当時、まだ8.04はリリース前だったので7.10を入れるべくトライしてみた。ネットで調べると、インストールの時にコマンドラインからディスプレイ関係のオプションを追加する必要があるとのことだったので同じように打ち込んでみた。しかし、ネットでも人によって追加オプションの内容が違っていて?だったが、トライ・アンド・エラーで実行。…しかし、結局は上手く行かなかった。そのうち、仮想化したボリューム本体を公開してくれている人のページにたどり着き、それをダウンロードすることで起動させるところまで到達。時々起動させて、ネットにつないだり、ゲームで上海をやってみるくらいで、本格的に使うってところまで行ってなかったが、とりあえず、勉強用の教材を確保しておくってイメージでいた。

 そのうち、8.04 がリリースされたとのことだったので、仮想化ボリュームを追加して、仮想ハードディスクをフォーマットするところからインストールしてみた。前回と違って、今回はいくつかのネットで紹介されていた追加オプションでインストール自体は完了。プログラム本体のインストール終了後、初期設定の途中でキーボードの選択がおかしくなって画面が固まってしまう状態に陥り、何度かやり直す羽目に陥ったが、画面が固まった状態でしばらく放っておいたら復帰していて、なんとか起動できる状態までたどり着くことができた。しかし、7.10と違って、サウンドが鳴らない。ネットがつながらない、でだいぶ格闘。…そもそも、Ubuntu や Linux の基本作法が分かっていないので、どこに設定情報が格納されているかも分からず、その設定の変更方法も不明。ネットを検索しながら関係のありそうなところをしらみつぶしにいじってみるしかなかった。そのうち、ネットに関しては手動で設定することで接続自体は可能になることが分かり安心。現在、我が家のネット接続は、途中に無線LANを入れた関係で、ADSLのモデム自体もルータ・モデムなのに、そこに無線LANの親機がつながっているという二重ルーター状態で、8.04ではそのうち、手前側の無線LAN親機のIPアドレスをDNSサーバーと認識しているため、名前解決ができずネットにつながらない、という状態になっていたらしい。外とつながっているADSLモデムのアドレスをDNSサーバーとして追加してやればネットを開くことができるようにはなる。しかし、設定を記憶させたつもりでも、起動のたび設定し直さねばならず、お手上げ。設定を記憶させておく方法が何かあるんだろうけど、分からず…そのうちもう少し Ubuntu を勉強したら再トライしようということにして諦めた。 また、サウンドの方も、7.10だと、VirtualPC の初期設定である SoundBlaster16 をサウンド・カードとして自動的に認識していて、何も設定しなくても音が出ていたのに、自分でインストールした8.04では認識してくれず…。これも対応の仕方が分からず断念。

 そもそも VirtualPC は Ubuntu や Linux と相性がよくない、と説明しているページも多く、最初から無理を承知でインストールしていたところがあったので、快適に使うというより、勉強のための教材という意識が強いところがあった。そういう意味では、覚悟の上の作業だったのだけど、7.10の方もアップデートを促すメッセージが出るのでアップデートしたところ、マウスを認識しなくなりバンザイ。そもそも7.10も、インストールの段階で、マウスが使えなくなるので追加オプションをこうしてああして…というコメントをあちこちで目にしていたのだけど、それがここで再度表れたってことだと理解した。そんなこんなで、VirtualPC では、今のところ、Ubuntu を勉強するところまで行くこと自体大変すぎるってことで、素直に VirtualBox を使ってみることに方針を転換した。