1 04

[VirtualBox]年末年始でわかったのは、ネットワークが面倒すぎる。

Tag: Linuxuechoco @ 21 : 40 : 24

 年末年始にかけて、VirtualBoxをいろいろと触って、いくつか記事を書いてわかったことは、ネットワークが面倒すぎるということ。どれだけVirtualBoxの調査に時間をかけたかを考えると、年末年始がもったいなかったかなって気がします。いまさらですが、私が求めていたのは、

  1. 設定が楽であること。
  2. 仮想のLinux上でインターネットに接続できること。
  3. 仮想のLinuxにssh接続できること。
  4. 仮想のLinuxにftp/sftp接続ができて、ファイルが送れること。
  5. 仮想のLinuxが軽快に動くこと。
  6. 仮想のLinux上のApacheのWebページがホストOSのブラウザから見れること。(他の仮想化ソフトならできるのでしょうか?)

だったのですが、最後の6番だけがどうしてもできませんでした。一番やりたかったことができなければ、私にとってはもうこれ以上深追いする意味がなくなりました。ネットワークに関する知識がまだまだ不足しているのかもしれませんが、VirtualBoxを調べているとよく目にする「ホストOSからゲストOSに接続する方法がない」というのはもしかしてこのことだったのでしょうか?

 そういうわけで、VirtualBoxは短い間でしたが少しはハックできたと思います。次の選択肢はcoLinuxとVMwareです。coLinuxが設定が半端なく面倒、VMwareは重い。さて・・・どうしようか。

 だれか、「仮想のLinux上のApacheのWebページがホストOSのブラウザから見れること。」ができる仮想化ソフトウェア後損じないでしょうか?
VMwareでiptablesが原因でホストOSからhttp接続だけができなかったのですが、VirtualBoxでhttp接続ができなかったのもiptablesが原因なのではと思い、iptablesサービスをオフにして接続してみたところ、VirtualBoxでもhttp接続ができることがわかりました。どうやら私のLinuxの知識が追いついていないときにVirtualBoxを触ってしまったようですね。そういうわけで、この記事を以前に見てVirtualBoxに幻滅してしまった方はごめんなさい。

■追記(2008/01/10):


1 03

[VirtualBox]共有フォルダ機能 by Windows(Host)/Fedora 7(Guest)

Tag: Linuxuechoco @ 20 : 40 : 00

 前回の[VirtualBox]Fedora 7(Guest)にGuest Additionsをインストールするという記事で、Guest Additionsがインストールできたので、VirtualBoxの共有フォルダ機能が使えるようになったはずなので早速使ってみます。

 まずはWindows側で適当なところに共有したいフォルダを作成します。今回は

C:\VBoxShare

にします。まずはゲストOSの実行ウィンドウの[デバイス(D)]-[共有フォルダ(S)...]を選択して、[共有フォルダ]ダイアログを出します。真ん中のリストに「共有フォルダ」と「一時的な共有フォルダ」という文字がでているので、「共有フォルダ」を選択した状態で、右側の[+]ボタンで共有したいフォルダを選択します。名前の欄はVBoxShareでかまいません。

 続いてLinux側。今回は

/mnt/hostfs

にマウントしようと思います。

# mkdir /mnt/hostfs
# mount -t vboxsf VBoxShare /mnt/hostfs

 mkdirコマンドでマウント場所を作成して、mountコマンドでVBoxShareという名前のvboxsf(おそらくVirtual Box Shared Folder)というデバイスタイプを/mnt/hostfs/にマウントします。これで完了です。

 ためしにWindows側からもLinux側からもファイルを作成してもすぐに反映されています。Cygwinみたいな感覚ですね。


1 03

[VirtualBox]Fedora 7(Guest)にGuest Additionsをインストールする

Tag: Linuxuechoco @ 20 : 00 : 00

 VirutalBox Guest Additions(以下VBGAと呼ぶ)はゲストOSにVirtualBoxの便利なコマンドやツールをインストールするためのパッケージです。VirtualBoxの共有フォルダ機能を使ってみようと思ったのでインストールに挑戦してみました。環境は

  • ホストOS: Windows XP SP2
  • ゲストOS: Fedora 7

です。

■Guest Additions CD-ROMイメージのマウント

 VBGAはISO形式のCD-ROMイメージになっています。既にVirtualBoxのインストールしたフォルダの中に含まれています。たとえば私の環境では、ホストOSがWindows XPなので、

C:\Program Files\innotek VirtualBox\VBoxGuestAdditions.iso

というファイルです。使い方は簡単で、Fedora 7の実行中に、実行ウィンドウの[デバイス(D)]-[Guest Additions のインストール(I)...]をクリックすると自動でCD-ROMイメージがマウントされます。見た目には何も変わっていませんが、[デバイス(D)]-[CD/DVD-ROMのマウント解除(D)]でVBGAのCD-ROMイメージのイジェクトができるようになっています。

 続いて、Fedora 7のコマンドラインでマウントします。以下のコマンドでマウントできると思います。

# mkdir /mnt/cdrom
# mount -r /dev/cdrom /mnt/cdrom

マウントしたドライブを覗いてみると

# ls -la /mnt/cdrom
合計 1515
dr-xr-xr-x 6 root root   2048 2007-12-29 03:36 .
drwxr-xr-x 3 root root   4096 2008-01-03 07:11 ..
dr-xr-xr-x 2 root root   2048 2007-12-29 03:36 AMD_PCnet
-r-xr-xr-x 1 root root    143 2007-12-27 12:54 AUTORUN.INF
-r-xr-xr-x 1 root root 896496 2007-12-29 03:35 VBoxGuestAdditions.exe
-r-xr-xr-x 1 root root 635366 2007-12-29 03:35 VBoxLinuxAdditions.run
dr-xr-xr-x 5 root root   2048 2007-12-29 03:36 driver
dr-xr-xr-x 2 root root   2048 2007-12-29 03:36 gina
dr-xr-xr-x 2 root root   2048 2007-12-29 03:36 os2

となっているはずです。この中の

/mnt/cdrom/VBoxLinuxAdditions.run

というのが、実行可能なシェルスクリプトです。

■インストールシェルスクリプトの詳細

 ためしにヘルプコマンドを見てみます。

# sh /mnt/cdrom/VBoxLinuxAdditions.run help
Verifying archive integrity... All good.
Uncompressing VirtualBox 1.5.4 Guest Additions for Linux installation........
VirtualBox 1.5.4 Guest Additions installation
Usage: sh VBoxLinuxAdditions.run <options...>

The following options are recognized:

all           -- install all components of the Guest Additions
kernel-module -- only install the core components in the Linux kernel
vfs-module    -- install the shared folder component
timesync      -- install the time synchronisation component
x11           -- install guest drivers for the X Window System

If you do not specify any options, all components will be installed.
Components which you do not install will be deactivated if they arealready present in order to prevent possible problems due to mixingdifferent versions of the Additions.

 (あっている保障はないですが)日本語に訳すと、

使い方: sh VBoxLinuxAdditions.run <options...>

以下のオプションが認識されました:

all           -- Guest Additionsのすべてのコンポーネントをインストールします。
kernel-module -- Linux kernelのコア コンポーネントのみインストールします。
vfs-module    -- 共有フォルダ コンポーネントをインストールします。
timesync      -- 時刻同期コンポーネントをインストールします。
x11           -- X Window Systemのゲスト ドライバをインストールします。

オプションの指定がない場合は、すべてのコンポーネントがインストールされます。
既にインストール済みなのにインストールしなかったコンポーネントは無効化されます?
(異なるバージョンのGuest Additionsが混ざって実行可能なプログラムが妨げられるため)

だと思います。

 実行して成功すると、以下のようなメッセージが表示されます。

# sh /mnt/cdrom/VBoxLinuxAdditions.run all
Verifying archive integrity... All good.
Uncompressing VirtualBox 1.5.4 Guest Additions for Linux installation............
VirtualBox 1.5.4 Guest Additions installation
Building the VirtualBox Guest Additions kernel module...
Building the shared folder support kernel module...
Installing the VirtualBox Guest Additions...

Successfully installed the VirtualBox Guest Additions.
You must restart your guest system in order to complete the installation.

指示に従って再起動すればVBGAのインストールは完了です。

■エラーの対処方法

 と、先に成功のメッセージを紹介しましたが、私はすんなりと成功しませんでした。私の場合は

# sh /mnt/cdrom/VBoxLinuxAdditions.run
Verifying archive integrity... All good.
Uncompressing VirtualBox 1.5.4 Guest Additions for Linux installation..........
VirtualBox 1.5.4 Guest Additions installation
Please install the build and header files for your current Linux kernel.
The current kernel version is 2.6.23.8-34.fc7
Please install the GNU compiler.
Problems were found which would prevent the Guest Additions from installing.
Please correct these problems and try again.

というエラーメッセージが表示されました。どうやらいくつかソフトウェアが足りなかったようです。以下は、エラー別の対処方法です。

Error 1. Please install the GNU compiler.

# yum install gcc
# yum install make

でgccパッケージなどをインストールしましょう。警告が消えます。

Error 2.Please install the build and header files for your current Linux kernel.

 Linuxカーネルのヘッダーファイルが必要とのことらしいですが、よくわからないので、

ホストOSはWindowsとLinuxに対応。ただしWindows 2000では次のバージョンを待つか、test build したものを使ってくれとのこと。LinuxだとqtとSDL、そしてVMwareと同じく linux-headers、kernel-devel、kernel-source などのパッケージが事前に導入済みでないと駄目。ちなみにFedora Core6の場合、compat-libstdc++-33 もいりました。

を参考に、

# yum install kernel-devel

から入れてみました。この状態でVBGAのスクリプトを走らせたらインストールが成功しました。


1 01

[Linux]ApacheがPermission deniedを吐いてくる

Tag: Linuxuechoco @ 03 : 46 : 16

 VirtualBoxでFedora 7をせこせこがんばっている最中です。sshやsftpなんかも問題なく繋がって、あとはApacheの設定を終わらせればLinuxのWeb開発環境が完成するというところまで来ていますが、VirtualHostを設定すると、wgetできなくなるという現象が発生しました。

 エラーログはこんな感じです。

[Mon Dec 31 14:30:13 2007] [error] [client 127.0.0.1] (13)Permission denied: access to /index.html denied [Mon Dec 31 14:31:10 2007] [error] [client 127.0.0.1] (13)Permission denied: access to /index.html denied [Mon Dec 31 14:35:01 2007] [error] [client 127.0.0.1] (13)Permission denied: access to /index.html denied [Mon Dec 31 14:36:01 2007] [error] [client 127.0.0.1] (13)Permission denied: access to /index.html denied [Mon Dec 31 14:38:02 2007] [error] [client 127.0.0.1] (13)Permission denied: access to /index.html denied [Mon Dec 31 14:52:10 2007] [error] [client 127.0.0.1] (13)Permission denied: access to / denied [Mon Dec 31 14:54:00 2007] [error] [client 127.0.0.1] (13)Permission denied: access to / denied [Mon Dec 31 14:54:55 2007] [error] [client 127.0.0.1] (13)Permission denied: access to /index.html denied [Mon Dec 31 14:59:57 2007] [error] [client 127.0.0.1] (13)Permission denied: access to / denied [Mon Dec 31 15:00:18 2007] [error] [client 127.0.0.1] (13)Permission denied: access to / denied

 /var/www/htmlが初期設定ののDocumentRootです。症状としては

  • /var/www/htmlをDocumentRootに設定したVirtualHostはOK
  • /var/www以下に作ったディレクトリをDocumentRootに設定したVirtualHostはOK
  • /var/www2/htmlとか/home/hoge/htmlとかいろんなところに新しく作ったディレクトリをDocumentRootに設定したVirtualHostはNG

な感じです。AA-Camp #6に参加しているakkyさん、studio15さん、shinさんにアドバイスをもらいながらもなかなか原因がわからなかったのですが、もしかしてSELinuxじゃない?っていうアドバイスももらったので

echo 0 > /selinux/enforce

というコマンドでSELinuxをとりあえず切ってみたら、さっきまでNGだった場所をDocumentRootに設定したVirtualHostもしっかりと受け付けてくれました。仮想環境のLinuxだから、セキュリティはそんなに意識しなくてもいいでしょということで、/etc/selinux/config で

# /etc/selinux/config SELINUX=disabled

としてSELinuxが起動しないように設定しました。

 Apacheが動かないからずっとhttpd.confとにらめっこしたりディレクトリのパーミッションを全部777にしてみたりrootオーナーに変えてみたりを繰り返していましたが、こんなところに魔物が潜んでいたんですね。勉強になりました。


12 31

[Linux]ユーザーの追加(useradd)とその確認(id -a)、パスワードの変更(passwd)

Tag: Linuxuechoco @ 22 : 28 : 19

 ユーザーの追加は

# useradd USERNAME

 追加されたかどうかの確認は

# id -a USERNAME

 追加したユーザーのパスワードの変更は

# passwd USERNAME

メモメモφ(・ω・`)


« 前ページへ次ページへ »