CentOS 5をプログラミング環境で使う

インストールメモ VMware編

CentOS 5をVMware上にインストール

Windows OS上に、無償であるVMware Playerをインストールし、その上でCentOS 5.xを動かす環境の構築メモです。

VMware playerのインストール

 2009.3.1現在のVMware Player最新バージョンは、2.5.1です。が、VMware Toolsが添付されなくなってしまったので、一つ前のバージョン系列である、2.0.5をインストールします。

2009.11.23現在、VMware Player 3.0が最新バージョンです。以下の機能が付加され、随分と制約がなくなりました。これからVMware playerを使うならば、3.0系を推奨します。

CentOS 5.2 Minimal Virtual Appliance 1.3の入手と展開

VMware Playerは、あらかじめ用意された仮想マシン環境を実行する機能のみなので、ゼロからOSをインストールするにはちょっとした手間と外部ツールが必要になります。そこで、無償で公開されているCentOS 5.2の仮想マシン環境のファイルを入手して、これをベースに環境を作っていくことにします。

入手

 CentOS 5.2のインストールメディアからインストールする方法もありますが、ここではCentOS 5.2のVMware用イメージファイルを無償で公開しているSymbioSoft社のサイト(以下URL)から最低限のインストール済みイメージファイル(CentOS5MinimalVirtualAppliance-1.3.7z)を使用します。

上記URLから、"Virtual Appliances"のリンクを辿り、"CentOS 5.2 Minimal Virtual Appliance 1.3"のリンクを辿ります。そして、以下のファイルをダウンロードします。

展開

ダウンロード後、上記ファイルを7zipツール日本語版インストーラ置き場)を使って展開すると、以下ファイルが生成されます。

CentOSMinimalVirtualAppliance-1.3.vmx
CentOSMinimalVirtualAppliance-1.3.vmdk
CentOSMinimalVirtualAppliance-1.3-f001.vmdk
                    :
CentOSMinimalVirtualAppliance-1.3-f006.vmdk

vmdkファイル(テキスト)を見ると、ディスク設定が分かります。この場合は、2GBのディスクが5本(f001〜f005)になっています。

# Extent description
RW 4193792 FLAT "CentOSMinimalVirtualAppliance-1.3-f001.vmdk" 0
RW 4193792 FLAT "CentOSMinimalVirtualAppliance-1.3-f002.vmdk" 0
RW 4193792 FLAT "CentOSMinimalVirtualAppliance-1.3-f003.vmdk" 0
RW 4193792 FLAT "CentOSMinimalVirtualAppliance-1.3-f004.vmdk" 0
RW 4193792 FLAT "CentOSMinimalVirtualAppliance-1.3-f005.vmdk" 0
RW 2560 FLAT "CentOSMinimalVirtualAppliance-1.3-f006.vmdk" 0
RWの次の数値は、512バイト単位です。
# The Disk Data Base 
#DDB

ddb.encoding = "windows-1252"
ddb.toolsVersion = "7240"
ddb.adapterType = "lsilogic"
ddb.geometry.sectors = "63"
ddb.geometry.heads = "255"
ddb.geometry.cylinders = "1305"
ddb.virtualHWVersion = "4"
SCSIディスクとして認識し、SCSIドライバはLSI Logic相当です。

起動

展開した中にある以下のファイルをダブルクリックすると、VMware playerが起動します。以後、このファイルのショートカットをデスクトップやスタートメニュー内に作成すると便利でしょう。

VMware Playerが起動し、Linuxが立ち上がると、コンソールログイン待ちとなります。コンソールには、この仮想マシンのIPアドレス、rootのパスワードが表示されています。まずはrootで、表示されたパスワードを用いてログインします。

この状態で、ファイルのパーティション構成は以下のとおりです。

Filesystem                     1K-blocks     Used Available Use% Mounted on
/dev/mapper/VolGroup00-LogVol00  9014656  1040104   7509248  13%  /
/dev/sda1                         101086    11705     84162  13%  /boot
tmpfs                             257764        0    257764   0%  /dev/shm

カーネルは、2.6.18-53.1.4.el5vm というVMware用バージョンとなっています。クロックティックは100Hzとなっており、VMware用に最適化されています。メモリは512MB割り当てられており、CPUは1個となっています。

起動設定ファイルのカスタマイズ

VMwareを起動する設定ファイルCentOSMinimalVirtualAppliance-1.3.vmxの記述をカスタマイズします。VMwareを起動するマシンによって値を調整します。

memsize = "1024"                VMwareが使用するメモリ(MB)
numvcpus = "2"                  VMwareが使用するCPU数
mainMem.useNamedFile = "FALSE"  VMware独自の仮想メモリファイル(*.vmem)を使わない

CPU数について

VMware Player (Workstation)では、CPU数は1か2かのどちらかしか選択できません。

最初に設定しておくこと

キーボード(日本語JIS配列)

デフォルトでは、英語配列キーボードの設定になっているので、JIS配列キーボードを使用していると記号の位置が違ってとまどいます。そこで、JIS配列キーボードを使用している場合、設定を変更します。

/etc/sysconfig/keyboard ファイルを修正します。

KEYBOARDTYPE="pc"
KEYTABLE="jp106"       ← デフォルトの"us"を"jp106"に変更する

yumリポジトリサイトの設定

/etc/yum.repo.d/ディレクトリに、デフォルトではCentOS-Base.repo、CentOS-Media.repo、VMware.repoの3つのファイルがあります。CentOS関係はこれから大量のパッケージをダウンロードすることになります。CentOS-Base.repoの中のサーバーを最寄りの応答のよい場所に変更しておきます。

デフォルトではmirrorlistから自動検索するのですが、遅いサーバーにあたることもあってしばしばエラーとなります。日本国内だとrikenを設定する記述をよく見かけますが、使用しているプロバイダーによって異なるので、tracertコマンド(Windows)などで調べるとよいでしょう。

[base]
name=CentOS-$releasever - Base
baseurl=http://ftp.riken.jp/Linux/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://ftp.riken.jp/Linux/centos/RPM-GPG-KEY-CentOS-5

[base]以外も、同様にmirrorlistから最寄りのサーバーに変更しておくとよいでしょう。

カーネルのアップデート

デフォルトでインストールされているカーネルは、kernel-vm-2.6.18-53.1.4.el5です。一方、VMwareのリポジトリには新しいカーネルが存在しています。

2009/3/7現在、以下が最新カーネルパッケージです。

kernel-2.6.18-92.1.22.el5.centos.plus.VMware.i686.rpm
kernel-devel-2.6.18-92.1.22.el5.centos.plus.VMware.i686.rpm
kernel-headers-2.6.18-92.1.22.el5.centos.plus.VMware.i686.rpm

このうちkernel-headersだけはなぜかデフォルトでインストール済みなので、kernelとkernel-develをインストールすることにします。

# yum install --disablerepo=* --enablerepo=vmware kernel
    :(中略)
=============================================================================
 Package                 Arch       Version          Repository        Size
=============================================================================
Installing:
 kernel                  i686       2.6.18-92.1.22.el5.centos.plus.VMware  vmware     16 M
    :(中略)

# yum install kernel-devel
    :

再起動して、カーネルのバージョンを確認します。

# uname -r
2.6.18-92-1.22.el5.centos.plus.VMware
#

パッケージの追加インストール

Minimal Virtual Applianceは最小限のパッケージしかインストールされていません。そこで、追加パッケージをインストールします。ここでは、GNOME Desktopが起動し一式ツール類が入る環境をまずはインストールします。数百パッケージになるので、yumのgroupinstallコマンドでインストールします。

# yum groupinstall "System Tools"
    :(中略)
Transaction Summary
=============================================================================
Install     80 Package(s)
Update       1 Package(s)
Remove       0 Package(s)

Total download size: 43 M
Is this ok [y/N]:y
    :(中略)
# yum groupinstall "Development Tools"
    :(中略)
Transaction Summary
=============================================================================
Install     81 Package(s)
Update      11 Package(s)
Remove       0 Package(s)

Total download size: 70 M
Is this ok [y/N]:y
    :(中略)
# yum groupinstall "X Window System"
    :(中略)
Transaction Summary
=============================================================================
Install    140 Package(s)
Update       0 Package(s)
Remove       0 Package(s)

Total download size: 72 M
Is this ok [y/N]: y
    :(中略)
# 

GNOME Desktop Environmentを入れる際にCentOSの問題があるため、先に回避策を実行します。

# rpm -Uvh --nodeps http://ftp.riken.jp/Linux/centos/5/os/i386/CentOS/nautilus-sendto-0.7-5.fc6.i386.rpm
  :
# yum groupinstall "GNOME Desktop Environment"
    :(中略)
Transaction Summary
=============================================================================
Install    114 Package(s)
Update       0 Package(s)
Remove       0 Package(s)

Total download size: 152 M
Is this ok [y/N]:y
    :(中略)
#

ここで再起動します。次に起動すると、ログイン前に"Setup Agent"がCUI画面に現れます。認証方法、サービス、ネットワークなどの各種設定ができます。しばらく放っておくと、ログイン画面が現れます。

VMware Toolsのインストール

仮想マシン上のホストOSにVMware Toolsをインストールすることにより、ホストOSとゲストOS上のマウスポインタのスムーズな移動や時刻の同期、ファイル共有、描画速度向上などの機能が入ります。

VMware 2.0.5の場合、VMwareをインストールしたディレクトリ内に、Linux用のVMwareToolsを収めたISOイメージファイルがあります。

以下は、Windows Vista (64bit)上のD:ドライブにVMware Playerをインストールした場合の例です。

D:\Program Files (x86)\VMware\VMware Player\linux.iso

これを、CDドライブとしてホストOSのLinuxにマウントしてインストールします。

ゲストOSのWindows上にあるISOイメージファイルをホストOSのLinux上でCDドライブとしてマウントする

VMwareを起動する設定ファイルCentOSMinimalVirtualAppliance-1.3.vmxの記述をカスタマイズします。

ide1:0.fileName = "D:\Program Files (x86)\VMware\VMware Player\linux.iso"

デフォルトで、IDEバス1に、CD-ROMイメージを接続する設定がvmxファイルにあったので、

ide1:0.fileName = "cdrom.iso"
    :
ide1:0.present = "FALSE"
ide1:0.deviceType = "cdrom-image"
ide1:0.autodetect = "FALSE"
ide1:0.startConnected = "FALSE"

CD-ROMイメージファイル名を指定するide1:0.fileNameの設定と、IDE1:0を有効にする設定を以下の記述に修正します。

ide1:0.fileName = "D:\Program Files (x86)\VMware\VMware Player\linux.iso"
ide1:0.present = "TRUE"

VMwareを起動し、VMware自体のウィンドウタイトル上にあるデバイスのリストでCD-ROM(IDE 1:0)をクリックし選択状態にします。

Linuxにログインし、

[root@localhost ~]# mount /dev/cdrom /mnt/cdrom
mount: block device /dev/cdrom is write-protected, mounting read-only
[root@localhost ~]# df 
    :(中略)
/dev/hdc        104672   104672        0 100% /mnt/cdrom
[root@localhost ~]# ls /mnt/cdrom
VMwareTools-6.0.4-93057.i386.rpm   VMwareTools-6.0.4-93057.tar.gz
crpm -ivh /mnt/cdrom/VMwareTools-6.0.4-93057.i386.rpm
Preparing...                ########################################### [100%]
   1:VMwareTools            ########################################### [100%]
[root@localhost ~]# 

再起動します。(念のため)

VMwareのコンフィグレーション実行

インストール後最初に1回実行します。ただし、VMware Toolsは、カーネルに依存するので、カーネルを更新した場合、再度実行します。

# vmware-config-tools.pl

Stopping VMware Tools services in the virtual machine:
   Guest operating system daemon:                       [  OK  ]
Trying to find a suitable vmmemctl module for your running kernel.

None of the pre-built vmmemctl modules for VMware Tools is suitable for your
running kernel.  Do you want this program to try to build the vmmemctl module
for your system (you need to have a C compiler installed on your system)?
[yes]
 
Using compiler "/usr/bin/gcc". Use Environment variable CC to override.

What is the location of the directory of C header files that match your running
kernel?
[/lib/modules/2.6.18-92.1.22.el5.centos.plus.VMware/build/include]
  :(中略)
None of the pre-built vmhgfs modules for VMware Tools is suitable for your
running kernel. Do you want this program to try to build the vmhgfs module for
your system (you need to have a C compiler installed on your system)? [yes]
  :(中略)
None of the pre-built vmxnet modules for VMware Tools is suitable for your
running kernel. Do you want this program to try to build the vmxnet module for
your system (you need to have a C compiler installed on your system)? [yes]
  :(中略)
None of the pre-built vmblock modules for VMware Tools is suitable for your
running kernel. Do you want this program to try to build the vmblock module for
your system (you need to have a C compiler installed on your system)? [yes]
  :(中略)
[EXPERIMENTAL] The Virtual Machine Communication Interface (VMCI) service
provides a new communication capability with the Host, primarily for
development at the momemnt. Would you like to enable this feature? [no]

Detected X.org version 7.1.

Please choose one of the following display size that X will start with (1 - 15):
[1] "640x480"
[2] "800x600"
[3] "1024x768"
[4] "1152x864"
[5] "1280x800"
[6] "1152x900"
[7] "1280x1024"
[8] "1376x1032"
[9]< "1400x900"
[10] "1400x1050"
[11] "1440x900"
[12] "1680x1050"
[13] "1600x1200"
[14] "1920x1200"
[15] "2364x1773"
Please enter a number between 1 and 15:

[9] 3
  :(中略)
The configuration of VMware Tools 6.0.4 build-93057 for Linux for this running
kernel completed successfully.
  :(中略)
#

再起動します。

メモ

vmhgfsは、環境などによって使えないことがあります。

各種設定

ユーザ管理

ユーザ管理は、「CentOS 5インストールメモ」ページのユーザーアカウント設定を参照

日本語設定

GNOMEデスクトップの日本語化

ログイン後、startxコマンドでGNOMEデスクトップが起動します。デフォルトでは英語なので、日本語で起動するための追加パッケージのインストールと設定を行います。

追加パッケージのインストール

日本語フォント(固定フォント各種、TrueTypeのさざなみ)をインストールします。

# yum install fonts-japanese

日本語入力メソッド SCIM+Anthyをインストールします。

# yum install scim-anthy

システムの言語設定を日本語にします。CUIの画面が出るので、[Japanese]を選択します。

# system-config-language
  :

再起動してXを起動します。

$ startx

ディスクの追加

10GBでは、容量が不足するので、追加のディスクを設定します。VMware用のディスクイメージファイルを生成するツールは無償のVMware Playerにはないので、別途フリーのツールを利用します。

ツールの準備

候補ツール

本記事では、NHCツールをつかってディスクイメージファイルを作成します。

NHCツールのインストール

上記NHCのリンクから、2009年3月1日現在の最新版である、NHC0A31A.LZH をダウンロードします。

LHA圧縮形式を解凍できるツールで展開します。すると、中にNHC.exeが入っているので、これを実行します。(GUIプログラム)

ディスクの追加

ディスクイメージファイルの作成

NHCツールを実行し(Windows Vistaの場合、右クリックしてポップアップメニューの[管理者として実行]で)、以下手順を実行します。

というファイルを生成したとします。

ブロックタイプがフラットの場合、最初から容量分のファイルサイズが確保され、ノーマルだと最初は小容量だけ確保されます。

大容量のディスクを作成する場合、ブロックタイプがノーマルだと徐々にファイルサイズが増えるため、ホストOS上でフラグメントが発生する可能性があります。一定サイズで分割するか(NHCの「VMware VMDK形式への変換」画面で[分割セクタ数]にサイズを入力)、ブロックタイプをフラットにするとよいと思われます。

ディスクイメージファイルの接続設定

VMwareの仮想マシン設定ファイルに、作成したディスクイメージファイルをSCSIディスクとして接続する設定を記述します。

CentOSMinimalVirtualAppliance-1.3.vmxには、初期設定で以下のSCSI接続が記述されています。

scsi0:0.fileName = "CentOSMinimalVirtualAppliance-1.3.vmdk"

scsi0.present = "TRUE"
scsi0.virtualdev = "lsilogic"
scsi0:0.present = "TRUE"
scsi0:0.deviceType = "disk"
scsi0:0.mode = "independent-persistent"
scsi0:0.redo = ""
scsi0:0.writeThrough = "TRUE"
scsi0:0.startConnected = "FALSE"

ここに、以下を追記します。基本はscsi0:0と同じで、fileNameだけ変えた内容です。

scsi0:1.fileName = "AdditionalSCSI-1.vmdk"

scsi0:1.present = "TRUE"
scsi0:1.deviceType = "disk"
scsi0:1.mode = "independent-persistent"
scsi0:1.redo = ""
scsi0:1.writeThrough = "TRUE"
scsi0:1.startConnected = "FALSE"

設定ファイル記述後、仮想マシンを起動します。SCSIで2番目のディスクになるので、/dev/sdb で扱われます。

ディスクのパーティション作成

起動後、fdiskコマンドで新たに接続したSCSIディスクにパーティションを作成します。

ファイルシステムの種類

その他

ビープ音をなくしたい

VMwareの仮想マシン設定ファイル(*.vmx)に以下を追記します。

mks.noBeep = "TRUE"