Vmware:WindowsをホストにしてUbuntuをインストールする

Windows上でUbuntuのVmware仮想マシンを動かす。SambaでWindowsとUbuntuのファイルを共有し、SSH接続を通してターミナルエミュレータでUbuntuを操作出来るようにする。

動作を確認した環境

ハードウェア

ソフトウェア

ネットワーク

日本語版UbuntuのOSイメージの入手

からOSイメージを入手できる。Vmware用の仮想イメージも配布されているので、すぐに試してみたい、必ずしも最新版のOSが必要ではない場合はそちらを利用することもできる。Vmware Playerがインストールされているのであれば、vmxファイルをダブルクリックするだけでvmware playerおよびUbuntuが起動する。インストールの一連の作業のスクリーンショットは下記の日経の記事で紹介されている。

Ubuntu 7.04をインストールしたいのであればubuntu-ja-7.04-desktop-i386.isoを入手する。ISOイメージからインストールを行う場合はubuntu-ja-7.04-desktop-i386.isoを入手する。ダウンロードは通常のhttpプロトコル以外に[[Wikipedia:ja:BitTorrent|BitTorrent]](ビットトレント)プロトコルも利用できる。後者の方がBitTorrentを利用したダウンロードを行うためにはBitTorrentクライアントが必要である。Windows用のBitTorrentクライアントとしてはBitCometなどがある。

BitCometによるダウンロード 日本語ローカライズ版Desktop CDのダウンロード | Ubuntu Japanese Teamよりubuntu-ja-7.04-desktop-i386.iso.torrentをダウンロードして、ダブルクリックをすればBitCometが起動する。ダウンロードのタスクにubuntu-ja-7.04-desktop-i386.isoの文字列が表示されているので右クリックをして「開始」を左クリックすればダウンロードが始まる。ダウンロード先を例えばC:\downloadsに指定するには「オプション」→「タスク」→「標準のダウンロード先フォルダ」をC:\downloadsにしておく。

DeepBurnerによるCDの作成 仮想マシンの作成にはISOイメージがあればできるが、OSイメージのCDを作成して他のマシンでも利用したい場合はCD/DVDライティングソフトを使う。DeepBurnerでCDを作成する場合は「ISOイメージの書き込み」を選択したあと、「イメージファイル」で先ほど入手したisoファイルのパスを指定し、「ISO書き込み」を押す。

ビープ音がでないようにする

preferences.ini(C:\Documents and Settings\「ユーザー名」\Application Data\VMware)に以下の一行を追加する。

mks.noBeep = "TRUE"

Vmware Playerとqemuのインストール

Vmware Playerはインストーラをダブルクリックしてインストール。qemu-0.9.0-windows.zipは解凍して出てきたqemu-0.9.0-windowsをqemuにリネームしてC:\Linux\qemuに設置する。

C:\Linuxディレクトリ内の構成は以下の通り。

仮想マシンの導入

vmdkとvmxファイルの作成

vmdkファイルを作成する 仮想マシン用のファイルを作成する。名前をubuntu.vmdk(名前は任意)で10GBとすると以下の通り。

cd C:\Linux
qemu\qemu-img.exe create -f vmdk ubuntu.vmdk 10G

実際に使用されているファイルの容量しか使われないので、大きめに作っておいても実際のハードディスク容量は圧迫されない。参考までに下記のアップデートと下記の日本版セットアップを行って3.25GB程度である。

vmxファイルを作成する 下記のコードをテキストエディターにコピー&ペーストしてC:\Linux\ubuntu.vmxとして保存する。動作しなくてやり直す場合はvmxファイルとvmdkファイル以外のファイルを削除してから行う。どうしても動かない場合は別の人が公開しているvmxファイルのコードサンプルを利用する。

config.version = "8"
virtualHW.version = "4"
memsize = "512"
ide0:0.present = "TRUE"
ide0:0.fileName = "ubuntu.vmdk"

ide1:0.present = "TRUE"
ide1:0.fileName = "CD/ubuntu-ja-7.10-desktop-i386.iso"
ide1:0.deviceType = "cdrom-image"

floppy0.present = "FALSE"
ethernet0.present = "TRUE"
ethernet0.connectionType = "nat"
usb.present = "TRUE"
sound.present = "TRUE"
sound.virtualDev = "es1371"
displayName = "Ubuntu"
guestOS = "ubuntu"
nvram = "ubuntu.nvram"
scsi0:0.redo = ""
ethernet0.addressType = "generated"

ide1:0.autodetect = "TRUE"
ethernet0.generatedAddress = "00:0c:29:8f:ed:bc"
ethernet0.generatedAddressOffset = "0"
checkpoint.vmState = ""
tools.remindInstall = "TRUE"
ide0:0.redo = ""
下記のものは修正中のものです。
config.version = "8"
virtualHW.version = "4"

# OS
#guestOS = "other26xlinux" # カーネル2.6系のLinuxl
#guestOS = "ubuntu-64" # 64ビットCPU
guestOS = "ubuntu"

#Vmware Playerのウィンドウに表示される見出し。任意
displayName = "Ubuntu 7.04" 

# 不揮発性RAM (Non-Volatile Random Access Memory)
nvram = "C:\Linux\ubuntu.nvram" #自動生成される。名前はユーザの任意

# 仮想マシンに割り当てる最大メモリの量
memsize = "512"

################################
#        マスター スレイブ
#プライマリー ide0:0  ide0:1
#セカンダリー ide1:0  ide1:1
#OSはマスターからブート(起動)します
################################

# ハードディスクドライブ(HDD)
ide0:0.present = "TRUE"
ide0:0.fileName = "C:\Linux\ubuntu.vmdk" #名前はユーザの任意

#################################
# CD/DVDドライブ・イメージのマウント#
#################################

# 共通設定
ide1:0.present = "TRUE"
ide1:0.autodetect = "TRUE"
ide1:0.startConnected = "TRUE"

# デバイスタイプ
# ide1:0.deviceType = "cdrom-raw" #CD/DVDドライブのマウント
ide1:0.deviceType = "cdrom-image" #CD/DVDイメージの読み込み

# CD/DVDイメージ
ide1:0.fileName = "C:\Linux\ubuntu-ja-7.04-desktop-i386.iso" #インストールCDファイル(ISO)
# ide1:0.fileName = "C:\Program Files\VMware\VMware Player\linux.iso" #Vmware Tools

# フロッピー
floppy0.present = "FALSE"

# USB
usb.present = "TRUE"
usb.autoConnect.device0 = "path:1/4/4/1 autoclean:1"

# サウンド
sound.present = "TRUE"
sound.virtualDev = "es1371"

# イーサネット
ethernet0.present = "TRUE"
ethernet0.connectionType = "nat" #NAT接続
# ethernet0.connectionType = "bridged" #ブリッジ接続
ethernet0.addressType = "generated"
ethernet0.generatedAddress = "00:0c:29:8f:ed:bc"
ethernet0.generatedAddressOffset = "0"

#汎用一意識別子(Universally Unique Identifier) 
uuid.location = "56 4d 3b 98 6e eb 23 e6-6f 64 65 82 6c 8f ed bc"
uuid.bios = "56 4d 3b 98 6e eb 23 e6-6f 64 65 82 6c 8f ed bc"

checkpoint.vmState = ""
tools.remindInstall = "TRUE"

他にサポートされているOSの例はhttp://sanbarrow.com/vmxbuilder.htmlなどでリストが公開されている。

Ubuntuのインストール

ubuntu.vmxをダブルクリックしてVmware Playerを起動させ、「Create」でインストーラーを立ち上げる。Ubuntuのインストールウィザードの途中にある「ディスクの準備」の項目では「ディスク全体を消去する」を選択する。英語による画像付きのインストールガイドはhttp://www.howtoforge.com/the_perfect_desktop_ubuntu6.10

インストール直後のアップデート インストール直後にパッケージのアップデートを促されるので、アップデートを行う。OSのリリースから時間が経つほどアップデートが必要なパッケージが増えるのでアップデートのための十分な時間を取っておく。

ショートカット

キーボードショートカット

Vmware PlayerとWindowsの操作を切り替えるために次のショートカットが用意されている。後に書かれている[[#Vmware Toolsの導入]]によって切り替え作業をしなくても済むようになる。

vmxファイルのショートカット

vmxファイルを右クリックして「送る」→「デスクトップ(ショートカットを作成)」でショートカットを作成しておけば次回以降の起動に便利である。スタートメニューに追加をするにはvmxファイルをドラッグしてスタートのパネルにドロップする。

リポジトリのリストの修正

インストールした直後ではCDがコード取得のためのリポジトリに含まれていて、インストールの妨げになることがあるのでコメントアウトする。

 sudo gedit /etc/apt/sources.list

冒頭付近の以下の行を#でコメントアウトする。

# deb cdrom:[Ubuntu 7.10 _Gutsy Gibbon_ Japanese Remix - Release i386 (20071018$

アップグレード

インストールした時点で多くのソフトウェアが更新されているので、以下のコマンドで各リポジトリから最新の情報を取得し最新のバージョンにアップグレードする。

sudo apt-get update
sudo apt-get upgrade

バックポートの追加

後から新しくリポジトリに追加されたパッケージを使いたいのであればsources.listにバックポートのリポジトリを追加する。

nano /etc/apt/sources.list

以下の行を追加する。

deb http://archive.ubuntu.com/ubuntu gutsy-backports main universe multiverse restricted

編集が終了したら

sudo apt-get update

追加されたパッケージの一覧は http://packages.ubuntu.com/ のサイトを通して調べることができる

参考

Vmware Toolsの導入

* 誤った設定を行うとX Windowが正常に起動しなくなるので注意が必要です。またカーネルがバージョンアップされた場合、再インストールが必要になります。 * コンソールモード中心に使う場合は起動速度の面からインストールしない方がよいかもしれません。

Vmware Toolsを導入することによってホストのWindowsとゲストのLinuxでマウスやクリップボードを共有できるようになる。

カーネルのコンパイルツールをインストールする

Vmware Toolsの導入時に使われるカーネルのコンパイルツールを導入するにはコマンドライン上(「アプリケーション」→「アクセサリ」→「端末」)で次のコマンドを入力する。

sudo apt-get install libqt3-headers libqt3-mt-dev
sudo apt-get install build-essential bin86 kernel-package

vmware toolsの読み込み

Vmware Toolsはlinux.iso(C:\Program Files\VMware\VMware Player)の中に入っているので、Ubuntuをシャットダウンした後にubuntu.vmxを以下のように変更して保存して、再度Ubuntuを起動させる。

#ide1:0.fileName = "C:\Linux\ubuntu-ja-7.04-desktop-i386.iso"
ide1:0.deviceType = "cdrom-image"
ide1:0.fileName = "C:\Program Files\VMware\VMware Player\linux.iso"

うまくlinux.isoが読み込まれない場合、パスに空白文字が含まれない場所にlinux.isoを移動させる。ログインするとデスクトップ画面にVmware ToolsというCDアイコンが出現する。Vmware Tools内部のtarファイルを右クリックしてデスクトップに解凍するとvmware-tools-distribフォルダが出現する。コマンドラインで解凍するには以下の通り。

ls /cdrom
VMwareTools-6.0.2-59824.i386.rpm VMwareTools-6.0.2-59824.tar.gz
tar zxvf /cdrom/VMwareTools-6.0.2-59824.tar.gz

インストール

次にGNOME端末を立ち上げて

cd Desktop
cd vmware-tools-distrib
sudo ./vmware-install.pl

でインストーラを立ち上げてインストールする。聞かれる質問はすべてデフォルトの設定で答える。

インストールを失敗したら

コンパイルツールをインストールせずに上記の作業をすると、次回そのままではインストールできなくなるので、

sudo ./bin/vmware-uninstall-tools.pl

をいったん行ってから再度インストールする。

OSのバージョンアップとvmware-toolsの再インストール

OSをバージョンアップした場合、linuxのヘッダーファイルを追加して再度vmware-toolsをインストールし直す必要がある。

sudo apt-get install linux-headers-`uname -r`
cd vmware-tools-distrib
sudo bin/vmware-uinstall-tools.pl
sudo ./vmware-install.pl

Ubuntuの設定

Ubuntuの設定について

コマンドライン・テキストエディタをパネルに追加

テキストエディタとコマンドラインの入力をよく行うので、「アプリケーション」→「アクセサリ」→「端末・テキストエディタ」を右クリックして「このランチャをパネルに追加」。ドラッグでランチャの位置を移動出来る。

Adobe Reader・Java・Real Playerの導入

Real Player・Adobe Reader・Javaは日本語ローカライゼーションチームが用意した日本語独自のパッケージをインストールするには「システム」→「システム変更」→「日本語版セットアップヘルパ」より導入することが出来る。

ビープ音を無効にする

コンソールモードを含めてビープ音が出ないようにするには/etc/modprobe.d/blacklistに

blacklist pcspkr

を追記して再起動する。/etc/modprobe.d/blacklistを編集するには

sudo gedit /etc/modprobe.d/blacklist

参考

ビープ音を消すには - Ubuntu Japanese Wiki

Linuxのコマンド

いくつかの基本的なコマンドについて

コマンドのチートシート

以下のサイトのチートシートやコマンドリファレンスが便利である。

ホームディレクトリに移動する

cd $HOME

アップデートとアップグレード

sudo apt-get update
sudo apt-get upgrade

再起動

sudo reboot

シャットダウン

sudo halt now

コンソールモードからX Windowを起動させる

startx

SSH接続

SSH(Secure SHell)サーバーをインストールしてWindows上のターミナルエミュレータからUbuntuにアクセスできるようにする。

sudo apt-get install ssh

7.10以降であればTaskselから「OpenSSH server」を選択することでインストールできる。Taskselを起動させるには次のコマンドを実行する。

sudo tasksel

インストールしたあとは

ifconfig

でeth0の「inet addr:」の数字の列がUbuntuのIPアドレスである。WindowsからUbuntuにSSHプロトコルでアクセスするにはPTTYTera Term Proといったターミナルエミュレータが必要である。Tera Term ProからUbuntuにアクセスするには「新しい接続」で「ホスト」に先ほど調べたUbuntuのIPアドレスを入力し、Ubuntuのユーザ名とスワードを入力する。

PuTTYの場合は文字コードをUTF-8に変更する必要がある。(右クリック→設定の変更→ウィンドウ→変換→UTF-8(CJK))

セキュリティの設定については下記の記事が参考になる

ホスト名を設定する

毎回IPアドレス(例えば192.168.134.129)を直接入力するのは面倒なので hostsファイル(C:\WINDOWS\system32\drivers\etc)に ホスト名を追記しておく。

127.0.0.1 localhost 192.168.134.129 ubuntuserver

DNSの場合は定期的に変更されるので、hostsファイルを すぐに変更できるようにショートカットをデスクトップ画面に設置しておく。

==Sambaによるファイル共有==

Sambaを通してホストのWindowsとゲストのUbuntuがファイルを共有できるようにする。

Windowsとのファイル共有設定

私の用途を調べるとホストのWindowsのブラウザでファイルをダウンロードしてゲストのUbuntuで利用する場面が多いので、共有フォルダをC:\downloadsとする。フォルダを共有設定にするには右クリックをして

にチェックする。

Windowsのフル・コンピューター名をメモ マイコンピュータ→システムの情報を表示する→コンピュータ名でWindowsのフルコンピュータ名を記録しておいた。もしくはコマンドプロンプトで「echo %computername%」を実行する。ただコマンドプロンプトの方は最後に.(ドット)がつかないが、あるかないかでログインに影響があるか未調査。

ファイアーウォールの停止 Windowsにインストールされているファイアーウォールが動いていると 共有ファイルにアクセスできないことがあるので、その場合は コントロールパネル→セキュリティセンター→Windows ファイヤーウォール で無効にしておく。

その他 Lucid Dream - coLinux id:naoyaさんの記事の補足の記事が参考になる可能性がある。

Sambaのインストール

公式サイトに下記の資料があります。

バージョンを確認するには

smbstatus -d

7.10以降ではtaskselから「Samba File server」を選択することでインストールできる。taskselを起動させるには次のコマンドを実行する。

sudo tasksel

ただし7.10の場合ターミナルがフリーズしてしまうバグが存在するのでコンソールモードの場合は個別にパッケージを導入した方が安全である。コンソールモードでフリーズした場合は「Ctrl」+「Alt」+「BackSpace」かVmwareの機能のトラブルシューティングの「リセット」などでOSを先起動させる。

起動・再起動・停止

sudo /etc/init.d/samba start
sudo /etc/init.d/samba restart
sudo /etc/init.d/samba stop

Sambaユーザーの追加

3.0以降ではsmbpasswdは推奨されていません(今後改訂予定)http://www.atmarkit.co.jp/flinux/special/samba_n/samba_na.html

sudo smbpasswd -a Sambaのユーザ名

でユーザーとパスワードの設定を行った。

共有フォルダの作成

ユーザのホームディレクトリ(/home/Ubuntuのユーザ名)に共有フォルダを作成する。winという名前のフォルダを作成するにはコマンドラインを立ち上げて次のコマンドを入力する。

mkdir win

共有ファイルをマウントする

C:\downloadsの内容を/home/Ubuntuのユーザ名/winから見ることができるようにするにはsmbmountコマンドを入力する。codepageでWindows側、iocharsetでUbuntu側のキャラクタエンコーディングの指定を行うことで日本語名のファイルも正常に表示される。

sudo smbmount //Windowsのフルコンピュータ名/downloads /home/Ubuntuのユーザ名/win -o codepage=cp932,iocharset=utf8 username=Sambaのユーザ名

求められるパスワードは先ほど作成したSambaユーザーのパスワード。フルコンピュータ名はWindows XPの場合は「システム情報を表示する」→「コンピュータ名」から調べるかコマンドプロンプトで「echo %computername%」を実行して表示された文字列を使う。大文字、小文字のどちらでも可能である。またフルコンピュータ名の代わりにIPアドレスでも可能である。WindowsのIPアドレスはUbuntuの「ifconfig」もしくはコマンドプロンプトの「ipconfig /all」などのコマンドで調べることができる。

共有フォルダをアンマウントする

sudo smbumount /home/Ubuntuのユーザ名/win

OS起動時にオートマウントする

fstabにSambaへのログイン情報を記述することでUbuntuが起動した時に自動的にマウントを行うことが出来る。

sudo gedit /etc/fstab

でエディタを起動させて、一番下の行に

//Windowsのコンピュータ名/downloads /home/Ubuntuのユーザ名/win smbfs username=Sambaのユーザ名,password=Sambaのパスワード,codepage=cp932,iocharset=utf8 0 0

を記述する。一行であることに注意。セキュリティ上の問題点としてはユーザ名とパスワードが平文で書かれていることに注意。不用意に空白を入れるとオートマウントしないので注意。

編集が終了したら保存して再起動を行う。コマンドラインから行うには次の通り。

sudo reboot

再起動後にデスクトップにwinというフォルダが表示されていたら設定が正常に行われている。他にautofsを使ったマウント方法がUbuntuユーザフォーラムで報告されている。

参考

コンソールモードで起動するようにする

誤った設定をするとX Windowが立ち上がらなくなることに注意して下さい。修正出来ない場合は再インストールすることになります。

起動時にX Windowが立ち上がる状態ではPCに負荷がかかるので、起動したときにコンソールモードになるように設定をする。

grubの設定

Ctrl+Alt+F1によってコンソールモードに切り替えできるはずだが、Ubuntu6.10では押しても画像が乱れて操作不可能になるので、正常にコンソールモードに切り替えできるようにするためにgrub/menu.lstの設定を行う。

sudo gedit /boot/grub/menu.lst


kernel      /boot/vmlinuz-2.6.20-15-generic root=UUID=a20f6ccc-5cb7-412f-b53b-91220161f65b ro quiet splash locale=ja_JP

が二カ所に記述されているが、その中の「splash」の文字列を削除して再起動する。

X Windowのサービス停止

OS起動と同時にX Windowを起動させないようにするにはGraphical login managerをサービスの登録リストから削除すればよい。「システム」→「システム管理」→「サービスの管理」からGraphical login manager(gdm)についているチェックを外すかコンソール上のrcconfを通して行う。rcconfをインストールするには以下のコマンドを使う。

sudo apt-get install rcconf
sudo rcconf

で自動起動するサービスの設定画面を立ち上げスペースキーで「gdm」のチェックをはずし、エンターキーで設定保存したあとに再起動する。

sudo reboot

起動をしてから

Running local boot script (etc/rc.local)

が表示された辺りでユーザ名とパスワードを入力すればログインできる。なおコンソールモードでは日本語が対応していないので日本語は黒つぶしになる。

英語表示と日本語入力

コンソール上のシステムのメッセージを英語にするには.bashrcを編集する。nanoで使った場合は以下の通り。

cd $HOME
nano .bashrc

で適当な箇所に以下のコードを追記。

export LANG=C

逆に日本語にしたい場合は以下の通り。

export LANG=ja_JP.UTF-8

編集後に「Ctrl」+「X」で抜け出すときに保存しますかという質問に「y」キーを入力、ファイル名の保存時にエンターキーを入力。その後再起動をする。コンソールモードからX Windowを起動させるには

startx

上記の設定によって日本語入力モードへの切り替えが出来なくなるのでSCIMの設定を行う。まずキーボードを日本語対応するために「Sysmtem」→「Preferences」→「SCIM Input Method Setup」→「Gobal Setup」のKeyborad LayoutをjapaneseにしてApplyをクリックする。次にX Windowを起動させたときのSCIMのデフォルト設定を行う。

gksudo gedit /etc/X11/Xsession.d/74custom-scim_startup

で74custom-scim_startupの編集画面を立ち上げ以下のコードを追記する。

export XMODIFIERS="@im=SCIM"
export GTK_IM_MODULE="scim"
export XIM_PROGRAM="scim -d"
export QT_IM_MODULE="scim"

以上でSCIMの設定作業は終了。

最後にシステムのメニュー一覧を日本語化するには「Sysmtem」→「Administration」→「Language Support」を立ち上げれば自動的にパッケージが追加され次のOSの起動(X Windowの再起動だけでは適用されない)から変更が適用される。

作業がすべて終わったらX Windowを再起動させる。「Sysmtem」→「Quit」→「Log Out」をするかショートカットなら「Ctrl」+「スペースキー」+「Backspace」で一旦X Windowをシャットダウンしてコンソールモードになった状態からstartxコマンドで再びX Windowを起動させる。

X Windowからログアウトした時点で

Could not init font path element /usr/X11R6/lib/X11/fonts/misc, removing form list!
Could not init font path element /usr/share/fonts/X11/cyrillic, removing form list!
Cound not init font path element /user/X11R6/lib/X11/fontns/Type1, removing form list!

とエラー表示されるがとりあえずトラブルは無し。

参考