Fedora
2008/5/15更新
対応バージョン: 8,9
接続先のサーバの名前解決ができない。
クライアント側(yum実行ホスト側)に原因がある場合、例えば以下のような状況が考えられる。
/etc/resolv.confにDNSサーバが適切に設定されていない。
/etc/nsswitch.confのhosts行で適切な名前解決の方法が設定されていない。
例) /etc/hosts、DNSサーバの順で名前解決を行う設定
: hosts: files dns :
2007/8/15更新
対応バージョン: 6
何らかの原因でRPMのDBが破損したので再構築する。
# rpm --rebuilddb
上記コマンドでもエラーになる場合、いったんDBのファイルそのものを削除して再度DBを再構築する。
# rm /var/lib/rpm/__db.00[1-3] # rpm --rebuilddb
パッケージの一覧を表示してDB再構築が成功したことを確認する。
# yum list
2007/8/15更新
対応バージョン: 6
iwconfigでデバイスの状態を確認すると以下のようになる。
# iwconfig eth1 eth1 unassociated ESSID:"xxx" Nickname:"xxx" Mode:Managed Frequency=2.442 GHz Access Point: Not-Associated Bit Rate:0 kb/s Tx-Power=20 dBm Sensitivity=8/0 Retry limit:7 RTS thr:off Fragment thr:off Encryption key:off Power Management:off Link Quality:0 Signal level:0 Noise level:0 Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:0 Missed beacon:0
このような場合WEPキーが設定されていないのが原因なので、以下の手順でWEPキーを設定する。
# vi /etc/sysconfig/network-scripts/keys-eth1 KEY="s:xxxxxxxxxxxxx" ← 13桁 # modprobe -r ipw2200 # iwconfig eth1 eth1 IEEE 802.11g ESSID:"xxx" Nickname:"xxx" Mode:Managed Frequency:2.442 GHz Access Point: 00:A0:B0:59:E6:FB Bit Rate:54 Mb/s Tx-Power=20 dBm Sensitivity=8/0 Retry limit:7 RTS thr:off Fragment thr:off Encryption key:696C-626B-336E-766D-696C-626B-33 Security mode:open Power Management:off Link Quality=97/100 Signal level=-28 dBm Noise level=-88 dBm Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:0 Missed beacon:0
2007/8/15更新
対応バージョン: 6
messagesには以下のようなメッセージが出力されている。
ipw2200: Intel(R) PRO/Wireless 2200/2915 Network Driver, 1.1.2kmprq ipw2200: Copyright(c) 2003-2006 Intel Corporation ipw2200: Detected Intel PRO/Wireless 2200BG Network Connection ipw2200: ipw2200-bss.fw request_firmware failed: Reason -2 ipw2200: Unable to load firmware: -2 ipw2200: failed to register network device ipw2200: probe of 0000:02:02.0 failed with error -5
これはipw2200のファームウェアが古いのが原因なので、以下からipw2200-fw-3.0.tgzをダウンロードして、再読み込みする。
http://ipw2200.sourceforge.net/firmware.php
# tar xvf ipw2200-fw-3.0.tgz # mv ipw2200-fw-3.0/ipw2200-*.fw /lib/firmware/ # modprobe -r ipw2200 # modprobe ipw2200 # lsmod | grep ipw2200 ipw2200 112037 0 ieee80211 34953 1 ipw2200
2007/11/10更新
対応バージョン: 6,8
iwlistを使用する。
例) アクセスポイントが2箇所存在する場合
# iwlist eth1 scan eth1 Scan completed : Cell 01 - Address: 00:0D:02:54:85:AD ESSID:"WARPSTAR-3DA816" Protocol:IEEE 802.11bg Mode:Master Channel:7 Encryption key:on Bit Rate:54Mb/s Extra: Rates (Mb/s): 1 2 5.5 9 11 6 12 18 24 36 48 54 Quality:0/100 Signal level:-72 dBm Noise level:-256 dBm Extra: Last beacon: 1494ms ago Cell 02 - Address: 00:11:24:01:B4:A7 ESSID:"foo-net" Protocol:IEEE 802.11bg Mode:Master Channel:2 Encryption key:off Bit Rate:54Mb/s Extra: Rates (Mb/s): 1 2 5.5 6 9 11 12 18 24 36 48 54 Quality:0/100 Signal level:-83 dBm Noise level:-256 dBm Extra: Last beacon: 597ms ago
2007/11/10更新
対応バージョン: 6,8
無線LANのデバイスをeth1と仮定すると、
まず/etc/sysconfig/network-scripts/ifcfg-eth1に以下の記述を行う。
DEVICE=eth1 HWADDR=<MACアドレス> IPADDR=<IPアドレス> NETMASK=<ネットマスク> NETWORK=<ネットワークアドレス> BROADCAST=<ブロードキャストアドレス> TYPE=Wireless ESSID=<ESSID> CHANNEL=<チャネルNo.> ONBOOT=yes
次に/etc/sysconfig/network-scripts/keys-eth1に以下の記述を行う。
KEY="s:<WEPキー(文字列)>"
最後にこのkeys-eth1のパーミッションを変更してNICを再起動する。
# chmod 600 /etc/sysconfig/network-scripts/keys-eth1 # service network restart
2007/8/15更新
対応バージョン: 6
以下の手順で無線LANを設定する。
必要なドライバをロードする。
# modprobe <ドライバ名>
iwconfigを使用して必要なパラメータを設定する。
# iwconfig <NIC> channel <チャネル番号> # iwconfig <NIC> essid <ESSID> # iwconfig <NIC> ap <アクセスポイントのMACアドレス> # iwconfig <NIC> key s:<WEPキー(13バイトの文字列)> ← WEP(128bit)の場合 # iwconfig <NIC> key open # ifconfig <NIC> <IPアドレス> netmask <ネットマスク>
必要に応じてルーティングテーブルを設定する。
例) デフォルトルート設定の場合
# route add default gw <アクセスポイントのIPアドレス> <NIC>
2008/8/6更新
対応バージョン: 9
Fedora 9のGNOME環境にはデフォルトでVNCサーバ(vino)の機能が組み込まれているので以下の手順で設定する。
関連資料・記事
vino-serverが起動するとTCPの5900番ポートが開くのでファイアウォールの設定で同ポートへのアクセスを許可する。
関連資料・記事
2007/8/15更新
対応バージョン: 6,7,8
以下の手順で行う。
# depmod -a # modprobe usb_storage # lsmod | grep usb_storage usb_storage 73249 0 scsi_mod 138601 4 sg,usb_storage,libata,sd_mod # mount -t <ファイルシステムタイプ> <デバイス> <マウントポイント>
例) FAT32フォーマットのUSBメモリを/media/diskにマウントする
# dmesg : scsi 4:0:0:0: Direct-Access 32MB HardDrive 1.88 PQ: 0 ANSI: 2 ready sd 4:0:0:0: [sdb] 64000 512-byte hardware sectors (33 MB) sd 4:0:0:0: [sdb] Write Protect is off : ->デバイス名を確認(この例ではsdb) # mkdir /media/disk # mount -t vfat /dev/sdb1 /media/disk # mount : /dev/sdb1 on /media/disk type vfat (rw)
2008/6/23更新
対応バージョン: 9
/tmpや/var/tmpなど一時ファイルの保管場所として利用する場所にtmpfsを割り当てるとディスクI/Oの代わりにメモリアクセスが行われるのでパフォーマンスが向上する。
ここでは/tmpにtmpfsを割り当てる手順を紹介する。
既存の/tmp配下のファイルを削除
/tmp配下に存在するX Window SystemやInput Methodなどの一時ファイルをあらかじめ削除する。
この作業はランレベル1(シングルユーザモード)で行う。
/etc/fstabに設定追加
/etc/fstabに/tmpの設定を追加する。
: tmpfs /dev/shm tmpfs defaults 0 0 tmpfs /tmp tmpfs defaults 0 0 ← 追加 :
尚、デフォルトでは搭載メモリの半分までの領域がtmpfsで使用可能なので、この制限を変えるには以下のようにsizeオプションで指定する。
tmpfs /tmp tmpfs defaults,size=512m 0 0
リブート
確認
% df -F tmpfs Filesystem 1K-ブロック 使用 使用可 使用% マウント位置 tmpfs 241180 24 241156 1% /dev/shm tmpfs 241180 24 241156 1% /tmp ← tmpfsが/tmpにマウントされている
2008/5/20更新
対応バージョン: 8
拡張/縮小それぞれ以下の手順で作業する。
swap領域を拡張する
現状把握
例) /dev/hda2(500MB)をswap領域に使用している場合
% cat /proc/swaps Filename Type Size Used Priority /dev/hda2 partition 522104 44696 -1 % free total used free shared buffers cached Mem: 254768 250780 3988 0 2340 216080 ← 物理メモリ -/+ buffers/cache: 32008 222760 Swap: 522104 44692 477412 ← swap領域
swapファイル作成
例) 1GBのswapファイルを作成する場合
% sudo dd if=/dev/zero of=/var/swap1 bs=1024 count=1024000 % sudo /sbin/mkswap /var/swap1 ← swap領域として初期化 Setting up swapspace version 1, size = 1048571 kB
swap拡張
% sudo swapon /var/swap1 % cat /proc/swaps Filename Type Size Used Priority /dev/hda2 partition 522104 44692 -1 /var/swap1 file 1023992 0 -2 ← 追加された % free total used free shared buffers cached Mem: 254768 250780 3988 0 2340 216080 -/+ buffers/cache: 32360 222408 Swap: 1546096 44692 1501404 ← swap領域が増えた
OSブート時に有効化する場合の設定
% sudo vi /etc/vfstab : /var/swap1 swap swap defaults 0 0 ← swapエントリの次行に追加 :
swap領域を縮小する
swapファイルを切り離して削除
% sudo swapoff /var/swap1 % sudo rm /var/swap1 % cat /proc/swaps Filename Type Size Used Priority /dev/hda2 partition 522104 44696 -1 % free total used free shared buffers cached Mem: 254768 250780 3988 0 2340 216080 -/+ buffers/cache: 32008 222760 Swap: 522104 44692 477412 ← swap領域が減った
/etc/vfstabからswapファイルのエントリを削除
% sudo vi /etc/vfstab : /var/swap1 none swap defaults 0 0 ← 削除 :
2007/11/10更新
対応バージョン: 6,7,8
sshfsを使用するには基本的にクライアント側での設定だけでよく、サーバ側ではsshdが起動していて必要に応じてsftp-serverが起動するようになっていればよい。
以下、クライアント側の設定を示す。
fuse-sshfsパッケージインストール
# yum install fuse-sshfs
各種パーミッション変更
# chmod o+rw /dev/fuse
これを実行しないとsshfs実行時に「fuse: failed to open /dev/fuse: Permission denied」というエラーになる。
# chmod 4755 /bin/fusermount
これを実行しないとsshfs実行時に「fuse: failed to exec fusermount: Permission denied」というエラーになる。
マウント
以上で設定は完了で、あとは以下の要領でファイルシステムをマウントする。
% sshfs [アカウント@]<サーバ>:[ディレクトリ] <マウントポイント>
例えば、クライアント側と同じアカウントがサーバにあってそのホームディレクトリを~/serverにマウントする場合は以下のようにする。
% sshfs <サーバ>: ~/server
(*) <サーバ>の後の「:」を忘れないこと。
アンマウント
アンマウントは以下の手順で行う。
% fusermount -u <マウントポイント>
関連資料・記事
2008/9/10更新
対応バージョン: 6,7,8,9
以下の手順で無効化する。
サービス停止
# service <サービス> stop
ランレベル毎の有効/無効設定変更
# chkconfig --level 2345 <サービス> off # chkconfig --list <サービス> <サービス> 0:off 1:off 2:off 3:off 4:off 5:off 6:off
例) iptablesを無効化する
# service iptables stop # chkconfig --level 2345 iptables off # chkconfig --list iptables iptables 0:off 1:off 2:off 3:off 4:off 5:off 6:off
2008/5/15更新
対応バージョン: 9
routeコマンドで例えばデフォルトゲートウェイを設定しようとすると以下のようなエラーが出て設定に失敗する。
% sudo route add default gw 192.168.0.1 SIOCADDRT: そのようなプロセスはありません
これは関連するNICが以下のような状態の時に起こるのでifconfig等で設定を確認し、必要があればIPアドレスの(再)設定やインタフェースのUPを行う。
そもそもIPアドレスが割り当てられいない
IPアドレスは割り当てられているが、デフォルトゲートウェイとして指定しようとしたアドレスと別セグメントである
正しいIPアドレスが割り当てられているが、インタフェースがUPしていない
2008/5/18更新
対応バージョン: 6,7,8,9
/etc/sysconfig/static-routesを作成してシステムを再起動する。
例) 172.20.61.0/24宛のゲートウェイを192.168.253.1に設定する場合
設定
any net 172.20.61.0 netmask 255.255.255.0 gw 192.168.253.1
確認
# netstat -nr Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface : 172.20.61.0 192.168.253.1 255.255.255.0 UG 0 0 0 eth0 :
2008/8/2更新
対応バージョン: 6,7,8,9
以下の設定を行ってgdmを再起動する。
ファイアウォール設定
TCPの6000番ポートを開ける。
gdm設定
Fedora9の場合
/etc/gdm/custom.confの[security]タブに以下の設定を追加
DisallowTCP=false
Fedora8以前の場合
gdmsetupを起動して[セキュリティ]タブの以下のチェックを外す(Fedoraのバージョンによってチェック項目が異なるので注意する)。
(Fedora 7,8)
□ Xサーバへの転送を禁止する
(Fedora Core 6)
□ TCP接続を禁止する
許可するホストをxhostで設定
特定のホストを許可する場合
xhost +192.168.0.1
全てのホストを許可する場合
xhost +
2007/11/2更新
対応バージョン: 6,7
以下の環境変数を設定しておき、必要なアプリケーションを実行する。
HTTP_PROXY
http://<ホスト>:<ポート>/
FTP_PROXY
http://<ホスト>:<ポート>/
2008/11/18更新
対応バージョン: 9
quotaを使うには以下の手順で行う。
quotaオプション付でファイルシステムをマウント
/etc/fstabにてquotaを使いたいファイルシステムにquotaオプションを付ける。
制限をかけたい方法によって以下のオプションを指定する。
ユーザで制限をかける(ユーザquota)
usrquota
グループで制限をかける(グループquota)
grpquota
ユーザ/グループ両方で制限をかける
usrquota,grpquota
ここではユーザquotaを設定するものとして説明する。
例)
/dev/sdb2 /test ext3 defaults,usrquota 1 2
quotaオプション有効化
該当のファイルシステムがアンマウント可能ならいったんアンマウントしてマウントし直す。
例)
% sudo umount /test % sudo mount /test
アンマウント不可能ならマシンをリブートする。
以降、quota関連コマンドにて各種設定を行うが、グループquotaの場合はコマンドオプションのuのところがgに変わるだけでパラメータなどは基本的に同じである。
quota情報記録ファイル作成
% sudo quotacheck -au % ls -l /test/aquota.user -rw------- 1 root root 7168 2008-11-18 00:05 aquota.user
グループquotaの場合はaquota.groupが作成される。
quota関連コマンドのオプションは主に以下のものを使用する。
-a
設定対象が全て
-u
ユーザquotaの設定
-g
グループquotaの設定
-p
状態を表示する
-v
詳細表示モード
ユーザquota設定
% sudo edquota -u foo Disk quotas for user foo (uid 900): Filesystem blocks soft hard inodes soft hard /dev/sdb2 0 0 0 0 0 0
soft(ソフトリミット)とhard(ハードリミット)に使用制限を指定する。
blocksの右のsoft/hardはファイルサイズに対する設定(単位はKB)、inodesの右のsoft/hardはファイル数に対する設定である。0を指定すると無制限になる。
またblocksとinodesはそれぞれ現在使用しているファイルサイズとi-nodeの合計である。
softで設定したサイズを使いきると一定の猶予期間(後述)の間はhardで設定したサイズまで書き込める。猶予期間が過ぎるか、猶予期間内でもhardで設定したサイズに達するとそれ以上書き込みができなくなる。
例) soft=10MB、hard=40MBの場合
Filesystem blocks soft hard inodes soft hard /dev/sdb2 0 10240 40960 0 0 0
既存のquotaの設定をコピーするにはedquotaの-pオプションを使用するとよい。
例) fooのquota設定をbarにコピーする
% sudo edquota -p foo bar
quota有効
% sudo quotaon -auv /dev/sdb2 [/test]: user quotas turned on
状態を確認するとユーザquotaだけが有効になっているのが分かる。
% sudo quotaon -p /test group quota on /test (/dev/sdb2) is off user quota on /test (/dev/sdb2) is on
また、repquotaで現在の設定状況が確認できる。
% sudo repquota -a *** Report for user quotas on device /dev/sdb2 Block grace time: 7days; Inode grace time: 7days Block limits File limits User used soft hard grace used soft hard grace ---------------------------------------------------------------- root -- 192000 0 0 4 0 0
現状ではrootだけが当該ファイルシステムを使っているのが分かる。
ここでfooユーザで20MBのファイルを作ってみる。
% dd if=/dev/zero of=a bs=1M count=20
するとrepquotaで以下のようになり、fooユーザのソフトリミットを越えたために2カラム目が「+-」になっているのが分かる。
% sudo repquota -a *** Report for user quotas on device /dev/sdb2 Block grace time: 7days; Inode grace time: 7days Block limits File limits User used soft hard grace used soft hard grace ---------------------------------------------------------------- root -- 192000 0 0 4 0 0 foo +- 20504 10240 40960 7days 1 0 0
さらに20MBのファイルを作ろうとするとハードリミットに達して途中までしかファイルが作成されない。
% dd if=/dev/zero of=b bs=1M count=20 dd: writing `b': ディスク使用量制限を超過しました 20+0 records in 19+0 records out 20922368 bytes (21 MB) copied, 0.160903 s, 130 MB/s
またrepquotaの結果は以下のようになる。
% sudo repquota -a *** Report for user quotas on device /dev/sdb2 Block grace time: 7days; Inode grace time: 7days Block limits File limits User used soft hard grace used soft hard grace ---------------------------------------------------------------- root -- 192000 0 0 4 0 0 foo +- 40960 10240 40960 6days 2 0 0
猶予期間の設定
猶予期間とはソフトリミットが強制的に実行されるまでの期間であり、この期間を過ぎるとソフトリミットを越えたファイル作成ができなくなる。
この期間はデフォルトで7日間に設定されており、変更するにはedquotaの-tオプションを使用する。
単位にはseconds(秒)、minutes(分)、hours(時)、days(日)が使用できる。
% sudo edquota -t Grace period before enforcing soft limits for users: Time units may be: days, hours, minutes, or seconds Filesystem Block grace period Inode grace period /dev/sdb2 7days 7days
2007/8/15更新
対応バージョン: 6
cupsのPDF出力モジュール(CUPS-PDF)を使用する。
以下の手順で設定する。
cups-pdfインストール
# yum install cups-pdf
cups再起動
# service cups restart
仮想プリンタ設定
Webブラウザで「http://localhost:631/」にアクセスして[管理]タブを選択
「Virtual PDF Printer (CUPS-PDF)」の左側の「このプリンタを追加」をクリックし、以下の選択肢に答えていく
メーカ
Generic
モデル
Generic PostScript Printer Foomatic/Postscript (recommended)(en)
プリンタオプション
ページサイズなど、必要に応じて設定
PDF作成ディレクトリ設定
デフォルトで$HOME/Desktop配下にファイルが作成される設定になっているので、これを変更したい場合は/etc/cups/cups-pdf.confの以下の行を変更する。
44 Out ${HOME}/Desktop
尚、この設定を行ってもcups再起動の必要はない。
クライアント側設定
Firefox等、クライアントアプリの印刷ダイアログボックスにて出力先に「CUPS/CUPS-PDF」を選択して印刷を行えばPDFが作成される。
関連ファイル
CUPS-PDF関連のファイルは以下のとおりである。
/etc/cups/cups-pdf.conf
CUPS-PDFの設定
/etc/cups/printers.conf
プリンタの定義
/etc/cups/ppd/CUPS-PDF.ppd
ドライバ
/var/spool/cups-pdf/SPOOL
スプールディレクトリ
/var/log/cups/cups-pdf_log
ログファイル
2008/10/15更新
対応バージョン: 9
ntpdateで時刻同期しようとすると以下のエラーが出て同期に失敗する。
% sudo ntpdate timeserver no server suitable for synchronization found
これにはいくつかの原因が考えられる。
ntpdateに-dオプションを付けて実行すると詳細な情報が得られるので、その結果毎の原因を示す。
NTPサーバからの応答がない場合
% sudo ntpdate -d timeserver : Looking for host timeserver and service ntp host found : timeserver transmit(xxx.xxx.xxx.xxx) transmit(xxx.xxx.xxx.xxx) transmit(xxx.xxx.xxx.xxx) transmit(xxx.xxx.xxx.xxx) xxx.xxx.xxx.xxx: Server dropped: no data server xxx.xxx.xxx.xxx, port 123 stratum 0, precision 0, leap 00, trust 000 : no server suitable for synchronization found
本来ならtransmitの後にreceive(サーバからの応答)が出力されるが、以下のような原因でサーバに接続できない。
NTPサーバが起動していない。
NTPサーバは起動しているが、サーバが動作しているマシンあるいは途中の経路で123/udpポートがブロックされている。
関連資料・記事
NTPサーバには接続できるが時刻同期できない場合
(パターン1)
% sudo ntpdate -d timeserver : Looking for host timeserver and service ntp host found : timeserver transmit(xxx.xxx.xxx.xxx) receive(xxx.xxx.xxx.xxx) transmit(xxx.xxx.xxx.xxx) receive(xxx.xxx.xxx.xxx) transmit(xxx.xxx.xxx.xxx) receive(xxx.xxx.xxx.xxx) transmit(xxx.xxx.xxx.xxx) receive(xxx.xxx.xxx.xxx) xxx.xxx.xxx.xxx: Server dropped: strata too high server xxx.xxx.xxx.xxx, port 123 stratum 16, precision -19, leap 11, trust 000 : no server suitable for synchronization found
この事象は当該NTPサーバには接続できるもののサーバがまだ利用可能な状態になっていない、つまり上位のNTPサーバと同期しておらずstratum値が規定外の16に設定されている状態である。
stratum値はサーバの(時刻保持者としての)信頼度によって1〜15まで階層分けされ、もっとも信頼できる最上位のNTPサーバが1となる。
サーバ側の問題が考えられるのでサーバの設定を見直す。
(パターン2)
% sudo ntpdate -d timeserver : Looking for host timeserver and service ntp host found : timeserver transmit(xxx.xxx.xxx.xxx) receive(xxx.xxx.xxx.xxx) transmit(xxx.xxx.xxx.xxx) receive(xxx.xxx.xxx.xxx) transmit(xxx.xxx.xxx.xxx) receive(xxx.xxx.xxx.xxx) transmit(xxx.xxx.xxx.xxx) receive(xxx.xxx.xxx.xxx) xxx.xxx.xxx.xxx: Server dropped: Leap not in sync server xxx.xxx.xxx.xxx, port 123 stratum 7, precision -19, leap 11, trust 000 : no server suitable for synchronization found
パターン1と似ているが、この場合はNTPサーバが上位サーバに同期を実行中、あるいは同期は終了しているもののまだ当該サーバの稼働時間が少ないために信用に足らない状態である。30分程度待ってから再度接続してみる。
関連資料・記事
ntpdate成功時の状態
参考までに、ntpdateが成功した時のntpdate -dの出力を記す。
% sudo ntpdate -d timeserver : Looking for host timeserver and service ntp host found : timeserver transmit(xxx.xxx.xxx.xxx) receive(xxx.xxx.xxx.xxx) transmit(xxx.xxx.xxx.xxx) receive(xxx.xxx.xxx.xxx) transmit(xxx.xxx.xxx.xxx) receive(xxx.xxx.xxx.xxx) transmit(xxx.xxx.xxx.xxx) receive(xxx.xxx.xxx.xxx) server xxx.xxx.xxx.xxx, port 123 stratum 7, precision -19, leap 00, trust 000 : adjust time server xxx.xxx.xxx.xxx offset 0.001289 sec
2007/11/28更新
対応バージョン: 8
設定ファイル記述
/etc/ntp.confを記述する。ここでは必要最低限のパラメータについて説明する。
driftfile <ファイル>
NTPデーモンが時刻の変動を記録するdriftfileを指定する。
例)
driftfile /var/lib/ntp/drift
server <サーバ>
時刻を同期する上位NTPサーバを指定する。サーバは複数指定できる。
例)
server ntp1.jst.mfeed.ad.jp server ntp2.jst.mfeed.ad.jp server ntp3.jst.mfeed.ad.jp
restrict <対象サーバ> <ルール>
NTP通信の対象サーバとアクセスルールを記述する。
デフォルトでは全てのホストとのNTP通信を許可しない設定になっているので、対象NTPサーバに対するルールを個別に指定する。
サーバに「default」または「0.0.0.0」と指定するとデフォルトのルールが記述できる。
また、最後にマッチした行のルールが適用されるので、デフォルト設定は最初に記述する必要がある。
例) ローカルホストとの通信許可
restrict 127.0.0.1
例) 特定のホストとの通信許可
restrict ntp1.jst.mfeed.ad.jp restrict ntp2.jst.mfeed.ad.jp restrict ntp3.jst.mfeed.ad.jp
例) ネットワーク192.168.0.0/24内のホストとの通信許可
restrict 192.168.0.0 mask 255.255.255.0
ルールには主に以下のような種類があるので必要に応じて指定する。
未指定
制限なし(全てのNTPパケットを許可)
ignore
全てのNTPパケットを無視
nomodify
時刻問合せには応答するが、時刻の変更要求などは無視
notrust
時刻問合せには応答するが、自身の時刻合わせには使用しない
nopeer
指定ホストと相互に同期しない
noquery
NTPの実装に依存する時刻問合せを無視
ntpd起動
ntpdを有効化して起動する。
# chkconfig --level 5 ntpd on # chkconfig --list ntpd ntpd 0:off 1:off 2:off 3:off 4:off 5:on 6:off # service ntpd start
確認方法
NTPサーバへの接続状況はntpqコマンドで確認できる。
# ntpq -p remote refid st t when poll reach delay offset jitter ========================================================================= *ntp1.jst.mfeed. 210.173.160.86 2 u 436 1024 377 8.928 -0.093 0.079 +ntp2.jst.mfeed. 210.173.160.86 2 u 249 1024 377 9.415 -0.206 1.206 +ntp3.jst.mfeed. 210.173.176.251 2 u 255 1024 377 8.811 0.048 0.084
サーバ毎の接続状況は行頭の文字によって確認できる。主なものを以下に示す。
*
同期している
+
いつでも同期できる
x
クロックが不正確なため無効
空白(スペース)
以下のような理由で使用不可となっている
・不正経路やサーバダウン等の理由でサーバと通信できない
・サーバやサーバまでの経路のファイアウォール等で123/udpのパケット受信を拒否している
・サーバが自分自身(ループ)
・単に同期に時間がかかっている(しばらく待ってみる)
関連資料・記事
2007/11/28更新
対応バージョン: 8
これは/etc/init.d/networkから呼び出される/etc/sysconfig/network-scripts/network-functions-ipv6内で「modprobe ipv6」が実行されているが、同ドライバが存在しない、あるいは無効になっている場合に出るメッセージである。
IPv6は使用できない状態になっているのでIPv6を使用する必要がなければこのメッセージを無視してよい。
ただ気になるようなら以下のような対応をする。
「modprobe ipv6」行をコメントアウトする。
IPv6を有効にする。
関連資料・記事
2008/1/23更新
対応バージョン: 8
/etc/sysconfig/network-scripts配下にNIC毎の設定ファイルがあるので、例えばeth0に対してIPエイリアスを設定する場合は新たに「:1」付きのifcfg-eth0:1を作成する。
例)
# vi /etc/sysconfig/network-scripts/ifcfg-eth0:1 DEVICE=eth0:1 BOOTPROTO=static BROADCAST=192.168.253.255 IPADDR=192.168.253.199 NETMASK=255.255.255.0 NETWORK=192.168.253.0 ONBOOT=yes
次にこのeth0:1を有効にする。
# ifup eth0:1 # ifconfig eth0:1 eth0:1 Link encap:Ethernet HWaddr 00:03:47:B2:0C:FA inet addr:192.168.253.199 Bcast:192.168.253.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
設定ファイルでONBOOT=yesの場合は次回ブート時にこのIPエイリアスが自動的に有効になる。
手動で有効/無効を切り替えたい場合はここをnoにしておく。
関連資料・記事
2008/11/20更新
対応バージョン: 9
mountコマンドを使用してリモートホストのファイルシステムをNFSマウントしようとすると以下のエラーが出てマウントに失敗する(NFSv4のTCP接続)。
% sudo mount -v -o tcp serv:/export/home /mnt mount.nfs: timeout set for Wed Nov 19 08:33:14 2008 mount.nfs: text-based options: 'addr=192.168.0.1' mount.nfs: internal error
これはサーバ側のサービスポートがブロックされているのが原因なので以下の設定を行う。
/etc/sysconfig/nfsにてmountdのポート番号を固定
mountdは起動時にportmapperによってポート番号が動的に割り当てられるが、その方式だとiptablesでパケット通過の制御ができないためあらかじめポート番号を固定しておく。
MOUNTD_PORT=32767
(*) ポート番号は任意
上記設定後、NFSサーバを再起動
% sudo service nfs restart
/etc/sysconfig/iptablesにsunrpc(111)とmountd(32767)のフィルタ設定を追加
-A INPUT -m state --state NEW -m udp -p udp --dport 111 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 111 -j ACCEPT -A INPUT -m state --state NEW -m udp -p udp --dport 32767 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 32767 -j ACCEPT
尚、NFSサーバのサービスポートである2049/tcpは既に以下のように設定済とする。
-A INPUT -m state --state NEW -m tcp -p tcp --dport 2049 -j ACCEPT
上記設定後、iptablesを再起動
% sudo service iptables restart
関連資料・記事
2008/7/6更新
対応バージョン: 9
mountコマンドを使用してリモートホストのファイルシステムをNFSマウントしようとすると以下のエラーが出てマウントに失敗する。
rpcbind: server localhost not responding, timed out RPC: failed to contact local rpcbind server (errno 5).
これはローカルのRPCサービスを制御するportmapperが起動していないのが原因なので、同デーモンを起動する。
% sudo service rpcbind start % /usr/sbin/rpcinfo -p プログラム バージョン プロトコル ポート 100000 4 tcp 111 portmapper 100000 3 tcp 111 portmapper 100000 2 tcp 111 portmapper 100000 4 udp 111 portmapper 100000 3 udp 111 portmapper 100000 2 udp 111 portmapper 100000 4 0 111 portmapper 100000 3 0 111 portmapper 100000 2 0 111 portmapper
関連資料・記事
2008/12/21更新
対応バージョン: 10
シングルユーザモードで起動している場合にルートファイルシステムは通常リードオンリーモードでマウントされているが、/etc配下のファイルを変更したい場合などに書込みも可能にする場合は以下のようにmountコマンドのremountオプションを使用して再マウントすることができる。
# mount -o remount,rw /dev/VolGroup00/LogVol00 /
2008/10/21更新
対応バージョン: 9
ISOイメージをマウントして中身を参照するにはmountコマンドを-o loop(ループバックデバイス)オプション付で実行する。
% sudo mount -t iso9660 -r -o loop foo.iso /mnt
ループバックデバイスはブロックデバイスではないISOイメージファイルなどをマウントして中身のファイル操作を行えるようにする機能である。
例えば任意のファイルをext3のファイルシステムとしてフォーマットしてそれをマウントする場合は以下のようにする。
% dd if=/dev/zero of=foo.ext3 bs=1M count=30 30+0 records in 30+0 records out 31457280 bytes (31 MB) copied, 0.0574711 s, 547 MB/s % mkfs.ext3 foo.ext3 mke2fs 1.40.8 (13-Mar-2008) foo.ext3 is not a block special device. Proceed anyway? (y,n) ← y % sudo mount -t ext3 -o loop foo.ext3 /mnt % df /mnt Filesystem 1K-ブロック 使用 使用可 使用% マウント位置 /tmp/foo.ext3 29745 1401 26808 5% /mnt
関連資料・記事
2008/11/11更新
対応バージョン: 9
CD-ROMあるいはDVD-ROMの内容をISOイメージファイルにするにはmkisofsコマンドを使用する。
例えば/mnt配下にマウントされたDVD-ROMの内容をdvd.isoというイメージファイルにしたい場合は以下のようにする。
% sudo mkisofs -l -r -J -o /tmp/dvd.iso /mnt 0.30% done, estimate finish Tue Nov 11 05:24:25 2008 : 99.83% done, estimate finish Tue Nov 11 05:06:39 2008 Total translation table size: 0 Total rockridge attributes bytes: 403245 Total directory bytes: 677888 Path table size(bytes): 156 Max brk space used 319000 1673212 extents written (3267 MB)
オプションには様々なものがあるが、上記の例では以下のオプションを使用する。
-l
ロングファイルネームサポート
-r
ファイルのオーナー/モードを適切に設定する
-J
Jolietフォーマットサポート (参考: Joliet - @IT)
関連資料・記事
2008/8/30更新
対応バージョン: 9
mDNS(Multicast DNS)で.localのホストの名前解決をするにはnss-mdnsモジュールを使用する。
同モジュールがインストールされていない場合はまずインストールする。
% sudo yum install nss-mdns
nss-mdnsモジュールには目的に応じて3種類 x 2バリエーションの計6モジュールが用意されている。
以下にそれぞれのモジュールについて説明する。
mdns
IPv4/IPv6双方のアドレス解決 (レガシー)
mdns4
IPv4のみのアドレス解決
mdns6
IPv6のみのアドレス解決
どのモジュールも最後に「_minimal」が付くバリエーションがある。
mdns_minimal
mdns4_minimal
mdns6_minimal
このバリエーションを使用すると名前解決しようとしたホスト名の最後に「.local」が含まれていないかアドレスの範囲が169.254.0.0/16(IPV4LL/APIPA/RFC3927)でない場合は名前解決を行わないので、例えば名前解決の手段として/etc/hostsの他にDNSとWINSを使うなど複数のモジュールを使用する場合に早く次のモジュールに制御が移せる効果がある。
よって例えば/etc/hostsとmDNS(IPv4)、及びDNSを使用する場合は/etc/nsswitch.confに以下のように記述するとよい。
hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4
この結果、.localのホストの名前解決が可能となる。
% getent hosts myhost.local 192.168.0.1 myhost.local
2008/3/13更新
対応バージョン: 8
dm-snapshotモジュールをロードする。
# modprobe dm-snapshot
関連資料・記事
2008/7/7更新
対応バージョン: 9
外付けハードディスク等、別マシンで使用していたLVMボリュームを使用する場合、そのままではボリュームが使用不能状態になっているので、lvchangeコマンドで当該ボリュームを使用可能に設定してから通常のマウントを行う。
一応PV、VGのチェックを行い、LVの設定を変更する。
例) ext3の/dev/datavg/datalvを使用する場合
% sudo pvscan PV /dev/sdb1 VG datavg lvm2 [38.17 GB / 0 free] Total: 1 [38.17 GB] / in use: 1 [38.17 GB] / in no VG: 0 [0 ] % sudo vgscan Reading all physical volumes. This may take a while... Found volume group "datavg" using metadata type lvm2 % sudo lvscan inactive '/dev/datavg/datalv' [38.17 GB] inherit → 使用不能 % sudo lvchange -ay /dev/datavg/datalv ← ボリュームの状態変更(available=y) % sudo lvscan ACTIVE '/dev/datavg/datalv' [38.17 GB] inherit → 使用可能
LVを使用可能に設定すると以下のデバイスファイルが作られる。
% ls -l /dev/datavg/datalv lrwxrwxrwx ... /dev/datavg/datalv -> /dev/mapper/datavg-datalv % ls -l /dev/mapper/datavg-datalv brw-rw---- ... /dev/mapper/datavg-datalv
あとは普通にマウントして使用することができる。
% sudo mkdir -p /mnt/data % sudo mount -t ext3 /dev/datavg/datalv /mnt/data
2008/3/13更新
対応バージョン: 8
スナップショットLV作成
スナップショットLVを作成するには、対象となるLVを指定してlvcreateコマンドを-sオプション付で実行する。
例えば/mnt/dataにマウントされたLV(/dev/datavg/datalv)のスナップショットを作成するには以下のようにする。
# lvcreate -s -L 128m -n data_snap /dev/datavg/datalv Logical volume "data_snap" created
(*) スナップショットのサイズはLVのサイズの10%〜30%程度を目安とする。ここでは128MBとする。
(*) 差分データがこのスナップショット領域のサイズを越えるとスナップショットLVが壊れるので注意が必要である。
次にスナップショットLVが作成されたことを確認する。
# lvscan : ACTIVE Original '/dev/datavg/datalv' [1.00 GB] inherit ACTIVE Snapshot '/dev/datavg/data_snap' [128.00 MB] inherit # lvdisplay -C datavg LV VG Attr LSize Origin Snap% Move Log Copy% data_snap datavg swi-ao 128.00M datalv 0.06 datalv datavg owi-ao 1.00G
あとは普通にマウントして使用することができる。
# mkdir /mnt/data_snap # mount /dev/datavg/data_snap /mnt/data_snap
関連資料・記事
スナップショットLV解放
スナップショットLVを解放するにはまずマウントを解除してlvremoveを実行する。
# umount /mnt/data_snap # lvremove /dev/datavg/data_snap Do you really want to remove active logical volume "data_snap"? [y/n]: y Logical volume "data_snap" successfully removed # rmdir /mnt/data_snap
スナップショットLVが解放されたことを確認する。
# lvscan : ACTIVE '/dev/datavg/datalv' [1.00 GB] inherit # lvdisplay -C datavg LV VG Attr LSize Origin Snap% Move Log Copy% datalv datavg -wi-ao 1.00G
2008/3/8更新
対応バージョン: 8
既存のボリュームグループ(VG)の領域が足りなくなった場合に余っているVGからPVを切り離して追加する手順を示す。
ここでは/dev/sdb{1,2}で構成される「datavg」というVGに、/dev/sdc{1,2}で構成される「extvg」というVGから/dev/sdc2を切り離して追加する手順を示す。
確認
# vgdisplay -C VG #PV #LV #SN Attr VSize VFree datavg 1 0 0 wz--n- 1.91G 1.91G extvg 1 0 0 wz--n- 36.27G 36.27G # vgdisplay -v datavg : --- Physical volumes --- PV Name /dev/sdb1 PV UUID fdPYw5-Rlfl-tJem-PD53-MLgv-OOcQ-yiYIXX PV Status allocatable Total PE / Free PE 488 / 488 PV Name /dev/sdb2 PV UUID GojV6F-Wky0-Tb8r-ioj4-tR3R-RL7f-NlPzhW PV Status allocatable Total PE / Free PE 9052 / 9052 # vgdisplay -v extvg : --- Physical volumes --- PV Name /dev/sdc1 PV UUID C8PCm2-3xJn-5kGk-oBy1-02XT-Tqwu-Hqkcb9 PV Status allocatable Total PE / Free PE 490 / 490 PV Name /dev/sdc2 PV UUID 0I7PNB-6kMt-3Pg5-Oxdi-qwPW-j3fR-hiLHLM PV Status allocatable Total PE / Free PE 1462 / 1462
extvgから/dev/sdc2を切り離す
まずpvmoveを使用して対象PV内のPE(Physical Extent:物理エクステント)を同一VG内の別のPVに移動し、切り離し可能な状態にする。
# pvmove /dev/sdc2 /dev/sdc2: Moved: 3.9% /dev/sdc2: Moved: 8.2% : /dev/sdc2: Moved: 98.0% /dev/sdc2: Moved: 100.0%
次にvgreduceを使用して対象PVを切り離す。
# vgreduce extvg /dev/sdc2 Removed "/dev/sdc2" from volume group "extvg"
/dev/sdc2が切り離されたことを確認する。
# vgdisplay -v extvg : --- Physical volumes --- PV Name /dev/sdc1 PV UUID C8PCm2-3xJn-5kGk-oBy1-02XT-Tqwu-Hqkcb9 PV Status allocatable Total PE / Free PE 490 / 234
/dev/sdc2をdatavgに追加する
上記で切り離したPVを移動先VGに追加する。
# vgextend datavg /dev/sdc2 Volume group "datavg" successfully extended
/dev/sdc2が追加されたことを確認する。
# vgdisplay -v datavg : --- Physical volumes --- PV Name /dev/sdb1 PV UUID fdPYw5-Rlfl-tJem-PD53-MLgv-OOcQ-yiYIXX PV Status allocatable Total PE / Free PE 488 / 488 PV Name /dev/sdb2 PV UUID GojV6F-Wky0-Tb8r-ioj4-tR3R-RL7f-NlPzhW PV Status allocatable Total PE / Free PE 9052 / 8796 PV Name /dev/sdc2 PV UUID 0I7PNB-6kMt-3Pg5-Oxdi-qwPW-j3fR-hiLHLM PV Status allocatable Total PE / Free PE 1462 / 1462
関連資料・記事
2008/1/7更新
対応バージョン: 8
ファイルシステム拡張
LVM上のファイルシステムを拡張するにはまず器となる論理ボリュームを拡張し、次に中身のファイルシステムを拡張する。
ここでは1GBのファイルシステムを500MB拡張する手順を示す。
まず論理ボリュームの拡張にはlvresizeを使用する。これはオンラインで実行可能である。
# lvresize -L +500M /dev/datavg/datalv Extending logical volume datalv to 1.49 GB Logical volume datalv successfully resized # lvdisplay /dev/datavg/datalv --- Logical volume --- LV Name /dev/datavg/datalv VG Name datavg LV UUID ZjRBAD-ln4K-VIUQ-zVxL-L05a-0SAL-lObINy LV Write Access read/write LV Status available # open 1 LV Size 1.49 GB Current LE 381 Segments 1 Allocation inherit Read ahead sectors 0 Block device 253:0
次にファイルシステムを拡張する。
ファイルシステムの種類によって使用するコマンドやオンラインリサイズが可能かどうかが異なるので注意する。
ここではext3のファイルシステムについて説明する。
ext3はオンラインリサイズが可能なので、ファイルシステムをマウントしたままext2onlineを実行すると、lvresizeで拡張しておいた論理ボリュームのサイズに合わせて自動的に領域が拡張される。
# df Filesystem 1K-blocks Used Available Use% Mounted on : /dev/mapper/datavg-datalv 1032088 34092 945568 4% /mnt # ext2online /dev/datavg/datalv ext2online v1.1.18 - 2001/03/18 for EXT2FS 0.5b # df Filesystem 1K-blocks Used Available Use% Mounted on : /dev/mapper/datavg-datalv 1535856 34344 1423492 3% /mnt
ファイルシステム縮小
LVM上のファイルシステムを縮小する場合、拡張の時とは逆にまず中身のファイルシステムを縮小し、次に器である論理ボリュームを縮小する。
ファイルシステムの種類によって使用するコマンドやオンラインリサイズが可能かどうかが異なるので注意する。
ここではext3の1.5GBのファイルシステムを500MB縮小する手順を示す。
まずファイルシステムの縮小であるが、ext3はオンラインリサイズができないのでいったんアンマウントしてからfsck.ext3を使用してファイルシステムの整合性チェックを行った後にresize2fsにて領域を縮小し、再度マウントする。
# df Filesystem 1K-blocks Used Available Use% Mounted on : /dev/mapper/datavg-datalv 1535856 34344 1423492 3% /mnt # umount /mnt # fsck.ext3 -f /dev/datavg/datalv e2fsck 1.38 (30-Jun-2005) Pass 1: Checking inodes, blocks, and sizes Pass 2: Checking directory structure Pass 3: Checking directory connectivity Pass 4: Checking reference counts Pass 5: Checking group summary information /dev/datavg/datalv: 11/196608 files (9.1% non-contiguous), 14766/390144 blocks # resize2fs /dev/datavg/datalv 1024M resize2fs 1.38 (30-Jun-2005) Resizing the filesystem on /dev/datavg/datalv to 262144 (4k) blocks. : The filesystem on /dev/datavg/datalv is now 262144 blocks long. # mount /dev/datavg/datalv /mnt # df Filesystem 1K-blocks Used Available Use% Mounted on : /dev/mapper/datavg-datalv 1032088 34092 956056 4% /mnt
次に論理ボリュームを縮小する。
論理ボリュームのリサイズにはlvresizeを使用する。これはオンラインで実行可能である。
# lvresize -L -500M /dev/datavg/datalv WARNING: Reducing active and open logical volume to 1.00 GB THIS MAY DESTROY YOUR DATA (filesystem etc.) Do you really want to reduce datalv? [y/n]: ← y Reducing logical volume datalv to 1.00 GB Logical volume datalv successfully resized # lvdisplay /dev/datavg/datalv --- Logical volume --- LV Name /dev/datavg/datalv VG Name datavg LV UUID ZjRBAD-ln4K-VIUQ-zVxL-L05a-0SAL-lObINy LV Write Access read/write LV Status available # open 1 LV Size 1.00 GB Current LE 256 Segments 1 Allocation inherit Read ahead sectors 0 Block device 253:0
関連資料・記事
2008/1/7更新
対応バージョン: 8
作成済のLVMボリュームを削除する手順を示す。
ここでは以下のような構成のLVMを仮定して説明する。
物理ディスク/物理ボリューム(PV)
/dev/sda1
/dev/sda2
ボリュームグループ(VG)
datavg (/dev/sda1, /dev/sda2で構成)
論理ボリューム(LV)
datalv (datavgボリュームグループ内に作成)
マウントポイント
/mnt (datalv論理ボリュームをマウント)
アンマウント
まずマウントを解除する。/etc/fstabにマウント設定が記述してある場合は削除、あるいはコメントアウトする。
# umount /dev/datavg/datalv
論理ボリューム(LV)削除
次に論理ボリュームを削除する。引数には論理ボリューム名ではなくボリュームグループ名を指定する。
するとそのボリュームグループ内に存在する論理ボリュームを削除するかどうか聞いてくるので削除したい論理ボリュームに対して「y」を入力する。
# lvremove datavg Do you really want to remove active logical volume "datalv"? [y/n]: y Logical volume "datalv" successfully removed # lvdisplay
ボリュームグループ(VG)削除
論理ボリュームがすべて削除されたらボリュームグループを削除できる。
# vgremove datavg Volume group "datavg" successfully removed # vgdisplay
物理ボリューム(PV)削除
物理ボリュームの構成を削除する。
# pvremove /dev/sda1 Labels on physical volume "/dev/sda1" successfully wiped # pvremove /dev/sda2 Labels on physical volume "/dev/sda2" successfully wiped # pvdisplay
パーティションタイプ再設定
最後にfdiskにて各パーティションのパーティションタイプを0x83(Linux)に設定し直す。
# fdisk /dev/sda Command (m for help): p Disk /dev/sda: 40.9 GB, 40991662080 bytes 64 heads, 32 sectors/track, 39092 cylinders Units = cylinders of 2048 * 512 = 1048576 bytes Disk identifier: 0x000f3cff Device Boot Start End Blocks Id System /dev/sda1 1 1954 2000880 8e Linux LVM /dev/sda2 1955 39092 38029312 8e Linux LVM Command (m for help): t ← パーティション選択 Partition number (1-4): 1 Hex code (type L to list codes): 83 Changed system type of partition 1 to 83 (Linux) Command (m for help): t ← パーティション選択 Partition number (1-4): 2 Hex code (type L to list codes): 83 Changed system type of partition 2 to 83 (Linux) Command (m for help): p Disk /dev/sda: 40.9 GB, 40991662080 bytes 64 heads, 32 sectors/track, 39092 cylinders Units = cylinders of 2048 * 512 = 1048576 bytes Disk identifier: 0x000f3cff Device Boot Start End Blocks Id System /dev/sda1 1 1954 2000880 83 Linux /dev/sda2 1955 39092 38029312 83 Linux Command (m for help): w ← パーティションテーブル保存 The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks.
関連資料・記事
2008/1/7更新
対応バージョン: 8
LVM(Logical Volume Manager)を使ったボリュームを作成する手順を示す。
ここでは2つのパーティションが作成されているディスク「/dev/sda」(40GB)に対して新たに1つのファイルシステムを割り当てる手順を示す。
/dev/sda1 : 2GB
/dev/sda2 : 38GB
LVMパーティション作成
まずfdiskにて各パーティションのパーティションタイプを0x8e(Linux LVM)に設定する。
# fdisk /dev/sda Command (m for help): p Disk /dev/sda: 40.9 GB, 40991662080 bytes 64 heads, 32 sectors/track, 39092 cylinders Units = cylinders of 2048 * 512 = 1048576 bytes Disk identifier: 0x000f3cff Device Boot Start End Blocks Id System /dev/sda1 1 1954 2000880 83 Linux /dev/sda2 1955 39092 38029312 83 Linux Command (m for help): t ← パーティション選択 Partition number (1-4): 1 Hex code (type L to list codes): 8e Changed system type of partition 1 to 8e (Linux LVM) Command (m for help): t ← パーティション選択 Partition number (1-4): 2 Hex code (type L to list codes): 8e Changed system type of partition 2 to 8e (Linux LVM) Command (m for help): p : Device Boot Start End Blocks Id System /dev/sda1 1 1954 2000880 8e Linux LVM /dev/sda2 1955 39092 38029312 8e Linux LVM Command (m for help): w ← パーティションテーブル保存 The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks.
物理ボリューム(PV)作成
続いて各パーティションを物理ボリューム(PV:Physical Volume)として構成する。
# pvcreate /dev/sda1 Physical volume "/dev/sda1" successfully created # pvcreate /dev/sda2 Physical volume "/dev/sda2" successfully created # pvdisplay -C PV VG Fmt Attr PSize PFree /dev/sda1 lvm2 -- 1.91G 1.91G /dev/sda2 lvm2 -- 36.27G 36.27G # pvdisplay --- NEW Physical volume --- PV Name /dev/sda1 VG Name PV Size 1.91 GB Allocatable NO PE Size (KByte) 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID qzXdag-S3Kz-sw0W-Coog-FpY2-YWir-FcWLZJ --- NEW Physical volume --- PV Name /dev/sda2 VG Name PV Size 36.27 GB Allocatable NO PE Size (KByte) 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID eFSYxh-7bZH-L0Q6-zrd5-KZDL-YgP1-Z92AAO
ボリュームグループ(VG)作成
物理ボリュームが作成できたらこれをボリュームグループ(VG:Volume Group)に追加する。
ここでは新たに「datavg」というボリュームグループを作成し、2つの物理ボリュームをそこに含める。
# vgcreate datavg /dev/sda1 /dev/sda2 Volume group "datavg" successfully created # vgdisplay -v datavg Using volume group(s) on command line Finding volume group "datavg" --- Volume group --- VG Name datavg System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 1 VG Access read/write VG Status resizable MAX LV 0 Cur LV 0 Open LV 0 Max PV 0 Cur PV 2 Act PV 2 VG Size 38.17 GB PE Size 4.00 MB Total PE 9772 Alloc PE / Size 0 / 0 Free PE / Size 9772 / 38.17 GB VG UUID Z004bq-G1LS-625Q-AXYK-UywE-6DPr-52YEw6 --- Physical volumes --- PV Name /dev/sda1 PV UUID qzXdag-S3Kz-sw0W-Coog-FpY2-YWir-FcWLZJ PV Status allocatable Total PE / Free PE 488 / 488 PV Name /dev/sda2 PV UUID eFSYxh-7bZH-L0Q6-zrd5-KZDL-YgP1-Z92AAO PV Status allocatable Total PE / Free PE 9284 / 9284
論理ボリューム(LV)作成
ボリュームグループ作成後、実際にファイルシステムとしてマウントできる単位である論理ボリューム(LV:Logical Volume)を作成する。
ここでは1GBの「datalv」という論理ボリュームを作成する。
# lvcreate -L 1G -n datalv datavg Logical volume "datalv" created # lvdisplay -C LV VG Attr LSize Origin Snap% Move Log Copy% datalv datavg -wi-a- 1.00G # lvdisplay /dev/datavg/datalv --- Logical volume --- LV Name /dev/datavg/datalv VG Name datavg LV UUID B5ma9g-n23Z-3J1Q-d5iZ-he22-zZx4-aaSZuB LV Write Access read/write LV Status available # open 0 LV Size 1.00 GB Current LE 256 Segments 1 Allocation inherit Read ahead sectors 0 Block device 253:0
ファイルシステム作成/マウント
最後にこの論理ボリュームに対してファイルシステムを作成し、任意のディレクトリにマウントする。
ファイルシステムの種類によって作成コマンドは異なるが、ここではext3を作成する。
# mkfs.ext3 /dev/datavg/datalv mke2fs 1.38 (30-Jun-2005) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) 131072 inodes, 262144 blocks 13107 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=268435456 8 block groups 32768 blocks per group, 32768 fragments per group 16384 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376 Writing inode tables: done Creating journal (8192 blocks): done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 35 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override. # mount /dev/datavg/datalv /mnt # cat /etc/mtab : /dev/mapper/datavg-datalv /mnt ext3 rw 0 0 # df /mnt Filesystem 1K-blocks Used Available Use% Mounted on /dev/mapper/datavg-datalv 1032088 34092 945568 4% /mnt
以上で通常のファイルシステムと同じように使用できるようになった。
ここでボリュームグループの状態を見ると論理ボリュームの情報が追加されているのが確認できる。
# vgdisplay -v datavg Using volume group(s) on command line Finding volume group "datavg" --- Volume group --- VG Name datavg System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 2 VG Access read/write VG Status resizable MAX LV 0 Cur LV 1 Open LV 1 Max PV 0 Cur PV 2 Act PV 2 VG Size 38.17 GB PE Size 4.00 MB Total PE 9772 Alloc PE / Size 256 / 1.00 GB ← 割当領域が増えている Free PE / Size 9516 / 37.17 GB ← フリー領域が減っている VG UUID Z004bq-G1LS-625Q-AXYK-UywE-6DPr-52YEw6 --- Logical volume --- ← 論理ボリューム情報が追加されている LV Name /dev/datavg/datalv VG Name datavg LV UUID B5ma9g-n23Z-3J1Q-d5iZ-he22-zZx4-aaSZuB LV Write Access read/write LV Status available # open 1 LV Size 1.00 GB Current LE 256 Segments 1 Allocation inherit Read ahead sectors 0 Block device 253:0 --- Physical volumes --- PV Name /dev/sda1 PV UUID qzXdag-S3Kz-sw0W-Coog-FpY2-YWir-FcWLZJ PV Status allocatable Total PE / Free PE 488 / 488 PV Name /dev/sda2 PV UUID eFSYxh-7bZH-L0Q6-zrd5-KZDL-YgP1-Z92AAO PV Status allocatable Total PE / Free PE 9284 / 9028 ← フリー領域が減っている
ブート時にマウントを行いたい場合は/etc/fstabに以下のように記述する。
/dev/mapper/datavg-datalv /mnt ext3 defaults 0 0
関連資料・記事
2007/11/10更新
対応バージョン: 8
lspciコマンドを使用することによりPCIデバイスの詳細な情報が取得できる。
% lspci 00:00.0 Host bridge: VIA Technologies, Inc. CN700/VN800/P4M800CE/Pro Host Bridge 00:00.1 Host bridge: VIA Technologies, Inc. CN700/VN800/P4M800CE/Pro Host Bridge 00:00.2 Host bridge: VIA Technologies, Inc. CN700/VN800/P4M800CE/Pro Host Bridge 00:00.3 Host bridge: VIA Technologies, Inc. PT890 Host Bridge 00:00.4 Host bridge: VIA Technologies, Inc. CN700/VN800/P4M800CE/Pro Host Bridge 00:00.7 Host bridge: VIA Technologies, Inc. CN700/VN800/P4M800CE/Pro Host Bridge 00:01.0 PCI bridge: VIA Technologies, Inc. VT8237 PCI Bridge 00:0f.0 IDE interface: VIA Technologies, Inc. VT8251 AHCI/SATA 4-Port Controller 00:0f.1 IDE interface: VIA Technologies, Inc. VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (rev 07) 00:10.0 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 90) 00:10.1 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 90) 00:10.2 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 90) 00:10.3 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 90) 00:10.4 USB Controller: VIA Technologies, Inc. USB 2.0 (rev 90) 00:11.0 ISA bridge: VIA Technologies, Inc. VT8251 PCI to ISA Bridge 00:11.7 Host bridge: VIA Technologies, Inc. VT8251 Ultra VLINK Controller 00:12.0 Ethernet controller: VIA Technologies, Inc. VT6102 [Rhine-II] (rev 7c) 00:13.0 PCI bridge: VIA Technologies, Inc. VT8251 Host Bridge 00:13.1 PCI bridge: VIA Technologies, Inc. VT8251 PCI to PCI Bridge 01:00.0 VGA compatible controller: VIA Technologies, Inc. UniChrome Pro IGP (rev 01) 02:00.0 PCI bridge: VIA Technologies, Inc. VT8251 PCIE Root Port 02:00.1 PCI bridge: VIA Technologies, Inc. VT8251 PCIE Root Port
-vオプションを付けることにより、さらに詳細な情報が参照できる。
% lspci -v 00:00.0 Host bridge: VIA Technologies, Inc. CN700/VN800/P4M800CE/Pro Host Bridge Subsystem: VIA Technologies, Inc. CN700/VN800/P4M800CE/Pro Host Bridge Flags: bus master, medium devsel, latency 8 Memory at fc000000 (32-bit, prefetchable) [size=32M] Capabilities: <access denied> Kernel driver in use: agpgart-via 00:00.1 Host bridge: VIA Technologies, Inc. CN700/VN800/P4M800CE/Pro Host Bridge Subsystem: VIA Technologies, Inc. CN700/VN800/P4M800CE/Pro Host Bridge Flags: bus master, medium devsel, latency 0 00:00.2 Host bridge: VIA Technologies, Inc. CN700/VN800/P4M800CE/Pro Host Bridge Subsystem: VIA Technologies, Inc. CN700/VN800/P4M800CE/Pro Host Bridge Flags: bus master, medium devsel, latency 0 00:00.3 Host bridge: VIA Technologies, Inc. PT890 Host Bridge Flags: bus master, medium devsel, latency 0 00:00.4 Host bridge: VIA Technologies, Inc. CN700/VN800/P4M800CE/Pro Host Bridge Subsystem: VIA Technologies, Inc. CN700/VN800/P4M800CE/Pro Host Bridge Flags: bus master, medium devsel, latency 0 00:00.7 Host bridge: VIA Technologies, Inc. CN700/VN800/P4M800CE/Pro Host Bridge Flags: bus master, medium devsel, latency 0 00:01.0 PCI bridge: VIA Technologies, Inc. VT8237 PCI Bridge (prog-if 00 [Normal decode]) Flags: bus master, 66MHz, medium devsel, latency 0 Bus: primary=00, secondary=01, subordinate=01, sec-latency=0 Memory behind bridge: f9e00000-fbefffff Prefetchable memory behind bridge: f1d00000-f9cfffff Capabilities: <access denied> 00:0f.0 IDE interface: VIA Technologies, Inc. VT8251 AHCI/SATA 4-Port Controller (prog-if 8f [Master SecP SecO PriP PriO]) Subsystem: VIA Technologies, Inc. VT8251 AHCI/SATA 4-Port Controller Flags: bus master, medium devsel, latency 64, IRQ 221 I/O ports at ec00 [size=8] I/O ports at e880 [size=4] I/O ports at e800 [size=8] I/O ports at e480 [size=4] I/O ports at e400 [size=16] Memory at fbfffc00 (32-bit, non-prefetchable) [size=1K] Capabilities: <access denied> Kernel driver in use: ahci Kernel modules: ahci 00:0f.1 IDE interface: VIA Technologies, Inc. VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (rev 07) (prog-if 8a [Master SecP PriP]) Subsystem: VIA Technologies, Inc. VT82C586/B/VT82C686/A/B/VT8233/A/C/VT8235 PIPC Bus Master IDE Flags: bus master, medium devsel, latency 32 [virtual] Memory at 000001f0 (32-bit, non-prefetchable) [disabled] [size=8] [virtual] Memory at 000003f0 (type 3, non-prefetchable) [disabled] [size=1] [virtual] Memory at 00000170 (32-bit, non-prefetchable) [disabled] [size=8] [virtual] Memory at 00000370 (type 3, non-prefetchable) [disabled] [size=1] I/O ports at fc00 [size=16] Capabilities: <access denied> Kernel driver in use: pata_via Kernel modules: pata_via 00:10.0 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 90) (prog-if 00 [UHCI]) Subsystem: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller Flags: bus master, medium devsel, latency 64, IRQ 17 I/O ports at e080 [size=32] Capabilities: <access denied> Kernel driver in use: uhci_hcd Kernel modules: uhci-hcd 00:10.1 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 90) (prog-if 00 [UHCI]) Subsystem: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller Flags: bus master, medium devsel, latency 64, IRQ 16 I/O ports at e000 [size=32] Capabilities: <access denied> Kernel driver in use: uhci_hcd Kernel modules: uhci-hcd 00:10.2 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 90) (prog-if 00 [UHCI]) Subsystem: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller Flags: bus master, medium devsel, latency 64, IRQ 18 I/O ports at dc00 [size=32] Capabilities: <access denied> Kernel driver in use: uhci_hcd Kernel modules: uhci-hcd 00:10.3 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 90) (prog-if 00 [UHCI]) Subsystem: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller Flags: bus master, medium devsel, latency 64, IRQ 19 I/O ports at d880 [size=32] Capabilities: <access denied> Kernel driver in use: uhci_hcd Kernel modules: uhci-hcd 00:10.4 USB Controller: VIA Technologies, Inc. USB 2.0 (rev 90) (prog-if 20 [EHCI]) Subsystem: VIA Technologies, Inc. USB 2.0 Flags: bus master, medium devsel, latency 64, IRQ 16 Memory at fbfff800 (32-bit, non-prefetchable) [size=256] Capabilities: <access denied> Kernel driver in use: ehci_hcd Kernel modules: ehci-hcd 00:11.0 ISA bridge: VIA Technologies, Inc. VT8251 PCI to ISA Bridge Subsystem: VIA Technologies, Inc. VT8251 PCI to ISA Bridge Flags: medium devsel Capabilities: <access denied> Kernel modules: i2c-viapro 00:11.7 Host bridge: VIA Technologies, Inc. VT8251 Ultra VLINK Controller Subsystem: VIA Technologies, Inc. VT8251 Ultra VLINK Controller Flags: bus master, medium devsel, latency 128 Capabilities: <access denied> 00:12.0 Ethernet controller: VIA Technologies, Inc. VT6102 [Rhine-II] (rev 7c) Subsystem: ASUSTeK Computer Inc. Unknown device 80ed Flags: bus master, medium devsel, latency 64, IRQ 19 I/O ports at d400 [size=256] Memory at fbfff400 (32-bit, non-prefetchable) [size=256] Capabilities: <access denied> Kernel driver in use: via-rhine Kernel modules: via-rhine 00:13.0 PCI bridge: VIA Technologies, Inc. VT8251 Host Bridge (prog-if 00 [Normal decode]) Flags: bus master, fast devsel, latency 0 Bus: primary=00, secondary=02, subordinate=04, sec-latency=0 00:13.1 PCI bridge: VIA Technologies, Inc. VT8251 PCI to PCI Bridge (prog-if 01 [Subtractive decode]) Flags: bus master, fast devsel, latency 0 Bus: primary=00, secondary=05, subordinate=05, sec-latency=0 01:00.0 VGA compatible controller: VIA Technologies, Inc. UniChrome Pro IGP (rev 01) (prog-if 00 [VGA controller]) Subsystem: ASUSTeK Computer Inc. Unknown device 3344 Flags: bus master, 66MHz, medium devsel, latency 64, IRQ 20 Memory at f4000000 (32-bit, prefetchable) [size=64M] Memory at fa000000 (32-bit, non-prefetchable) [size=16M] Expansion ROM at fbef0000 [disabled] [size=64K] Capabilities: <access denied> 02:00.0 PCI bridge: VIA Technologies, Inc. VT8251 PCIE Root Port (prog-if 00 [Normal decode]) Flags: bus master, fast devsel, latency 0 Bus: primary=02, secondary=03, subordinate=03, sec-latency=0 Capabilities: <access denied> Kernel driver in use: pcieport-driver 02:00.1 PCI bridge: VIA Technologies, Inc. VT8251 PCIE Root Port (prog-if 00 [Normal decode]) Flags: bus master, fast devsel, latency 0 Bus: primary=02, secondary=04, subordinate=04, sec-latency=0 Capabilities: <access denied> Kernel driver in use: pcieport-driver
尚、PCIデバイスを含めハードウェア全般の情報についてはlshwコマンドにて取得できる(別途インストールが必要)。
関連資料・記事
2008/5/7更新
対応バージョン: B.02.12.01
lshwを使用することによりハードウェアの詳細な情報が取得できる。
オプションなしでハードウェア一覧がリストアップされる。
% sudo lshw foo.bar.com description: Desktop Computer product: Prime Series vendor: ThirdWave Corporation version: System Version serial: System Serial Number width: 32 bits :
この他-htmlオプション、-xmlオプションでそれぞれHTML、XML形式で情報が取得できる。
また、-shortオプションでクラス名を出力し、-classオプションにてクラス毎の情報が取得できる。
% sudo lshw -short H/W path Device Class Description ================================================ system Prime Series /0 bus P5V800-MX /0/0 memory 64KiB BIOS /0/4 processor Intel(R) Celeron(R) CPU 2.53GHz /0/4/5 memory 16KiB L1 cache /0/4/6 memory 256KiB L2 cache /0/4/7 memory L3 cache /0/25 memory 512MiB System Memory /0/25/0 memory 512MiB DIMM DDR Synchronous 400 MHz (2.5 ns) /0/25/1 memory DIMM [empty] /0/100 bridge CN700/VN800/P4M800CE/Pro Host Bridge /0/100/1 bridge VT8237 PCI Bridge /0/100/1/0 display UniChrome Pro IGP /0/100/f storage VT8251 AHCI/SATA 4-Port Controller /0/100/f.1 scsi0 storage VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE /0/100/f.1/0 /dev/sda disk 82GB HDS728080PLAT20 /0/100/f.1/0/1 /dev/sda1 volume 125MiB EXT3 volume /0/100/f.1/0/2 /dev/sda2 volume 2047MiB Linux swap volume /0/100/f.1/0/3 /dev/sda3 volume 74GiB EXT3 volume /0/100/f.1/1 /dev/cdrom disk DVDRAM GSA-H10N /0/100/10 bus VT82xxxxx UHCI USB 1.1 Controller /0/100/10/1 usb2 bus UHCI Host Controller /0/100/10.1 bus VT82xxxxx UHCI USB 1.1 Controller /0/100/10.1/1 usb3 bus UHCI Host Controller /0/100/10.1/1/1 generic PS/2+USB Mouse /0/100/10.1/1/2 generic USB Keyboard : % sudo lshw -class processor *-cpu description: CPU product: Intel(R) Celeron(R) CPU 2.53GHz vendor: Intel Corp. physical id: 4 bus info: cpu@0 version: 15.4.9 serial: 0000-0F49-0000-0000-0000-0000 slot: LGA 775 size: 2533MHz capacity: 2533MHz width: 64 bits clock: 133MHz capabilities: boot fpu fpu_exception wp vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx x86-64 constant_tsc up pebs bts sync_rdtsc pni monitor ds_cpl tm2 cid cx16 xtpr lahf_lm configuration: id=0
2008/4/24更新
対応バージョン: 8
nscd(name service cache daemon)を使用することで最初の情報取得時のみLDAPサーバから検索を行い、以降はキャッシュされた値を使用して問い合わせのパフォーマンスを向上させることができる。
nscd設定
nscdの設定ファイルは/etc/nscd.confである。
基本的にデフォルトのままでよいが、必要に応じて適宜設定を変更する。
nscd有効化
# chkconfig --level 3 nscd on # chkconfig --list nscd nscd 0:off 1:off 2:off 3:on 4:off 5:off 6:off
nscd起動
# service nscd start
nscd効果測定
ある環境でnscdの有効/無効によってユーザ情報の検索にどの程度差が生まれるか調査した結果を記す。
調査には以下のようなスクリプト(test.sh)を用いた。
#!/bin/sh cnt=1000 while [ $cnt -gt 0 ]; do id ldapuser > /dev/null cnt=`expr $cnt - 1` done
nscd無効
% time ./test.sh real 0m14.686s user 0m1.743s sys 0m2.518s
1000回のリクエストに15秒弱かかっている。
nscd有効
% time ./test.sh real 0m1.676s user 0m0.441s sys 0m1.107s
nscdを有効にすると同じ1000回のリクエストが2秒弱で終了することが分かる。
2008/4/24更新
対応バージョン: 8
LDAPクライアントとしての設定を無効化するには以下の設定を行う。
設定
LDAP無効化
% sudo authconfig --disableldap --update
→ nss_ldapがdisableになる。
LDAP認証無効化
% sudo authconfig --disableldapauth --update
→ pam_ldapがdisableになる。
LDAPとTLSの併用を無効にする
% sudo authconfig --disableldaptls --update
→ LDAP+TLSがdisableになる。
確認
全ての設定内容は「authconfig --test」にて確認できる。以下は上記の設定を全て適用した場合の例である(LDAP関連設定のみ抜粋)。
% sudo authconfig --test : nss_ldap is disabled LDAP+TLS is disabled : pam_ldap is disabled LDAP+TLS is disabled :
また、各設定ファイルのエントリからldapが削除される。
/etc/nsswitch.conf
(変更前)
passwd: files ldap shadow: files ldap group: files ldap : netgroup: files ldap : automount: files ldap
(変更後)
passwd: files shadow: files group: files : netgroup: files : automount: files
/etc/pam.d/system-auth-ac
(以下の行が削除される)
auth sufficient pam_ldap.so use_first_pass account [default=bad success=ok user_unknown=ignore] pam_ldap.so password sufficient pam_ldap.so use_authtok session optional pam_ldap.so
関連資料・記事
2008/4/24更新
対応バージョン: 8
FedoraをLDAPクライアントとして使用する、つまりログインデータベースとして通常の/etc/passwdなどに加えてLDAPサーバを使用する場合、以下の設定を行う。
設定
LDAP有効化
# authconfig --enableldap --update
→ nss_ldapがenableになる。
LDAP認証有効化
# authconfig --enableldapauth --update
→ pam_ldapがenableになる。
LDAPサーバ設定
# authconfig --ldapserver=<デフォルトのLDAPサーバ> --update
→ LDAP serverにLDAPサーバのURLがセットされる。
例)
# authconfig --ldapserver="ldap://127.0.0.1/" --update
LDAPベースDN設定
# authconfig --ldapbasedn=<デフォルトのLDAPベースDN> --update
→ LDAP base DNにLDAPのベースDNがセットされる。
例)
# authconfig --ldapbasedn="dc=example,dc=com" --update
LDAPとTLSの併用を有効にする
「Start TLS拡張機能」を有効にする場合は設定する。
# authconfig --enableldaptls --update
→ LDAP+TLSがenableになる。
確認
全ての設定内容は「authconfig --test」にて確認できる。以下は上記の設定を全て適用した場合の例である(LDAP関連設定のみ抜粋)。
# authconfig --test : nss_ldap is enabled LDAP+TLS is enabled LDAP server = "<LDAPサーバのURI>" LDAP base DN = "<LDAPベースDN>" : pam_ldap is enabled LDAP+TLS is enabled LDAP server = "<LDAPサーバのURI>" LDAP base DN = "<LDAPベースDN>" :
また、各設定ファイルのエントリにldapが追加される。
/etc/nsswitch.conf
(変更前)
passwd: files shadow: files group: files : netgroup: nisplus : automount: files nisplus
(変更後)
passwd: files ldap shadow: files ldap group: files ldap : netgroup: files ldap : automount: files ldap
/etc/pam.d/system-auth-ac
(以下の行が追加される)
auth sufficient pam_ldap.so use_first_pass account [default=bad success=ok user_unknown=ignore] pam_ldap.so password sufficient pam_ldap.so use_authtok session optional pam_ldap.so
/etc/ldap.conf
(変更前)
: #host 127.0.0.1 : base dc=example,dc=com : nss_initgroups_ignoreusers root,ldap,named,avahi,haldaemon,dbus,radvd,tomcat,radiusd,news,mailman,nscd :
(変更後)
: host <LDAPサーバ> : base <LDAPベースDN> : nss_initgroups_ignoreusers root,ldap,named,avahi,haldaemon : uri <LDAPサーバのURI> ssl start_tls tls_cacertdir /etc/openldap/cacerts pam_password md5
/etc/openldap/ldap.conf
(以下の行が追加される)
URI <LDAPサーバのURI> BASE <LDAPベースDN> TLS_CACERTDIR /etc/openldap/cacerts
(*) 別途OpenLDAPをインストールした場合、ldap.confは/usr/local/etc/openldap配下のものを使用するので上記ファイルを同ディレクトリにコピーする必要がある。
関連資料・記事
2008/9/12更新
対応バージョン: 9
IPv6を無効にするには/etc/modprobe.confに以下の行を追加してシステムを再起動する。
install ipv6 /sbin/modprobe -n -i ipv6
IPv6を無効にするので関連するサービスも止めておくとよい。
% sudo chkconfig ip6tables off
2007/8/15更新
対応バージョン: 6
/etc/sysconfig/networkのFORWARD_IPV4をyesにし、ネットワークサービスを再起動する。
# service network restart
2006/7/12更新
対応バージョン: 6
まず必要なファイルをダウンロードし、以下の手順で導入する。
grass5.0.3_i686-pc-linux-i18n-ipafull-gnu_bin.tar.gz
grass5_i686-pc-linux-i18n-ipafull-gnu_install.sh
# sh grass5_i686-pc-linux-i18n-ipafull-gnu_install.sh \ grass5.0.3_i686-pc-linux-i18n-ipafull-gnu_bin.tar.gz \ /tmp/grass5 /tmp/bin # mv /tmp/grass5/fonts/*.ttf /usr/share/fonts/japanese/TrueType/ # cd /usr/share/fonts/japanese/TrueType # mv sazanami-gothic.ttf sazanami-gothic.ttf.org # mv sazanami-mincho.ttf sazanami-mincho.ttf.org # ln -s ipam.ttf sazanami-mincho.ttf # ln -s ipag.ttf sazanami-gothic.ttf # mkfontdir # mkfontscale # cd /etc/fonts/conf.d # vi 25-no-hint-fedora.conf 40-generic-fedora.conf 64-nonlatin-fedora.conf 以下のフォント名を変更 Sazanami Mincho → IPAMincho Sazanami Gothic → IPAGothic
参考までに、M+フォントとIPAフォントの合成およびデフォルト化の手順も紹介する。
前もって以下のサイトよりM+フォント(mplus-TESTFLIGHT-xxx.tar.gz)を入手しておくこと。
# yum install fontforge # tar zxvf mplus-TESTFLIGHT-012.tar.gz # cd mplus-TESTFLIGHT-012 # cp /usr/share/fonts/japanese/TrueType/ipag.ttf . # fontforge -script m++ipa.pe # mv M*IPAG.ttf /usr/share/fonts/japanese/TrueType # cd /usr/share/fonts/japanese/TrueType # mkfontdir # mkfontscale # cd /etc/fonts/conf.d # vi 25-no-hint-fedora.conf 40-generic-fedora.conf 64-nonlatin-fedora.conf 以下のフォント名を変更 IPAGothic → M+2P+IPAG
2008/10/30更新
対応バージョン: 9
事象
NICが有効になっているにもかかわらず、Firefoxがオフラインモードで起動してしまう。
オンラインモードに変更していったんFirefoxを起動し直しても事象は変わらない。
分析
FirefoxはNICの動作状況をNetworkMangerに問い合わせているが、NetworkMangerがNICを管理する設定になっていない場合にこの事象が起こる。
対応としては以下の2通りの方法がある。
対応
NICをNetworkMangerで管理する場合 (*)
GNOMEメニューから「管理」>「ネットワーク」を選択してネットワーク設定画面を起動する。
設定したいNICを選択して「編集」をクリックし、「NetworkMangerで管理する」にチェックを入れる。
ネットワーク設定画面を閉じ、設定を保存する。
networkサービスを無効にする。
% sudo service network stop % sudo chkconfig --del network
NetworkMangerを再起動する。
% sudo service NetworkManager restart
(*) NICに固定IPを割り振っている場合NetworkMangerがうまく動作せずDHCPクライアントとして振る舞おうとするので次の方法で対応する。
NICをNetworkMangerで管理しない場合
NetworkMangerサービスを無効にする。
% sudo service NetworkManager stop % sudo chkconfig --del NetworkManager
networkサービスを有効にする。
% sudo chkconfig --level 2345 network on % sudo chkconfig --add network % sudo service network start
関連資料・記事
2008/3/2更新
対応バージョン: 8
fdiskはGPT(GUID Partition Table)をサポートしていないので、GPTのディスクを操作しようとすると問題が起こる可能性がある。
# fdisk /dev/sdb WARNING: GPT (GUID Partition Table) detected on '/dev/sdb'! The util fdisk doesn't support GPT. Use GNU Parted.
このような場合はGNU Partedを使用してディスクラベルを「msdos」に変更するとよい。
ただしこの操作によりパーティションテーブルを含めたディスク内の『全てのデータが削除される』ので、重要なデータはあらかじめバックアップを取っておくこと。
# parted /dev/sdb (parted) mklabel Warning: The existing disk label on /dev/sdb will be destroyed and all data on this disk will be lost. Do you want to continue? Yes/No? ← yes New disk label type? [gpt]? ← msdos (parted) q
この結果、fdiskでWARNINGが出なくなる。
2008/10/15更新
対応バージョン: 9
任意のサイズのファイルを新規に作成する場合、他のUNIX系OSで使用できるmkfileがないのでddを使用する。
例) 1GBのファイルを作成する場合
% dd if=/dev/zero of=test bs=1M count=1024
(*) ブロックサイズを1MBに設定して1024ブロック(1GB分)書き込む
関連資料・記事
2007/11/10更新
対応バージョン: 6,7,8
compat-libstdc++*パッケージをインストールする。
# yum install compat-libstdc++*
2007/11/10更新
対応バージョン: 6,7,8
目的に応じて以下の方法で設定する。
通常の環境変数
/etc/profileに定義する。
LD_LIBRARY_PATHの場合
/etc/ld.so.conf.d配下に任意の設定ファイル(拡張子.conf)を作成し、ldconfigを実行する。
例) /usr/local/libを追加する場合
# vi /etc/ld.so.conf.d/XXX.conf /usr/local/lib # /sbin/ldconfig
シェル環境(Bash)に対する環境変数
/etc/bashrcに定義する。
2007/10/10更新
対応バージョン: 6
これは認証サービスにLDAPサーバを使用している環境において、syslog(/etc/rc2.d/S12syslog)が起動する前にLDAPサーバが起動していないためにnss_ldapが同サーバにバインドできずにリトライを繰り返しているのが原因である。
例えば以下のようにしてsyslogよりもslapdが先に起動するようにすれば同事象は発生しなくなる。
# cd /etc/rc2.d # ln -s ../init.d/slapd S11slapd
関連資料・記事
2008/6/6更新
対応バージョン: 9
Linuxのベンチマークを測定するには以下のようなツールを利用する。
姫野ベンチ
CPU
hdparm
HDD
HDBENCH clone
CPU/ビデオカード/HDD
Phoronix Test Suite
ハードウェア/ソフトウェアにわたる広範なベンチマーク測定
以下、導入が簡単なものから順にそれぞれ導入方法と使用方法を説明する。
姫野ベンチ
導入手順
以下からソースを入手する。
http://accc.riken.jp/HPC/HimenoBMT/
対応言語はFortranとC(static allocate/dynamic allocate)があり、問題サイズの指定(XL、L、M、S)はそれぞれ使用するメモリ量が異なるので必要に応じて選択する。
ここではC言語(static allocate)、サイズMを使用するものとし、以下の手順で導入する。
% 7z e cc_himenoBMTxp_m.lzh % make % sudo cp bmt /usr/local/bin
使用方法
bmtを起動する。
% bmt mimax = 129 mjmax = 129 mkmax = 257 imax = 128 jmax = 128 kmax =256 Start rehearsal measurement process. Measure the performance in 3 times. MFLOPS: 107.737056 time(s): 3.817771 1.733593e-03 Now, start the actual measurement process. The loop will be excuted in 47 times This will take about one minute. Wait for a while Loop executed for 47 times Gosa : 1.505549e-03 MFLOPS measured : 423.242934 cpu : 15.225160 Score based on Pentium III 600MHz : 5.161499
hdparm
導入手順
hdparmはFedora 9にはデフォルトでインストールされている。
使用方法
hdparmはベンチマークを測定する他にデバイスの状態を確認/制御したりデバイスへの各種設定を行うことができるが、ここではベンチマーク取得オプションを紹介する。
-T (キャッシュ読み込み)
ディスクアクセスなしにバッファキャッシュからデータを読み出す速度を測定する。
% sudo hdparm -T /dev/sda /dev/sda: Timing cached reads: 774 MB in 2.00 seconds = 386.63 MB/sec
-t (デバイス読み込み)
バッファキャッシュを通してディスクから連続してデータを読み出すことができるかを測
定する。
% sudo hdparm -t /dev/sda /dev/sda: Timing buffered disk reads: 168 MB in 3.01 seconds = 55.82 MB/sec
HDBENCH clone
導入手順
以下からソースを入手する。
http://www.vector.co.jp/soft/unix/hardware/se102164.html
以下の手順で導入する。事前にgtk+-develをインストールしておく必要がある。
% tar zxvf hdbench-0.14.0.tar.gz % cd hdbench-0.14.0 % ./configure % make % sudo make insatall
以下のファイルがインストールされる。
ツール本体
/usr/local/bin/hdbench
使用方法
hdbenchを起動し、計測したいものによって[CPU]、[VIDEO]、[DISK]の各ボタンを押す。[ALL]ボタンで全ての計測をまとめて実施できる。
Phoronix Test Suite
導入手順
以下からソースを入手する。
http://www.phoronix-test-suite.com/
以下の手順で導入する。事前にphp-cliとwgetをインストールしておく必要がある。
% tar zxvf phoronix-test-suite-1.0.0.tar.gz % cd phoronix-test-suite % sudo ./install-sh
以下のファイルがインストールされる。
ツール本体
/usr/bin/phoronix-test-suite
関連ファイル
/usr/share/phoronix-test-suite配下
次にテストしたいパターンを入手する。
パターンには以下の2種類がある。
Suites
CPUやグラフィックカードなどデバイスに関するテストパターン
Tests
gzipやOpenSSL、SQLiteなどのソフトウェアに関するテストパターン
それぞれ利用可能なテストパターンを表示して必要なものをインストールして使用する。
% phoronix-test-suite list-suites : Do you agree to these terms and wish to proceed (Y/n)? ← y ==================================== Phoronix Test Suite - Suites ==================================== audio-encoding - Audio Encoding [Type: System] compilation - Timed Code Compilation [Type: Processor] compression - Timed File Compression [Type: Processor] computational-biology - Computational Biology Test Suite [Type: Scientific] cryptography - Cryptography [Type: Processor] gaming-closed - Closed-Source Gaming [Type: System] gaming-free - Free Software Gaming [Type: System] gaming - Gaming [Type: System] gui-toolkits - GUI Toolkits [Type: Graphics] java - Java [Type: System] molecular-dynamics - Molecular Dynamics Test Suite [Type: Processor] multicore - Multi-Core [Type: Processor] pcqs-desktop-graphics - PCQS: Desktop Graphics [Type: System] pcqs-graphics - PCQS: Graphics [Type: System] pcqs-motherboard - PCQS: Motherboard [Type: Motherboard] pcqs-server-motherboard - PCQS: Server Motherboard [Type: Motherboard] pcqs-workstation-graphics - PCQS: Workstation Graphics [Type: Graphics] system-compliance - System Compliance [Type: System] system-memory - System Memory [Type: Memory] universe-cli - Universe CLI Test Suite [Type: System] universe-x - Universe Test Suite [Type: System] universe - Universe Test Suite [Type: System] video-encoding - Video Encoding [Type: System] % phoronix-test-suite list-tests ==================================== Phoronix Test Suite - Tests ==================================== build-apache - Timed Apache Compilation [Status: VERIFIED, License: FREE] build-imagemagick - ImageMagick Compilation [Status: VERIFIED, License: FREE] build-linux-kernel - Timed Linux Kernel Compilation [Status: VERIFIED, License: FREE] build-mplayer - Timed MPlayer Compilation [Status: VERIFIED, License: FREE] build-php - Timed PHP Compilation [Status: VERIFIED, License: FREE] compliance-acpi - Advanced Configuration and Power Interface [Status: VERIFIED, License: FREE] compliance-ogl - GLEW [Status: VERIFIED, License: FREE] compliance-sensors - LM Sensors [Status: VERIFIED, License: FREE] compress-7zip - 7-Zip Compression [Status: VERIFIED, License: FREE] compress-gzip - Timed Gzip Compression [Status: VERIFIED, License: FREE] compress-lzma - Timed LZMA Compression [Status: VERIFIED, License: FREE] compress-pbzip2 - Parallel BZIP2 Compression [Status: VERIFIED, License: FREE] doom3 - Doom 3 [Status: VERIFIED, License: NON-FREE] encode-ape - Monkey Audio Encoding [Status: VERIFIED, License: FREE] encode-flac - FLAC Audio Encoding [Status: VERIFIED, License: FREE] encode-mp3 - LAME MP3 Encoding [Status: VERIFIED, License: FREE] encode-ogg - Ogg Encoding [Status: VERIFIED, License: FREE] encode-wavpack - WavPack Audio Encoding [Status: VERIFIED, License: FREE] espeak - eSpeak Speech Engine [Status: VERIFIED, License: FREE] etqw-demo - ET: Quake Wars Demo [Status: VERIFIED, License: NON-FREE] etqw - ET: Quake Wars [Status: VERIFIED, License: NON-FREE] ffmpeg - FFmpeg [Status: VERIFIED, License: FREE] fgl-glxgears - ATI fgl_glxgears [Status: VERIFIED, License: RESTRICTED] glmark - GLMark [Status: VERIFIED, License: FREE] gnupg - GnuPG [Status: VERIFIED, License: FREE] gtkperf - GtkPerf [Status: VERIFIED, License: FREE] hmmer - Timed HMMer Search [Status: VERIFIED, License: FREE] iozone - IOzone [Status: VERIFIED, License: FREE] java-scimark2 - Java SciMark [Status: VERIFIED, License: FREE] mafft - Timed MAFFT Alignment [Status: VERIFIED, License: FREE] md-gromacs - GROMACS MD Benchmark [Status: VERIFIED, License: FREE] memory-bandwidth - Bandwidth [Status: VERIFIED, License: FREE] mencoder - Mencoder [Status: VERIFIED, License: FREE] mrbayes - Timed MrBayes Analysis [Status: VERIFIED, License: FREE] nexuiz - Nexuiz [Status: VERIFIED, License: FREE] norsetto-shadow - Norsetto Shadow [Status: VERIFIED, License: FREE] openarena - OpenArena [Status: VERIFIED, License: FREE] openssl - OpenSSL [Status: VERIFIED, License: FREE] pts-graph - PTS Grapher [Status: VERIFIED, License: FREE] quake4 - Quake 4 [Status: VERIFIED, License: NON-FREE] ramspeed - RAMspeed [Status: VERIFIED, License: FREE] render-bench - Render Bench [Status: VERIFIED, License: FREE] scimark2 - SciMark [Status: VERIFIED, License: FREE] specviewperf10 - SPECViewPerf [Status: VERIFIED, License: FREE] specviewperf9 - SPECViewPerf [Status: VERIFIED, License: FREE] sqlite - SQLite [Status: VERIFIED, License: FREE] sunflow - Sunflow Rendering System [Status: VERIFIED, License: FREE] super-pi - Super PI [Status: VERIFIED, License: UNKNOWN] tandem-xml - Tandem XML [Status: VERIFIED, License: FREE] warsow - Warsow [Status: VERIFIED, License: FREE] x11perf - x11perf [Status: VERIFIED, License: FREE] xplane9 - X-Plane [Status: VERIFIED, License: FREE] yafray - YafRay [Status: VERIFIED, License: FREE]
この中でテストに使用したいパターンをインストールする。パターン毎にライセンスが異なるので注意すること。
ここではSuitesからcompilationとvideo-encoding、Testsからcompress-gzipとopensslをインストールする。
% phoronix-test-suite install compilation % phoronix-test-suite install video-encoding % phoronix-test-suite install compress-gzip % phoronix-test-suite install openssl
各パターンは他のパターンに依存している場合が多いのでそれらも自動的にインストールされる。
上記4パターンをインストールした結果は以下のようになる。
% phoronix-test-suite list-installed-tests ===================================== Phoronix Test Suite - Installed Tests ===================================== build-apache - Timed Apache Compilation build-imagemagick - ImageMagick Compilation build-linux-kernel - Timed Linux Kernel Compilation build-php - Timed PHP Compilation compress-gzip - Timed Gzip Compression ffmpeg - FFmpeg mencoder - Mencoder openssl - OpenSSL
使用方法
runサブコマンドに続けてテストしたいパターンを指定する。
ここでは前述のvideo-encodingとopensslのベンチマークを測定してみる。
% phoronix-test-suite run video-encoding Would you like to save these test results (Y/n)? ← 結果を保存するか? ==================================== Test Suite: video-encoding ==================================== ==================================== Mencoder (Run 1 of 3) ==================================== Encoding Time: 159.37 Seconds : (同じテスト3回実施) : #################################### Mencoder: 159.37 Seconds 208.98 Seconds 196.98 Seconds Average: 188.44 Seconds #################################### ==================================== FFmpeg (Run 1 of 3) ==================================== Encoding Time: 73.96 Seconds : (同じテスト3回実施) : #################################### FFmpeg: 73.96 Seconds 71.43 Seconds 65.74 Seconds Average: 70.37 Seconds ####################################
% phoronix-test-suite run openssl Would you like to save these test results (Y/n)? ==================================== OpenSSL (Run 1 of 4) ==================================== +DTP:4096:private:rsa:10 +R1:60:4096:10.16 +DTP:4096:public:rsa:10 +R2:3099:4096:10.00 Forked child 0 Got: +F2:3:4096:0.169333:0.003227 from 0 OpenSSL 0.9.8g 19 Oct 2007 built on: Fri Jun 6 12:40:15 JST 2008 options:bn(64,32) md2(int) rc4(idx,int) des(ptr,risc1,16,long) aes(partial) idea(int) blowfish(idx) compiler: gcc -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall -DOPENSSL_BN_ASM_PART_WORDS -DOPENSSL_IA32_SSE2 -DSHA1_ASM -DMD5_ASM -DRMD160_ASM -DAES_ASM available timing options: TIMES TIMEB HZ=100 [sysconf value] timing function used: sign verify sign/s verify/s rsa 4096 bits 0.169333s 0.003227s 5.9 309.9 : (同じテストを4回実施) : #################################### OpenSSL: 5.9 Signs Per Second 5.6 Signs Per Second 5.4 Signs Per Second 5.9 Signs Per Second Average: 5.70 Signs Per Second ####################################
この他にもテストパターンのアンインストールやベンチマーク結果の削除/再表示、システム情報の表示など様々な操作が可能である。
詳しくは引数なしでphoronix-test-suiteを実行すると利用可能な操作の一覧が表示される。
2008/8/29更新
対応バージョン: 9
avahi-tools同梱のコマンドの使用方法を説明する。avahi-browseについては以下を参照のこと。
関連資料・記事
avahi-browse-domains
ローカルネットワークの他に検索する外部ドメインをリストアップする。
% avahi-browse-domains -t + n/a n/a zeroconf.org + n/a n/a 0pointer.de
この設定は/etc/avahi/avahi-daemon.confの以下のパラメータで変更できる。
: [server] : browse-domains=0pointer.de, zeroconf.org :
avahi-discover
利用可能なサービスをリストアップするavahi-browseのGUI版。
ローカルネットワークの他に「Wide Area」として外部のドメインも検索する。この例では以下のドメインが検索されている。
0pointer.de
zeroconf.org
外部のドメインを検索したくない場合は/etc/avahi/avahi-daemon.confの以下のパラメータをnoにすればよい。
: [wide-area] enable-wide-area=yes :
avahi-publish
一時的にサービスやホスト/IPアドレスのマッピングを定義して利用可能にする。
サービス定義(-sオプション)
avahi-publish -s <サービス名> <サービスタイプ> <サービス提供ポート> [<付加情報>]
例) SSHサービス
% avahi-publish -s sshserv _ssh._tcp 2022 "test ssh service" Established under name 'sshserv' % avahi-browse -r _ssh._tcp -t + eth0 IPv4 sshserv SSH Remote Terminal local = eth0 IPv4 sshserv SSH Remote Terminal local hostname = [fedora.local] address = [192.168.0.1] port = [2022] txt = ["test ssh service"]
ホスト/IPアドレスのマッピング(-aオプション)
avahi-publish -a <ホスト名> <IPアドレス>
例)
% avahi-publish-address myhost.local 192.168.0.123 Established under name 'myhost.local'
avahi-publish-address
「avahi-publish -a」と同義。
avahi-publish-service
「avahi-publish -s」と同義。
avahi-resolve
IPアドレスからホスト名を得る、またはその逆を行う。
IPアドレス -> ホスト名(-aオプション)
avahi-resolve -a <IPアドレス>
例)
% avahi-resolve -a 192.168.0.1 192.168.0.1 fedora.local
ホスト名 -> IPアドレス(-nオプション)
avahi-resolve -n <ホスト名> [-4|-6]
例)
% avahi-resolve -n fedora.local -4 (IPv4) fedora.local 192.168.0.1 % avahi-resolve -n fedora.local -6 (IPv6) fedora.local fe80::217:31ff:fe4f:9c7f
avahi-resolve-address
「avahi-resolve -a」と同義。
avahi-resolve-host-name
「avahi-resolve -n」と同義。
avahi-set-host-name
現在動作しているAvahiデーモン(avahi-daemon)に対してmDNS(Multicast DNS)ホストを設定する。
avahi-set-host-name <ホスト>
2008/8/28更新
対応バージョン: 9
Avahiで利用可能なサービスをリストアップするにはavahi-browseを使用する。
同コマンドは「avahi-tools」パッケージに同梱されているのでまずインストールする。
% sudo yum install avahi-tools
「avahi-tools」パッケージには以下のツールが含まれるが、ここではavahi-browseのみ説明する。
avahi-browse avahi-browse-domains avahi-discover avahi-publish avahi-publish-address avahi-publish-service avahi-resolve avahi-resolve-address avahi-resolve-host-name avahi-set-host-name
関連資料・記事
全サービスリストアップ
全てのサービスをリストアップする場合は「-a」オプション付でavahi-browseを実行する。
% avahi-browse -a -t + eth0 IPv4 8CC06DD4D03779B0 _touch-able._tcp local + eth0 IPv4 host_a SSH Remote Terminal local + eth0 IPv4 host_b Web Site local
この例では最初の行でiTunesのプレイリスト共有が、次の2行でhost_aとhost_bの2つのホストのリモートサービスがそれぞれリストアップされている。
-tオプションは一度リストアップした後にコマンドを終了させる指定で、これを付けないとサービスの有効/無効を常時監視するモードになる。
特定サービス詳細出力
特定のサービスについて詳細を出力したい場合は「-r <サービス>」オプション付でavahi-browseを実行する。
例えばWebサービス(Webサーバ)についての詳細を出力したい場合は以下のようにする。
% avahi-browse -r _http._tcp -t + eth0 IPv4 host_b Web Site local = eth0 IPv4 host_b Web Site local hostname = [host_b.local] address = [192.168.0.1] port = [80] txt = []
関連資料・記事
うまく動作しない場合の対処方法
avahi-browseの結果が返ってこない
% avahi-browse -a (結果が返ってこない)
avahi-browseはローカルで利用可能なサービスを取得するために224.0.0.251にmDNS(Multicast DNS)クエリを投げるが、宛先ポートが5353/udpなのでこれをファイアウォール等でブロックしていると結果が返ってこない。
ちなみに-aオプションを付けた場合は以下のクエリが発行される。
_services._dns-sd._udp.local
avahi-browseがエラーになる
% avahi-browse -a Failed to create client object: Daemon not running
Avahiのデーモン(avahi-daemon)が起動していないので起動する。
(Fedoraの場合)
% sudo service avahi-daemon start
2008/8/27更新
対応バージョン: 9
FedoraでZeroconf(Zero Configuration Networking)を利用するにはAvahiを使用する。Appleでの実装はBonjourである。
まずZeroconfで必要な要素とAvahiにおける実装の対応を示す。
Addressing
AutoIP(*)によってIPアドレスの付与を行う仕組み。
(*) MicrosoftではAPIPA(Automatic Private IP Addressing)と呼ぶ。
Naming
mDNS(Multicast DNS)によってサービスの名前割当を行う仕組み。
名前は以下のような命名規約によって割り当てられる。
<ホスト名>.<サービス名>.<プロトコル名>.<ドメイン名>
(*) サービス名とプロトコル名は先頭が「_」で始まる。
(*) サービス名にはIANAが管理しているWELL KNOWN PORT NUMBERSが使われる(http、sshなど)。
(*) ドメイン名は特に指定しなければデフォルトで「local」が使われる。
例) ネットワークプリンタの場合
prt01._ipp._tcp.local
avahiではavahi-daemonがこの機能を提供する。
Browsing
DNS-SD(DNS Service Discovery)によってネットワーク上のサービスを検出する仕組み。
avahiではavahi-dnsconfdがこの機能を提供する。
サービス追加
avahiで新たにサービスを追加するには/etc/avahi/services配下に「<サービス名>.service」というファイルを作成して設定をXMLで記述する。
例えばWebサーバをサービスとして追加する場合、記述内容は以下のようになる。
% hostname fedora % sudo vi /etc/avahi/services/http.service <?xml version="1.0" standalone='no'?> <!DOCTYPE service-group SYSTEM "avahi-service.dtd"> <service-group> <name replace-wildcards="yes">%h</name> <service> <type>_http._tcp</type> <port>80</port> </service> </service-group>
以下、必要最低限のタグについて説明する。それ以外はavahi.serviceのmanを参照のこと。
service-group
サービスの定義
一つの
name replace-wildcards="yes|no"
ネットワーク上に通知されるサービス名
replace-wildcards属性が"yes"の場合、値に"%h"と記述しておくと自ホスト名に置換される。デフォルトは"no"。
service protocol="ipv4|ipv6|any"
サービスの詳細定義
protocol属性によってサポートするネットワークプロトコルを指定する。デフォルトは"any"(IPv4とIPv6双方をサポート)。
type
サービスタイプ
サービス名とサービスプロトコル名を一緒に定義する(例:_http._tcp)。
port
サービス提供ポート
このファイルを作成し終わると自動的にネットワーク上にサービスの通知が行われ(*)、例えばMac OS X上のSafariでブックマークバーのBonjourメニューにWebサーバが表示される。
尚、SafariのブックマークバーにBonjourメニューを表示するにはあらかじめ環境設定で以下のように指定しておく必要がある。
(*) サービスの自動通知が行われるためにはあらかじめavahi-daemonが起動している必要がある。Fedoraではデフォルトで起動する設定になっている。
% chkconfig --list avahi-daemon avahi-daemon 0:off 1:off 2:off 3:on 4:on 5:on 6:off % ps ax|grep avahi 2282 ? Ss 0:00 avahi-daemon: running [fedora.local] 2283 ? Ss 0:00 avahi-daemon: chroot helper
関連資料・記事
2009/1/1更新
対応バージョン: 10
autofsでダイレクトマップを使う手順を示す。
ここでは/dev/sdb1(ext3)を/fooにオートマウントするものとする。
autofs停止
% sudo service autofs stop
マスターマップ設定ファイル編集
マスターマップの設定ファイルにダイレクトマップの設定を追加する。
% sudo vi /etc/auto.master /- /etc/auto.direct
ダイレクトマップ設定ファイル編集
マウントポイント、オプション、対象デバイスをそれぞれ指定する。
% sudo vi /etc/auto.direct /foo -fstype=ext3 :/dev/sdb1
マウントポイント作成
% sudo mkdir /foo
autofs起動
% sudo service autofs start
マウント試験
ダイレクトマップ対象マウントポイントにアクセスすると指定したデバイスがオートマウントされる。
% ls /foo : % mount : /dev/sdb1 on /foo type ext3 (rw)
関連資料・記事