Linux関連
 * 小型Linux


その他
 * プロジェクト管理
 * 開発マイルストーン
 * 投資情報
はじめに

VMWareを利用してLinuxで動作するツールを動かしたい時や、
容量を抑えた環境が必要な場合に今回説明する方法が参考になると思います。
最低限のコマンドや、Telnet、Sambaなどは動作するようにします。


 動作環境

今回使用する環境

■ Linux debian 2.6.18-6-686
+ Telnet+SSH2サーバ:(rootでTelnet接続可能)
+ Sambaサーバ:(Windowsからrootでアクセス可能)
+ SambaFS:(Sambaサーバ(Windows)の共有フォルダにマウント可能)

以下の設定を前提として説明します。適宜読み替えてください
※VMware Player:N/W設定
NAT:GatewayIP=192.168.1.2/255.255.255.0
サブネット:192.168.1.0

セットアップでの設定
※IPアドレス:192.168.1.3
※ユーザ:root
※パスワード:password


 ツール入手先

ツール入手先

※VMware Playerのダウンロード
http://www.vmware.com/download/player/
現時点での最新:[ VMware-player-2.0.2-59824.exe ]

※DebianインストールCDイメージ
http://www.debian.org/CD/http-ftp/
現時点での最新:[ debian-40r4a-i386-CD-1.iso ]

※Sambaパッケージ入手先(smbfsはCD1枚目に入っていない)
http://ftp.jp.debian.org/debian/pool/main/s/samba/
現時点での最新:[ smbfs_3.0.24-6etch10_i386.deb ]
※[ tools.iso ] に含まれています

※QEMU入手先
http://www.h7.dion.ne.jp/~qemu-win/index-ja.html

※tools.iso入手先


フォルダ構成

※以下の作業フォルダを準備
0.ディスク作成 QEMUによる仮想ディスク作成用(QEMUインストール先)
1.VMWare設定 VMWare用設定ファイル作成と空の仮想ディスク配置用
2.LinuxインストールLinuxインストール直後の仮想ディスク配置用
3.Linuxセットアップ不要ファイル削除と必要なパッケージセットアップ用


 0.ディスク作成

仮想ディスク作成

QEMUで仮想ディスク作成(0.ディスク作成)
qemu-img create -f vmdk root.vmdk 192M
qemu-img create -f vmdk usr.vmdk 512M
qemu-img create -f vmdk var.vmdk 512M

[ root.vmdk ] [ usr.vmdk ] [ var.vmdk ] を [ 1.VMWare設定 ] に移動


 1.VMWare設定

ネットワーク設定

VMWare Player付属のvmnetcfg.exeを開いてVMNet8を設定します

NAT:GatewayIP=192.168.1.2/255.255.255.0
サブネット:192.168.1.0/255.255.255.0



VMWare用設定ファイル作成 [ root.vmx ]

config.version = "8"
virtualHW.version = "3"

# 仮想OSに割当てるメモリサイズ(MByte) - 4の倍数
memsize = "128"

MemAllowAutoScaleDown = "FALSE"

ide0:0.present = "TRUE"

# 仮想OS用のディスクイメージファイルを指定
ide0:0.fileName = "root.vmdk"
ide0:0.redo = ""

# 仮想ディスク(セカンダリ)
ide0:1.present = "TRUE"
ide0:1.fileName = "usr.vmdk"
ide0:1.redo = ""

# 仮想ディスク(CD-ROM)
ide1:0.present = "TRUE"
ide1:0.redo = ""

# ISOイメージを利用する場合
ide1:0.fileName = "debian-40r4a-i386-CD-1.iso"
#ide1:0.fileName = "tools.iso"
ide1:0.deviceType = "cdrom-image"
ide1:0.autodetect = "TRUE"

# CD-ROMを利用する場合
#ide1:0.fileName = "auto detect"
#ide1:0.deviceType = "cdrom-raw"

# 仮想ディスク(セカンドドライブ)
ide1:1.present = "TRUE"
ide1:1.fileName = "var.vmdk"
ide1:1.redo = ""

# フロッピードライブの有効・無効
floppy0.present = "FALSE"
floppy0.fileName = "A:"

# ネットワーク設定
ethernet0.present = "TRUE"
ethernet0.connectionType = "nat"
ethernet0.addressType = "generated"
ethernet0.generatedAddress = ""
ethernet0.generatedAddressOffset = "0"

# サウンド設定
sound.present = "FALSE"
sound.virtualDev = "es1371"
sound.fileName = "-1"
sound.autodetect = "TRUE"

# Plyaerのタイトルに表示する名前
displayName = "MiniLinux_VM"

guestOS = "linux"

# nvramファイルの名前
nvram = "root.nvram"

uuid.location = ""
uuid.bios = ""

# USBデバイスの有効・無効
usb.present = "FALSE"

extendedConfigFile = "root.vmxf"
virtualHW.productCompatibility = "hosted"
tools.upgrade.policy = "manual"

tools.remindInstall = "TRUE"
↑ここまで貼り付け


 2.Linuxインストール

LinuxOSインストール

[ 1.VMWare設定 ] の [ root.vmx ] [ root.vmdk ] [ usr.vmdk ] [ var.vmdk ] を [ 2.Linuxインストール ] にコピー
[ 2.Linuxインストール ] の [ root.vmx ] をVMWareから開く
※VMWarePlayer初回起動時、[ 移動 or コピー ] を聞かれた場合は [ 移動 ] を選択


ロケーション:日本
キーボード:日本語(106)

IPアドレス :192.168.1.3


ネットマスク:255.255.255.0


ゲートウェイ:192.168.1.2


ネームサーバ:192.168.1.2
ホスト名:debian
ドメイン名:

パーティショニングの方法:手動
[ hda1:/(200M) ] boot:on
[ hdb1:/tmp(200M) ] [ hdb2:/var(300M) ]
[ hdd1:/usr(300M) ] [ hdd2:/proc(200M) ]


※全て基本、ext3、スワップなし

rootパスワード:password
ユーザ作成:guest


ベースシステムのインストール:しばらく自動

ソフトウェアの選択インストール:全て外す


ブートローダのインストール:する
※リブート
ログインしてshutdown -h now

インストール後のディスクイメージ


※(補足)全ファイル情報取得
find /bin -exec ls -1d {} \;
find /boot -exec ls -1d {} \;
find /dev -exec ls -1d {} \;
find /etc -exec ls -1d {} \;
find /home -exec ls -1d {} \;
find /lib -exec ls -1d {} \;
find /opt -exec ls -1d {} \;
find /root -exec ls -1d {} \;
find /sbin -exec ls -1d {} \;
find /usr -exec ls -1d {} \;
find /var -exec ls -1d {} \;

※[ root.vmx ] [ root.vmdk ] [ usr.vmdk ] [ var.vmdk ] 以外は削除可能


 3.Linuxセットアップ

不要ファイル削除

[ root.vmx ] [ root.vmdk ] [ usr.vmdk ] [ var.vmdk ] を [ 3.Linuxセットアップ ] にコピー
[ root.vmx ] を修正
#ide1:0.fileName = "debian-40r4a-i386-CD-1.iso"
ide1:0.fileName = "tools.iso"

[ root.vmx ] をVMWareから開く

以下コマンドを実行
↓仮想CD-ROMにマウントしてツールをコピー
mount /dev/cdrom /media/cdrom
cd /media/cdrom
cp -p * /var/.
cd /var
chmod 777 *.sh
↓不要ファイル削除
./delfile.sh
↓シャットダウン
shutdown -h now


パッケージインストール用に起動

[ root.vmx ] を修正
ide1:0.fileName = "debian-40r4a-i386-CD-1.iso"
#ide1:0.fileName = "tools.iso"

[ root.vmx ] をVMWareから開く


OpenSSHインストール

以下コマンドを実行
mount /dev/cdrom /media/cdrom
cd /media/cdrom/pool/main/o/
aptitude install openssh-server
※Telnet+SSH2でログイン可能


sambaインストール

以下コマンドを実行 ( sambaインストール )
cd /media/cdrom/pool/main/s/
aptitude install samba
※Workgroup/Domain Name:WORKGROUP

以下コマンドを実行 ( samba設定ファイル修正 )
#echo> /etc/samba/smb.conf
vi /etc/samba/smb.conf

以下のように修正
[ global ]
    workgroup = WORKGROUP
    server string = %h server
    security = user
    log file = /var/log/samba/log.%m
    max log size = 50
    socket options = TCP_NODELAY
    encrypt passwords = yes
    unix password sync = yes

[ root ]
    comment = root
    path = /
    browseable = yes
    writeable = yes
    read only = No

以下コマンドを実行
↓root追加、パスワード設定
pdbedit -a root
↓Samba再起動
/etc/init.d/samba restart


smbfsインストール

以下コマンドを実行
cd /var
↓smbfsパッケージインストール
dpkg -i smbfs_3.0.24-6etch10_i386.deb
※smbfsでマウント可能に
mount -t smbfs -o username=root,password=password //192.168.1.3/root /mnt
umount /mnt


/usr, /var 以下の通常動作に必要なファイルを取得

以下コマンドを実行
cd /var
/var/getusr.sh
cd /usr
/var/getvar.sh


usrをはずして再起動

以下コマンドを実行 ( ファイルシステム設定の修正 )
vi /etc/fstab

※/usr,/media/cdrom0,/media/floppy0をコメント
以下のように修正
proc/procprocdefaults00
/dev/hda1/ext3defaults,errors=remount-ro01
/dev/hdd1/procext3defaults02
/dev/hdb1/tmpext3defaults02
#/dev/hdd1/usrext3defaults02
/dev/hdb5/varext3defaults02
#/dev/hdc/media/cdrom0udf,iso9660user,noauto00
#/dev/fd0/media/floppy0autorw,user,noauto00

以下コマンドを実行 ( 再起動 )
reboot


usrを展開

以下コマンドを実行
※Telnet+SSH2でログイン不可
cd /
tar -xvf /var/usr.tar
↑ルートから展開する


usrを有効、varをはずして再起動

以下コマンドを実行 ( ファイルシステム設定の修正 )
vi /etc/fstab

※/usrを有効、/varをコメント
以下のように修正
proc/procprocdefaults00
/dev/hda1/ext3defaults,errors=remount-ro01
/dev/hdd1/procext3defaults02
/dev/hdb1/tmpext3defaults02
/dev/hdd1/usrext3defaults02
#/dev/hdb5/varext3defaults02
#/dev/hdc/media/cdrom0udf,iso9660user,noauto00
#/dev/fd0/media/floppy0autorw,user,noauto00

以下コマンドを実行 ( 再起動 )
/sbin/reboot


varを展開

以下コマンドを実行
※Telnet+SSH2でログイン不可
cd /
tar -xvf /usr/var.tar
↑ルートから展開する
mkdir -p /var/log/news /var/spool


文字コードをShiftJISに

以下コマンドを実行 ( .profile の修正)
vi ~/.profile

以下を修正
LANG=ja_JP.SJIS
LANGUAGE=ja_JP.SJIS


usrをはずして終了

以下コマンドを実行 ( ファイルシステム設定の修正 )
vi /etc/fstab

※/usr,/tmpをコメント
proc/procprocdefaults00
/dev/hda1/ext3defaults,errors=remount-ro01
#/dev/hdd1/procext3defaults02
#/dev/hdb1/tmpext3defaults02
#/dev/hdd1/usrext3defaults02
#/dev/hdb5/varext3defaults02
#/dev/hdc/media/cdrom0udf,iso9660user,noauto00
#/dev/fd0/media/floppy0autorw,user,noauto00

以下コマンドを実行 ( シャットダウン )
/sbin/shutdown -h now


vmxファイル修正

root.vmx を修正
ide0:1.present = "FALSE"
ide1:0.present = "FALSE"
ide1:0.fileName = "auto detect"
ide1:0.deviceType = "cdrom-raw"
ide1:1.present = "FALSE"


後始末

※[ root.vmx ] [ root.vmdk ] 以外は削除可能


 IP,パスワードなど変更方法

IPアドレス変更方法

以下コマンドを実行 ( ネットワーク設定ファイル修正 )
vi /etc/network/interfaces

以下のように修正
allow-hotplug eth0
iface eth0 inet static
    address 192.168.1.3
    netmask 255.255.255.0
    network 192.168.1.0
    broadcast 192.168.1.255
    gateway 192.168.1.2
    dns-nameservers 192.168.1.2



パスワード変更方法

以下コマンドを実行
passwd
smbpasswd


 4.アクセス方法

Telnet接続

お勧め:UTF-8対応TeraTerm Pro
入手先:http://www.vector.co.jp/soft/win95/net/se320973.html
※TeraTermに以下のパラメータを指定して実行
ttermpro.exe 192.168.1.3:22 /user=root /passwd=password



Windowsファイルエクスプローラからアクセス

※コマンドラインから以下を実行
net use z: \\192.168.1.3\root /USER:root password



共有フォルダへのマウント

WindowsPC/UNIX Sambaサーバへのマウント
(書式):mount -t smbfs -o username=(接続先ユーザ),password=(接続先パスワード) //(接続先IPアドレス)/(共有フォルダ名) /(マウントポイント)
(例) :mount -t smbfs -o username=user,password=password //192.168.1.2/user /mnt


 配布

フリーソフトの7-Zipで圧縮すると、通常zipの半分くらいまで圧縮可能です。


 ダウンロード

↓今までの説明で作成できるVMイメージがコチラからダウンロードできます




Copyright (c) 2007 zudajijp. All Rights Reserved.