Installing Arch Linux in VMware (日本語)

From ArchWiki
Jump to: navigation, search

Template:Article summary start Template:Article summary text Template:Article summary heading Template:Article summary wiki Template:Article summary wiki Template:Article summary wiki Template:Article summary end

この記事では VMware ESX, VMware Workstation/Fusion, VMware Player などの VMware ベースの仮想環境での Archlinux のインストールを扱います。

VMware Tools vs Open-VM-Tools

Linux 用の VMware Tools は2つあります: 公式の VMware Tools と Open-VM-Tools。VMware Tools は Open-VM-Tools の安定版のスナップショットがベースです。Open-VM-Tools には実験的なコードや機能が含まれています。 公式の VMware Tools は Archlinux では利用できません。

当初は VMware Tools が、時間同期などの機能がある、ネットワークやストレージに最適のドライバを提供していました。しかし現在では、ネットワークや scsi アダプターが linux カーネルの一部になったことで、VMware Tools には追加機能や"古い" vmxnet アダプターのサポートだけが求められるようになりました。

Open-VM-Tools モジュール

open-vm-tools-modules パッケージには以下のモジュールが含まれています:

  • vmblock: カーネルファイルシステムモジュール、VMware Workstation/Fusion でのホストシステムと仮想マシン間のドラッグアンドドロップを有効にします。
  • vmhgfs: カーネルファイルシステムモジュール、VMware Workstation/Fusion でもホストシステムと仮想マシン間のファイル・ディレクトリ共有を有効にします。
  • vmsync: 実験的なファイルシステム同期ドライバ、バックアップやスナップショットの作成時にファイルシステムの休止を有効にします。
  • vmci: 仮想マシン通信インターフェイス (VMCI)、同じホストでの仮想マシン同士や仮想マシンとホスト間で高いパフォーマンスを発揮するインターフェイス。
  • vsocket: vmci の一部。
  • vmxnet: 古い vmxnet ネットワークアダプター用のドライバ。

Open-VM-Tools ユーティリティ

open-vm-tools パッケージには以下のモジュールが含まれています:

  • vmtoolsd: 仮想マシンの状態レポートに反応するサービス。
  • vmware-check-vm: 物理・仮想マシン上でユーティリティが起動しているか確認するツール。
  • vmware-xferlogs: ログやデバッグ情報を仮想マシンのログファイルに記録する。
  • vmware-toolbox-cmd: 統計などのホストの仮想マシンの情報を取得するツール。
  • vmware-user-suid-wrapper: ホストと仮想マシン間でクリップボード共有(コピーペースト)を有効にするツール。

Open-VM-Tools のインストール

[community] リポジトリから open-vm-toolsopen-vm-tools-modules パッケージをインストールしてください。

# pacman -S open-vm-tools open-vm-tools-modules

サービスを起動しブート時にそれを有効にする:

# systemctl start vmtoolsd
# systemctl enable vmtoolsd

open-vm-tools は空の /etc/arch-release ファイルを読み込みます:

# cat /proc/version > /etc/arch-release

時刻同期

仮想マシンで時刻同期を設定することは重要です: 物理的なホストに比べて仮想マシンでは時刻の変動は必ず発生します。これは複数の仮想マシンによって CPU が共有されることによって起こります。

時刻同期を設定する方法は2つあります: ホストマシンをソースにするか外部のサーバをソースにするかです。

時刻のソースとしてホストマシンを使う

時刻ソースとしてホストを使うには (例: ESX サーバー)、次のコマンドを実行して下さい (一回で十分です):

vmware-toolbox-cmd timesync enable

(ラップトップなど) ホストマシンがスリープから復帰した後にゲストの時計を同期させるには:

sudo hwclock --hctosys --localtime

I run the above command every time I wake up my sleeping laptop and resume using Arch Linux inside the VMWare Player.

時刻のソースとして外部サーバを使う

NTP を見て下さい。

Xorg の設定

Note: 仮想マシンで Xorg を使うには、最低でも 32MB の VGA メモリが必要で、VMware ハードウェアバージョンは8以上でなくてはなりません、バージョン7では正しく動作しません。

以下の依存パッケージをインストール:

pacman -S xf86-input-vmmouse xf86-video-vmware svga-dri

vmwgfx モジュールをブート時にロードするよう設定してください。

以下のファイルを作成:

/etc/X11/xorg.conf.d/20-gpudriver.conf
 Section "Device"
        Identifier "Card0"
        Driver     "vmware"
 EndSection

その後、再起動が必要です。

ゲストでスクリーンの自動フィットを正しく動作させるには、X の起動後に vmware-user-suid-wrapper を起動する必要があります。このために、以下のファイルを作成してください:

Note: The open-vm-tools 1:9.2.0-2 package creates this file. Maybe this step can be removed from this wiki?
/etc/xdg/autostart/vmware-user.desktop
 [Desktop Entry]
 Type=Application
 Name=VMWare User Agent
 Exec=/usr/bin/vmware-user-suid-wrapper
 Icon=system-run

X を再起動すれば、ログイン後ゲストはホストウィンドウに自動でリサイズされます。

準仮想化 SCSI アダプター

準仮想化 SCSI アダプターはオーバーヘッドが少ないので ESX で大きなパフォーマンスブーストを得られます。

This can be used as follows: open the /etc/mkinitcpio.conf file and add the following to the MODULES array:

MODULES=(...vmw_pvscsi...)

その後、次のコマンドを実行:

mkinitcpio -p linux

仮想マシンをシャットダウンして scsi アダプタータイプを変更してください: VMware Paravirtual。警告が表示されても無視してかまいません。

VMCI

VMware Workstation と Fusion ではデフォルトで VMCI インターフェイスが有効にされています。VMware ESX ではこのインターフェイスには制限があり、通信は ESX と仮想マシンの間でだけ可能です。これは Virtual Machine 設定で変えられますが、ESX と仮想マシン間のトラフィックは無効にできません。

ドラッグアンドドロップ

VMware Workstation/Fusion から仮想マシンへのファイルのドラッグアンドドロップを無効にするには /etc/conf.d/open-vm-tools を編集します:

VM_DRAG_AND_DROP="no"

コピーアンドペースト

以下のパッケージをインストールして下さい (コピーペーストに必要ですがここで報告されているように依存ライブラリではありません)

pacman -S gtkmm

X を起動した後に以下のコマンドを実行して (もしくは ~/.xinitrc ファイルに追加して) 自動でホストと X クリップボードを同期するようにします。これで仮想マシンで文章をコピーしてホストでペーストでき、逆もまた同様です。

vmware-user-suid-wrapper

次のエラーが表示される場合 (稀ですが、`strace vmware-user-suid-wrapper` を実行しないとメッセージが見れないことがあります!)

vmware-user: could not open /proc/fs/vmblock/dev

カーネルに vmblock モジュールを挿入する必要があります。

sudo modprobe vmblock

ブート時にモジュールをロードするには Kernel modules (日本語)#ロード を見て下さい。

vmblock モジュールの再ビルド

vmware-user-suid-wrapper が動作せず、カーネルが vmblock モジュールをロードしている場合、

lsmod | grep vmblock

Arch Build System で open-vm-tools-modules パッケージをビルドする必要があります:

sudo abs community/open-vm-tools-modules
cp -R /var/abs/community/open-vm-tools-modules/ .
cd ./open-vm-tools-modules/
makepkg -s
pacman -U open-vm-tools-modules-*.xz

その後、新しくビルド・再インストールしたモジュールを適用するためにマシンを再起動してください!

ホストとの共有フォルダ

Note: この機能は VMware Workstation と Fusion でだけ使えます。

VMware Workstation のメニューから VM -> Settings... を選択して新しい共有フォルダを作成してください。Options タブを選んでから Shared Folder を選びます。Always enabled オプションを有効にして新しい共有を作成してください。Windows XP では、ホストパス C:\C という名前の共有を作成できます。

/etc/fstab に共有フォルダそれぞれの (uid/gid は必要な場所に修正してください) 以下のルールを追加してください:

.host:/shared_folder /mnt/shared vmhgfs defaults,user,ttl=5,uid=root,gid=root,fmask=0133,dmask=0022 0 0

マウントディレクトリと共有フォルダを作成:

mkdir /mnt/shared
mount /mnt/shared

一時マウントも使えます:

mount -t -v -o rw .host:/shared_folder /mnt/shared
Note: an alternative way, tested on VMware player
.host:/ /mnt/shared vmhgfs defaults 0 0
mount -t vmhgfs .host:/ /mnt/shared

mlocate DB の剪定

mlocate を使うとき、locate DB で共有ディレクトリをインデックスするのは意味がありません。除去するディレクトリを /etc/updatedbPRUNEPATHS に追加してください。