FC2ブログ
スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
[ --/--/-- --:-- ]

| スポンサー広告 |
LinuxでLVMによるディスク構成管理
LinuxカーネルにはLVM(Logical Volume Manager)が入っているので、ディスク構成管理が簡単にできる。

私の自宅のPCでは仮想化ソフトウェアによりゲストLinuxが動いており、ゲストLinuxシステムに対して簡単に仮想HDD等も追加することができる。それらを、ゲストLinux上でさらに柔軟に管理するためのものがLVMである。

包含関係
まずは包含関係をまとめる。
・物理HDD(/dev/sda, /dev/sdb等に相当)の中にパーティション(/dev/sda1, /dev/sda2, /dev/sdb1, /dev/sdb2, /dev/sdb3等に相当)が含まれる。
・それらの各パーティションが各PVに相当する。
・複数のPVを集めたものがVG
・VGの中に任意の構成のLVを作成できる。
・LVにファイルシステムを作成する。
・ファイルシステムをマウントポイントにマウントする。

手順
1. 仮想化ソフトウェアの機能を使って、Linuxゲストに新規仮想HDD(vmdkファイル)を追加する。

2. Linuxゲストを起動し、追加されたHDDに相当するデバイスファイルができたことを確認する。例えば今回は/dev/sdbに相当するHDDが追加されたものとする。
# ls /dev/sd*
/dev/sda /dev/sda1 /dev/sda2 /dev/sdb(<-これが追加された。)

3. fdiskを使って仮想HDDを任意の数のパーティション(/dev/sdb1, /dev/sdb2, ...)に区切り、Linux LSM用のシステムID(8e)を付ける。
# fdisk /dev/sdb (詳しくはヘルプ参照)

4. OSを再起動し、作成したパーティションに相当するデバイスファイルができたことを確認する。
# ls /dev/sd*
/dev/sda /dev/sda1 /dev/sda2 /dev/sdb /dev/sdb1 /dev/sdb2 /dev/sdb3

5. PVを作成し、できたことを確認する。
# pvcreate /dev/sdb1 /dev/sdb2 /dev/sdb3
# pvdisplay

6. VGを作成し、できたことを確認する。
# vgcreate vg01 /dev/sdb1
# vgcreate vg02 /dev/sdb2 /dev/sdb3

7. LVを作成し、できたことを確認する。
# lvcreate -L 156M vg01 (156MByteのLVができる。デフォルト名はlvol*。)
# lvcreate -L 232M vg01
# lvcreate -n mylvol -L 1G vg02 (名前指定)

8. ファイルシステムを作成する。
# mkfs.ext4 /dev/vg01/lvol0
# mkfs.ext4 /dev/vg01/lvol1
# mkfs.ext4 /dev/vg02/mylvol
補足:現在最新のLinuxのFSフォーマットはext4

9. LVをマウントポイントにマウントする。
# mount /dev/vg01/lvol0 /mnt/vg01_lvol0
# mount /dev/vg01/lvol1 /mnt/vg01_lvol1
# mount /dev/vg02/mylvol /mnt/vg01_mylvol

10. 起動時に自動マウントさせるための設定をする。
# vi /etc/fstab
/dev/vg01/lvol0 /mnt/vg01_lvol0 ext4 defaults 1 2
/dev/vg01/lvol1 /mnt/vg01_lvol1 ext4 defaults 1 2
/dev/vg02/mylvol /mnt/vg02_mylvol ext4 defaults 1 2

補足
上記の手順ではパーティション/dev/sdb1, /dev/sdb2, /dev/sdb3に区切ったが、区切らずにHDD全体(/dev/sdb)に対しても同様の操作(PVの作成、VGの作成等)ができると思う。
スポンサーサイト

テーマ:UNIX/Linux - ジャンル:コンピュータ

[ 2009/12/12 17:28 ]

| コンピュータ | コメント(0) | トラックバック(0) |
Fedora (Linux) にtelnetで接続するための設定
自分のPC上に仮想化ソフトウェアをインストールし、ゲストVMとしてFedora (Linuxディストリビューション) をインストールしてみた。今回もubuntuと同様、早速telnetでPCからログインができるように設定してみた。

telnetするための要件
・xinetd(現在のFedoraではinetdではなくxinetd), in.telnetdサービスがインストールされていること。
・xinetdサービスのアクセス制御で許可されていること。
・Firewallでtelnetの待ち受けポート(23)が許可されていること。

仕組み
1. OS起動時にシェルスクリプト/etc/rc.d/init.d/xinetdが実行され、それにより/usr/sbin/in.telnetdデーモン(複数のインターネットサービスの親サーバであるインターネットデーモン)が起動される。

2. /etc/xinetd.confよりインクルードする設定ファイル(/etc/xinetd.d内)で許可されたインターネットサービス (in.telnetd等) に対する接続要求のモニターを開始する。

3. ユーザがtelnet接続要求を出してくると、/etc/hosts.allow, /etc/hosts.denyの設定に従ってアクセス制御をした上で、xinetdデーモンがin.telnetdサーバを生成し、ユーザは接続に成功する。

必要な設定
(1) xinetdをインストールする。
# yum install xinetd

注: パッケージをインストールするには、rpmコマンドとyumコマンドの2種類がある。ここでは簡単なyumコマンドを使用する。
・rpmコマンド…ローカルシステムにパッケージをダウンロード済みの場合に使用。
・yumコマンド…/etc/yum.confに定義されたサーバから必要なパッケージをダウンロードし、さらにrpmコマンドを間接的に使用する。

(2) telnetサーバをインストールする。
# yum install telnet-server

(3) xinetdが受け付けるサービスとしてtelnetdを登録する。なお、Fedoraではtelnetなど各サービスごとに個別の設定ファイルが/etc/xietd.dに入っている。(/etc/xinetd.confの中には普通、直接設定を書かない。)
# vi /etc/xinetd.d/telnet <= 設定ファイルの編集
service telnet
{
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/sbin/in.telnetd
log_on_failure += USERID
disable = yes no <- ここを修正。
}

(4) telnetdのアクセス制御を設定する。(denyよりもallowのほうが優先される。)
# vi /etc/hosts.allow
in.telnetd: 192.168.1.*

# vi /etc/hosts.deny
ALL: ALL

(5) inetdサーバを再起動する。
# /etc/rc.d/init.d/xinetd start

(6) Firewallでtelnetのポート(23)を許可する。
FedoraのGUIで、[System] -> [Administration] -> [Firewall]メニューより設定する。

テーマ:UNIX/Linux - ジャンル:コンピュータ

[ 2009/12/11 23:30 ]

| コンピュータ | コメント(0) | トラックバック(0) |
ubuntu (Linux) にtelnet接続するための設定
自分のPC上に仮想化ソフトウェアをインストールし、ゲストVMとしてubuntu (Linuxディストリビューション) をインストールしてみた。早速telnetでPCからログインを試みたところ、拒否されてしまった。

原因
・デフォルトではtelnetdサービスが入っていなかったこと。
・アクセス制御で許可されていなかったこと。

仕組み
1. OS起動時にシェルスクリプト/etc/init.d/inetutils-inetdが実行され、それにより/usr/sbin/inetutils-inetdデーモン(複数のインターネットサービスの親サーバであるインターネットデーモン)が起動される。

2. /etc/inetd.conf内に定義されたインターネットサービス (telnetd等) に対する接続要求のモニターを開始する。

3. ユーザがtelnet接続要求を出してくると、/etc/hosts.allow, /etc/hosts.denyの設定に従ってアクセス制御をした上で、inetutils-inetdデーモンがtelnetdサーバを生成し、ユーザは接続に成功する。

必要な設定
(1) inetutils-inetdをインストールする。
# apt-get install inetutils-inetd
(ちなみにsshをインストールするときは # apt-get install ssh)

(2) telnetサーバをインストールする。
# aptitude install inetd

(3) inetutils-inetdが受け付けるサービスとしてtelnetdを登録する。
# vi /etc/inetd.conf
telnet stream tcp nowait telnetd /usr/sbin/tcpd /usr/sbin/in.telnetd

(4) アクセス制御を設定する。
# vi /etc/hosts.allow
in.telnetd: 192.168.1.103

# vi /etc/hosts.deny
ALL: ALL

(3) inetdサーバを再起動する。
/etc/init.d/inetutils-inetd restart

テーマ:UNIX/Linux - ジャンル:コンピュータ

[ 2009/12/09 22:09 ]

| コンピュータ | コメント(1) | トラックバック(0) |
英語キーボード (101 ) を日本語キーボード (106 ) として使う。
最近買ったノートパソコン(英語版Windows、英語版キーボード)で、日本語が使えるように設定してみた。ただ単に日本語を入力するだけならWindowsに日本語をインストールする (以下手順1.) だけで簡単なのだが、キーボードをいかにも日本語版のものを使っているかのように設定するために、一工夫必要だった。

以下では、英語キーボード (101 Keyboard, US English) を日本語キーボード (106 Keyboard, Japanese) として使うために、今回学んだノウハウを紹介する。


1. Windowsに日本語をインストール

Control PanelのRegion and Languateで、Keyboards and LanguagesよりJapanese - Microsoft IMEをデフォルトの入力言語として設定する。

2. キーボードのドライバを日本語版に入れ替える。

Registry Editor (regedit) で、以下3つのパラメータを変更する。

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\i8042prt\Parameters]の、以下3つの値を書き換える。
・"LayerDriver JPN"="kbd101.dll"(元々の値)
-> "kbd106.dll"(変更後の値)
・"OverrideKeyboardIdentifier"="PCAT_101KEY"(元々の値)
-> "PCAT_106KEY"(変更後の値)
・"OverrideKeyboardSubtype"=dword:00000000(元々の値)
-> 0x00000002(変更後の値)

3. レジストリのキー情報を書き換える。

上記手順2. までで、とりあえず英語版キーボードを日本語版のようにごまかすことができる。しかし、日本語キーボード独特のキー (\"/"_"キー, "\"/"|"キー) については、英語版キーボード (101) には物理的に存在しないため、何かほかのキーを代用する必要がある。

私の買ったノートパソコンの場合、以下のように置き換えると物理的に日本語キーボードに近そうだったので、このようにキーの役割を変えてみた。
・物理的な右シフトキー (scan code: 0x36)
-> "\"/"_"キー (scan code: 0x45) として扱う。
・物理的なNum Lockキー (scan code: 0x45)
-> "\"/"|"キー (scan code: 0x7d) として扱う。

Registry Editor (regedit) で、Scancode Mapの値を以下のように書き換える。

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
"Scancode Map"
=hex:00,00,00,00,00,00,00,00,03,00,00,00,73,00,36,00,7d,00,45,\
00,00,00,00,00

以下、4バイトごとに分けて解説する。
00,00,00,00 … ヘッダー1 (すべて0)
00,00,00,00 … ヘッダー2 (すべて0)
03,00,00,00 … 以降のエントリー数 (この場合、3つ)
73,00,36,00 … 右シフト (scan code: 0x36) -> "\"/"_"キー (scan code: 0x73)
7d,00,45,00 … Num Lock (scan code: 0x45) -> "\"/"|"キー (scan code: 0x7d)
00,00,00,00 … 終端を意味する。(すべて0)

補足
・マッピングを記すエントリーでは、上位2バイトで変換元、下位2バイトで変換先のキーを指定する。
・このとき、x86系CPUではリトルエンディアンなので、並び順が逆意なる。たとえば、(0x00360073 -> 73003600という並び方になる。)
・今回関係するキーとscan codeは以下の表のとおり。
















101 Keyboard (US English)106 Keyboard (Japanese)
右Shiftキー
(Key Number: 57, scan code: 36)
右Shiftキー
(Key Number: 57, scan code: 36)
該当なし"\"/"_"キー
(Key Number: 56, scan code: 73)
Num Lockキー
(Key Number: 90, scan code: 45)
Num Lockキー
(Key Number: 90, scan code: 45)
該当なし"\"/"|"キー
(Key Number: 29, scan code: 7D)


注意
レジストリ操作は予期せぬ結果を招く危険があるため、各自の責任にて行ってください。

テーマ:PC周辺機器 - ジャンル:コンピュータ

[ 2009/11/29 13:11 ]

| コンピュータ | コメント(0) | トラックバック(0) |
| ホーム |
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。