2009年3月31日火曜日

UbuntuでCIFSを利用してWindowsの共有フォルダをmountする

[したいこと・しりたいこと]
[目標]
windowsの共有フォルダにあるisoイメージをvirtualboxにマウントしたい
CIFSを利用してWindowsの共有フォルダをmountする
コマンドラインからWindows上の共有フォルダにアクセスする



[環境]
ファイルサーバー
Windows XP SP3
IPaddress:192.168.0.2
共有フォルダ:/public
共有フォルダpublicのユーザー名:monkey


クライアント
Ubuntu Hardy 8.04
VirtualBox 2.1.x
USB 104Key (US)
マウントポイント:/mnt/win



[したこと]

sambaのヘルパープログラムを導入
$ sudo apt-get install smbfs

マウントポイントを作る
$ sudo mkdir /mnt/win


共有フォルダにアクセスする
$ sudo mount -t cifs //192.168.0.2/public /mnt/win

ユーザーを指定して共有フォルダにアクセスする
$ sudo mount -t cifs //192.168.0.2/public /mnt/win -o username=monkey


アンマウント
$ sudo umount /mnt/win



[参考]
Fedora JP 掲示板
http://bbs.fedora.jp/read.php?FID=13&TID=6865




起動時、一般ユーザにもWindows領域をマウントしてアクセス権限をあたえたい場合。

1)mountポイント作成
$ sudo mkdir /mnt/winxp

2)デバイス名確認
$ sudo fdisk -l

Device Boot Start End Blocks ID System
/dev/hda1 1 638 5124703 b W95 FAT32
/dev/hda2 639 4525 31222327 83 Linux
/dev/hda3 4526 4635 497980 82 Linux swap


3)設定ファイル編集
/etc/fstabファイルに下記を追記する。

/dev/hda1 /mnt/win ntfs iocharset=utf8,umask=222 1 0

hda1部分は自分の環境にあわせる。
これでOK。

[Ubuntu] 起動時にNTFSをマウントする - Linux Tips Note
http://blog.goo.ne.jp/noriyo77/e/8b7c044179fbe1de9dceed2b47eccbd7

>

2009年3月7日土曜日

UbuntuホストのVirtualBoxにGuestマシンをCUIで作成しVRDPで接続する

[したいこと・しりたいこと]
UbuntuホストのVirtualBoxにGuestマシンをCUIで作成しVRDPで接続する

[目標]

VirtualBoxをCUIで利用し、ネットワークの割り当てをNATからホストインターフェイスに変更する
VBoxManage modifyvm でのネットワークの接続タイプの変更
VBoxManage modifyvm でのVRDPポートの変更
VirtualBoxをCLIで起動し、別のマシンからリモートデスクトップ接続する


[環境]

ホストマシン
Ubuntu Hardy Heron 8.04
VirtualBox 2.1.4
USB 104Key (US)

ゲストOSはubuntu-ja-8.10-desktopとする
ubuntu-ja-8.10-desktop-i386.isoはホームディレクトリに
$ mkdir iso
として作ったディレクトリの中に保存されている
/home/user/iso/ubuntu-ja-8.10-desktop-i386.iso

ホストマシンにログインして仮想マシンを作成するユーザーの名前はuserとする

ゲストマシンはあとでIPを固定して割り振りたいのでホストインターフェースを利用する



[したこと]

VirtualBoxパッケージソースの追加
$ sudo vi /etc/apt/sources.list:

deb http://download.virtualbox.org/virtualbox/debian intrepid non-free
deb http://download.virtualbox.org/virtualbox/debian hardy non-free
deb http://download.virtualbox.org/virtualbox/debian gutsy non-free

VirtualBoxパッケージのキーの取得
$ sudo wget -q http://download.virtualbox.org/virtualbox/debian/sun_vbox.asc -O- | sudo apt-key add -

VirtualBoxのインストール
$ sudo apt-get install virtualbox-2.1

仮想マシンの名前"ubuntu" の登録
VBoxManage createvm -name "ubuntu" -register

仮想マシン"ubuntu" の基本設定
VBoxManage modifyvm "ubuntu" -memory "512MB" -acpi on -boot1 dvd -nic1 hostif

ホストマシンのeth0を、仮想マシン"ubuntu" のnic1に関連付ける
VBoxManage modifyvm "ubuntu" -hostifdev1 eth0

仮想ドライブの作成
VBoxManage createvdi -filename "Ubuntu.vdi" -size 8000 -register

仮想ドライブの登録
VBoxManage modifyvm "ubuntu" -hda "Ubuntu.vdi"

OSイメージCDの登録
VBoxManage registerimage dvd /home/user/iso/ubuntu-ja-8.10-desktop-i386.iso

OSイメージCDをVirtualBoxのCDドライブに入れる
VBoxManage modifyvm "ubuntu" -dvd /home/user/iso/ubuntu-ja-8.10-desktop-i386.iso

VRDPポートの変更
VBoxManage modifyvm "ubuntu" -vrdpport 13389

仮想マシン"ubuntu" の起動
VBoxVRDP -startvm "ubuntu"

仮想マシン"ubuntu" へVRDPで接続
rdesktop -a 24 192.168.0.2:13389

ゲストOSのインストール

仮想マシン"ubuntu" の終了
VBoxManage controlvm "ubuntu" poweroff

VirtualBoxGuestAdditionsイメージisoの登録
VBoxManage registerimage dvd /usr/share/virtualbox/VBoxGuestAdditions.iso

VirtualBoxGuestAdditionsイメージisoをVirtualBoxのCDドライブに入れる
VBoxManage modifyvm "ubuntu" -dvd /usr/share/virtualbox/VBoxGuestAdditions.iso

ゲストOSの起動
VBoxVRDP -startvm "ubuntu"


[その他]

仮想マシン"ubuntu" のネットワークの接続タイプの変更
VBoxManage modifyvm "ubuntu" -nic1 nat

ホストOSがWindowsで音を出す場合
VBoxManage modifyvm "ubuntu" -audio dsound

ホストOSがUbuntu Hardy 8.04で音をalsa経由で出す場合
VBoxManage modifyvm "ubuntu" -audio alsa

ホストOSがUbuntu Hardy 8.04で音をoss経由で出す場合
VBoxManage modifyvm "ubuntu" -audio oss

ホストOSがUbuntu Hardy 8.04で音をpluseaudio経由で出す場合
VBoxManage modifyvm "ubuntu" -audio pluse

ゲストOSのOSタイプの指定
ゲストOSがUbuntuの場合
VBoxManage modifyvm "ubuntu" -ostype Ubuntu
ゲストOSがWindowsXPの場合
VBoxManage modifyvm "ubuntu" -ostype WindowsXP

スナップショットの管理など
KRAKENBEAL RECORD: VirtualBoxをCUIで操作したい
http://krakenbeal.blogspot.com/2009/02/virtualboxcui.html

[注意]

※Ubuntu ServerがVirtualBox上で起動に失敗する
エラーメッセージ

The kernel requires the following features not present on the CPU
0:6
Unable to boot - please use a kernel appropriate for your CPU

対応-1
ゲストマシンの設定でPAEを有効にする
VBoxManage modifyvm "ubuntu" -pae on

対応-2
LiveCDで起動して"壊れたシステムを修復"メニューを選択してレスキューモードで linux-genericのインストールを行う
VirtualboxへのゲストOSインストール - ksaitoの日記
http://d.hatena.ne.jp/ksaito11/20080510#1210436271


※windowsからリモートデスクトップ接続でvimを利用するときEscキーが効かない
リモートデスクトップ接続がEscを受付けない
対応
vimのかわりにnanoを使う


[参考]
Linux_Downloads - VirtualBox
http://www.virtualbox.org/wiki/Linux_Downloads

Minimal VirtualBox VRDP Setup - a quick guide - CertForums
http://www.certforums.co.uk/forums/showthread.php?t=20798

Installing VirtualBox on 7.04 Server edition for VRDP use - Ubuntu Forums
http://ubuntuforums.org/showthread.php?t=555996

VirtualboxへのゲストOSインストール - ksaitoの日記
http://d.hatena.ne.jp/ksaito11/20080510#1210436271

よこいまさる日記 - Sun xVM VirtualBox で Ubuntu 8.10 Server , Sun xVM VirtualBox のサーバに ssh で接続する。 , 中国語翻訳ソフト , China Mobile..
http://masaru.org/diary/20090306.html


2009年3月6日金曜日

VirtualBoxのゲストOSにVRDPで接続する

[目標]
リモートデスクトップを使用したい
Windowsに標準でついているリモートデスクトップ接続というソフトで接続したい


[環境]

host 192.168.0.3
Ubuntu Hardy Heron 8.04
VirtualBox 2.1.4
guestname "ubuntu"
vrdp認証方式:null
vrdpport:3389
USB 104Key (US)


guest 192.168.0.2
Ubuntu Hardy Heron 8.04
USB 104Key (US)


client 192.168.0.5
WindowsXP リモートデスクトップ接続
USB 104Key (US)



[したこと]

guestの起動

$ VBoxVRDP -start "ubuntu"
$ VBoxHedless -s "ubuntu" &



hostから接続するとき
ubuntuから接続するとき

$ rdesktop 127.0.0.1:3389
または
$ rdesktop 192.168.0.3:3389


clientから接続するとき
Windowsから接続するとき
コンピュータ(C)の欄に
192.168.0.3:3389


[注意]

192.168.0.3:3389が接続するポートです。192.168.0.2:3389ではありません。


Hostからrdesktop 127.0.0.1:3389に接続しているときに、clientからリモートデスクトップ接続で接続できない
clientからリモートデスクトップ接続しているときに、Hostからrdesktop 127.0.0.1:3389に接続で接続できない
Hostからrdesktop 192.168.0.2:3389に接続しているときに、clientからリモートデスクトップ接続で接続できない
3389に同時に接続できるクライアントの数は1つだけ


guest2 "fedora"などが存在する場合の設定は、"fedora"のvrdpportを13389などに変更する


※認証方式nullの注意
guestの"ubuntu"がGUIで起動しているとき、vrdポート3389に接続すると同一の画面が表示される
1."ubuntu"がGDMログイン画面のとき、vrdポート3389に接続するとGDMログイン画面が表示される
2."ubuntu"がGDMログイン画面で誰かがログインすると、vrdポート3389に接続された画面も同じ人としてログインする


※認証方式nullの注意
guestの"ubuntu"のvrdポート3389にリモートデスクトップ接続し、リモートデスクトップ接続の接続を解除しただけでは、ログアウトされていない
1.guestの"ubuntu"のvrdポート3389にリモートデスクトップ接続する
2.guestへのリモートデスクトップ接続を接続ソフトを閉じて解除する
3.guestの"ubuntu"のvrdポート3389にリモートデスクトップ接続する。以前起動したFirefoxが起動しているのが確認できる
4.リモートデスクトップ接続のウィンドウ内部で、guestの"ubuntu"のログアウトを選ぶと、ログアウトして、GDMログインの画面にもどる
5.guestへのリモートデスクトップ接続を接続ソフトを閉じて解除する
6.guestの"ubuntu"のvrdポート3389にリモートデスクトップ接続する。表示された画面がGDMログインの画面であることが確認できる


Windowsのコマンドラインから、リモートデスクトップ接続を立ち上げるには
mstsc
と、打ち込む


WindowsがHostで、guestの"ubuntu"をコマンドラインで立ち上げる場合、"C:\Program Files\Sun\xVM VirtualBox"にパスを通しておく(標準では通っていない)


[参考]


VirtualBox 1.4.0でVRDP機能を試す - 試験運用中なLinux備忘録
http://d.hatena.ne.jp/kakurasan/20070717/p1

仮想化された日々:仮想化のススメ(10) 仮想マシンにRDP接続 - livedoor Blog(ブログ)
http://blog.livedoor.jp/les_paul_sp/archives/141329.html

UbuntuにBIND9をインストール

[したいこと・しりたいこと]
UbuntuにBIND9をインストールする
Ubuntuで内向きのDNSサーバーを立てる

改定版
KRAKENBEAL RECORD: ubuntuでbind9を設定ver2
http://krakenbeal.blogspot.com/2009/08/ubuntubind9ver2.html


[環境]
Ubuntu Hardy 8.04
username:user01
USB 104Key (US)
インストール時にホストネームをpc-serverと指定した
インストール時にIPアドレスを192.168.0.2と指定した

ISPから配布されたDNSアドレス
123.45.67.89;
123.45.67.90;

一目でローカルテスト用とわかるテストドメイン名
example.localnet

接続ホスト名とIP一覧
defaultgateway:1291.68.0.1
pc-server:192.168.0.2
pc3:192.168.0.3
pc4:192.168.0.4
pc5:192.168.0.5

接続ホスト名と役割一覧
defaultgateway:Buffaloのルーター
pc-server:Ubuntu(仮想マシン)
pc3:Ubuntu(pc-serverのホストマシン)
pc4:クライアント1号
pc5:クライアント2号



1. インストール前の下準備


ホスト名とドメインの確認
/etc/hostsの修正

$ sudo vi /etc/hosts

127.0.0.1 localhost
127.0.1.1 pc-server

127.0.0.1 localhost localhost.loopback
127.0.1.1 pc-server
192.168.0.2 pc-server pc-server.example.localnet


名前解決の手段の確認と変更

$ sudo vi /etc/nsswitch.conf

#hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4
hosts: dns


サービスの再起動
$ sudo /etc/init.d/networking restart


2. BIND9のインストール

$ sudo apt-get install bind9


3. named.conf.optionsの編集

/etc/bind/named.confは変更しない方針


全体に関与するオプションの指定

$ sudo vi /etc/bind/named.conf.options

以下のコメントアウトされた部分を、

// forwarders {
// 0.0.0.0;
// };

次のように修正し、内部で解決できないgoogleのアドレス等を調べにいくISPのDNSを指定する

forwarders {
123.45.67.89;
123.45.67.90;
};

auth-nxdomain no; # conform to RFC1035
listen-on-v6 { any; };
上記の下にLAN内部のPCだけが参照できるように下記の内容を追記する

allow-query {
127.0.0.0/8;
192.168.0.0/24;
192.168.1.0/24;
};




4. named.conf.localの編集

/etc/bind/named.confは変更しない方針

このDNSサーバーが解決できるホスト名とIPアドレスの組み合わせ辞書の場所の指定

$ sudo vi /etc/bind/named.conf.local

次の内容を追加


// example.localnetのゾーン情報
zone "example.localnet" {
type master;
// example.localの正引きデ-タベースファイル名
file "/etc/bind/db.localnet";
};

// 192.168.0のゾーン情報
zone "0.168.192.in-addr.arpa" {
type master;
// 192.168.0の逆引きデ-タベースファイル名
file "/etc/bind/db.192.168.0";
};


// loopbackのゾーン情報
zone "loopback" {
type master;
// loopbackの正引きデ-タベースファイル名
file "/etc/bind/db.loopback";
};

// 127.0.0のゾーン情報
zone "0.0.127.in-addr.arpa" {
type master;
// 127.0.0の逆引きデ-タベースファイル名
file "/etc/bind/db.127.0.0";
};

include "/etc/bind/rndc.key";
controls {
inet 127.0.0.1
allow { 127.0.0.1; }
keys { rndc-key; };
};


5.1 LANに接続している各マシンのホスト名とIPアドレスの対応表(正引き用)を作る
example.localのゾーン情報 (正引き用)を作る

$ sudo vi /etc/bind/db.localnet

;
; BIND data file for example.localnet
;
$TTL 86400
@ IN SOA ns.example.localnet. root.ns.example.localnet. (
2009010401 ; Serial
8H ; Refresh 28800
4H ; Retry 14400
3D ; Expire 259200
1D ) ; Negative Cache TTL 86400
IN NS ns.example.localnet.
IN A 192.168.0.2
ns IN A 192.168.0.2
pc-server CNAME ns.example.localnet.
localhost IN A 127.0.0.1

defaultgateway IN A 192.168.0.1
pc3 IN A 192.168.0.3
pc4 IN A 192.168.0.4
pc5 IN A 192.168.0.5


5.2 LANに接続している各マシンのホスト名とIPアドレスの対応表(逆引き用)を作る
example.localのゾーン情報 (逆引き用)を作る

$ sudo vi /etc/bind/db.192.168.0

;
; BIND data file for example.localnet
;
$TTL 86400
@ IN SOA ns.example.localnet. root.ns.example.localnet. (
2009010401 ; Serial
8H ; Refresh 28800
4H ; Retry 14400
3D ; Expire 259200
1D ) ; Negative Cache TTL 86400
IN NS ns.example.localnet.
2 IN PTR ns.example.localnet.

1 IN PTR defaultgateway.
3 IN PTR pc3.
4 IN PTR pc4.
5 IN PTR pc5.


6.1 loopbackに接続しているマシンのホスト名とIPアドレスの対応表(正引き用)を作る
loopbackのゾーン情報 (正引き用)を作る

$ sudo vi /etc/bind/db.loopback

;
; BIND data file for local loopback interface
;
$TTL 604800
@ IN SOA loopback. root.loopback. (
2 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS loopback.
@ IN A 127.0.0.1
@ IN AAAA ::1
localhost IN A 127.0.0.1


6.2 loopbackに接続しているマシンのホスト名とIPアドレスの対応表(逆引き用)を作る
loopbackのゾーン情報 (逆引き用)を作る

$ sudo vi /etc/bind/db.127.0.0

;
; BIND reverse data file for loopback interface
;
$TTL 604800
@ IN SOA loopback. root.loopback. (
1 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS loopback.
1 IN PTR localhost.


7. 作成したゾーンファイルの検証
$ named-checkzone example.localnet /etc/bind/db.localnet
$ named-checkzone example.localnet /etc/bind/db.192.168.0
$ named-checkzone 127.0.0.1 /etc/bind/db.loopback
$ named-checkzone 127.0.0.1 /etc/bind/db.127.0.0

8.resolv.confの確認と修正

以下をコメントアウトして、nameserverにpc-serverのアドレスを指定する
nameserver 123.45.67.89
nameserver 123.45.67.90

変更後
#nameserver 123.45.67.89
#nameserver 123.45.67.90
nameserver 192.168.0.2


9. サービスの再起動


$ sudo /etc/init.d/networking restart
$ sudo /etc/init.d/bind9 restart


10. 確認

$ dig @pc-server.example.localnet example.localnet
$ nslookup


[注意]

※nslookupでは名前解決できるがFireFoxで名前解決できない場合

nsswitch.conf
最小限の設定でDNSを使う - adsaria mood
http://d.hatena.ne.jp/adsaria/20090131/1233383628
の解説では /etc/nsswitch.conf が設定済みを想定している模様

/etc/nsswitch.conf の
hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4

hosts: dns
に変更したらFireFoxで名前解決できるようになった

※ $ sudo /etc/init.d/bind9 restartが失敗して[fail]になる場合

named.conf.optionsまたはnamed.conf.localが書き間違っている場合
全角空白、全角スペースは見た目ではわからないので注意

// loopbackのゾーン情報
zone "loopback" {
type master;
file "/etc/bind/db.loopback";
};

// 127.0.0のゾーン情報
zone "loopback" {
type master;
file "/etc/bind/db.127.0.0";
};

のようにzoneネームが、ぶつかっている場合

※ 正引きできない

$ named-checkzone example.localnet /etc/bind/db.localnetがokと帰ってきた?
/etc/hostsの記述違い ?

誤)
192.168.0.2 pc-server pc-server.example.localnet
正)
192.168.0.2 pc-server example.localnet

誤)
192.168.0.2 pc-server .example.local
正)
192.168.0.2 pc-server example.localnet

誤)
192.168.0.2 pc-server localnet
正)
192.168.0.2 pc-server example.localnet

/etc/bind/db.localnet /etc/bindnamed.conf.local /etc/hosts の3つのファイルの確認
192.168.0.2 example.localnet の組み合わせを書く所に記述ミスはある?






[参考]


最小限の設定でDNSを使う - adsaria mood
http://d.hatena.ne.jp/adsaria/20090131/1233383628

BIND (DNSサーバー)/Ubuntu 8.04
http://www.shitomi.jp/ubuntu804/bind.html

http://www.atmarkit.co.jp/flinux/rensai/bind915/bind915b.html

@IT:すべての基礎、マスター・ゾーンサーバの設定(2/3)
http://www.atmarkit.co.jp/flinux/rensai/bind902/bind902b.html

@IT:BIND 9のチューニングと大規模運用(2/2)
http://www.atmarkit.co.jp/flinux/rensai/bind911/bind911b.html