検証用のHDDにSL6をインストールしようとしたら
「Disk sda contains BIOS RAID metadata 〜」
などと言われて内蔵ディスクが認識されず、インストールができなかった。
なので、dmraid コマンドでメタデータを消してやった。
# dmraid -r -E /dev/sdX
2011/12/25
2011/05/11
partedコマンドでUSB HDDをfat32でフォーマットしてみた。
# parted
GNU Parted 1.8.1
/dev/hda を使用
GNU Parted へようこそ! コマンド一覧を見るには 'help' と入力してください。
(parted) select /dev/sdd
/dev/sdd を使用
(parted) mklabel
警告: The existing disk label on /dev/sdd will be destroyed and all data on this
disk will be lost. Do you want to continue?
はい(Y)/Yes/いいえ(N)/No? y
新しいディスクラベル? [gpt]? msdos
(parted) print
モデル: SAMSUNG HM160HC (scsi)
ディスク /dev/sdd: 160GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: msdos
番号 開始 終了 サイズ タイプ ファイルシステム フラグ
(parted) mkpart
パーティションの種類? primary/プライマリ/extended/拡張? primary
ファイルシステムの種類? [ext2]? fat32
開始? 0
終了? 160GB
(parted) print
モデル: SAMSUNG HM160HC (scsi)
ディスク /dev/sdd: 160GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: msdos
番号 開始 終了 サイズ タイプ ファイルシステム フラグ
1 32.3kB 160GB 160GB プライマリ lba
(parted) quit
通知: 必要であれば /etc/fstab を更新するのを忘れないようにしてください。
# mount -t vfat /dev/sdd1 /media
mount: wrong fs type, bad option, bad superblock on /dev/sdd1,
missing codepage or other error
In some cases useful info is found in syslog - try
dmesg | tail or so
# mkfs.vfat -F 32 /dev/sdd1
mkfs.vfat 2.11 (12 Mar 2005)
GNU Parted 1.8.1
/dev/hda を使用
GNU Parted へようこそ! コマンド一覧を見るには 'help' と入力してください。
(parted) select /dev/sdd
/dev/sdd を使用
(parted) mklabel
警告: The existing disk label on /dev/sdd will be destroyed and all data on this
disk will be lost. Do you want to continue?
はい(Y)/Yes/いいえ(N)/No? y
新しいディスクラベル? [gpt]? msdos
(parted) print
モデル: SAMSUNG HM160HC (scsi)
ディスク /dev/sdd: 160GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: msdos
番号 開始 終了 サイズ タイプ ファイルシステム フラグ
(parted) mkpart
パーティションの種類? primary/プライマリ/extended/拡張? primary
ファイルシステムの種類? [ext2]? fat32
開始? 0
終了? 160GB
(parted) print
モデル: SAMSUNG HM160HC (scsi)
ディスク /dev/sdd: 160GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: msdos
番号 開始 終了 サイズ タイプ ファイルシステム フラグ
1 32.3kB 160GB 160GB プライマリ lba
(parted) quit
通知: 必要であれば /etc/fstab を更新するのを忘れないようにしてください。
# mount -t vfat /dev/sdd1 /media
mount: wrong fs type, bad option, bad superblock on /dev/sdd1,
missing codepage or other error
In some cases useful info is found in syslog - try
dmesg | tail or so
# mkfs.vfat -F 32 /dev/sdd1
mkfs.vfat 2.11 (12 Mar 2005)
2011/03/20
CentOS5がBCASカードを認識しなかったのをなんとかした。
PT2のドライバが作成できたので、次はBCASカードを認識させる。
BCASカードが認識しているのかを確認するために pcsc-tools に入っている pcsc_scan コマンドを使ってみる。
カードリーダーが認識していない?
今回使っているカードリーダーはPT2を買った時に一緒に買ったCI691(AA)というカードリーダー。
PT2の設定情報では、よくNTT製のがつかわれているため、この辺りに原因が潜んでいそう。
調べてみたところ、pcscd はカードリーダーのデバイスIDなどをチェックするとのこと。
ということは、どこかにある設定ファイルにデバイスIDなどを追加するだけでよさそう。
まず、追加する必要のある設定を確認する。
カードリーダー側の情報はlsusbコマンドで確認できる。
分かりづらいけれど上から2行目のRealtek〜がCI691。
CI691のベンダーIDが0bdaでプロダクトIDが0165らしい。
この情報をどこかに追加したらよさそう。というわけで調べてみると、CentOSでは/usr/lib64/pcsc/drivers/ifd-ccid.bundle/Contents/Info.plistに追加するといけるらしい。
※64bit版の場合。32bit版だと/usr/lib/pcsc・・・になるかと。
こんな感じ。
追加したら pcscd を再起動させて、pcsc_scan コマンドで認識しているかを確認する。
BCASカードが認識しているのかを確認するために pcsc-tools に入っている pcsc_scan コマンドを使ってみる。
# pcsc_scan PC/SC device scanner V 1.4.10 (c) 2001-2007, Ludovic RousseauCompiled with PC/SC lite version: 1.3.3 Scanning present readers Waiting for the first reader...
カードリーダーが認識していない?
今回使っているカードリーダーはPT2を買った時に一緒に買ったCI691(AA)というカードリーダー。
PT2の設定情報では、よくNTT製のがつかわれているため、この辺りに原因が潜んでいそう。
調べてみたところ、pcscd はカードリーダーのデバイスIDなどをチェックするとのこと。
ということは、どこかにある設定ファイルにデバイスIDなどを追加するだけでよさそう。
まず、追加する必要のある設定を確認する。
カードリーダー側の情報はlsusbコマンドで確認できる。
# lsusb Bus 004 Device 001: ID 0000:0000 Bus 004 Device 002: ID 0bda:0165 Realtek Semiconductor Corp. Bus 002 Device 001: ID 0000:0000 Bus 001 Device 001: ID 0000:0000 Bus 005 Device 001: ID 0000:0000 Bus 006 Device 001: ID 0000:0000 Bus 007 Device 001: ID 0000:0000 Bus 003 Device 001: ID 0000:0000 Bus 003 Device 003: ID 1130:9177 Tenx Technology, Inc. Bus 003 Device 002: ID 045e:0024 Microsoft Corp. Trackball Explorer
分かりづらいけれど上から2行目のRealtek〜がCI691。
CI691のベンダーIDが0bdaでプロダクトIDが0165らしい。
この情報をどこかに追加したらよさそう。というわけで調べてみると、CentOSでは/usr/lib64/pcsc/drivers/ifd-ccid.bundle/Contents/Info.plistに追加するといけるらしい。
※64bit版の場合。32bit版だと/usr/lib/pcsc・・・になるかと。
<key>ifdVendorID</key> <array> <string>0x08E6</string> <string>0x08E6</string> : <string>0x0bda</string> <-追加 </array> <key>ifdProductID</key> <array> <string>0x2202</string> : <string>0x0165</string> <-追加 </array> <key>ifdFriendlyName</key> <array> <string>Gemplus Gem e-Seal Pro</string> : <string>CI691</string> <-追加 </array>
こんな感じ。
追加したら pcscd を再起動させて、pcsc_scan コマンドで認識しているかを確認する。
# pcsc_scan PC/SC device scanner V 1.4.10 (c) 2001-2007, Ludovic RousseauCompiled with PC/SC lite version: 1.3.3 Scanning present readers 0: CI691 (20070818000000000) 00 00 Sun Mar 20 01:57:34 2011 Reader 0: CI691 (20070818000000000) 00 00 : :
2011/03/19
CentOS5にPT2をインストールしてみた。
PT2が発売されてからかなりの時間が経過しているので、CentOS環境にインストールした情報も多くあり、基本的には詰まったりしないはずですがmakeした時にエラーがでてしまった。
/lib/modules/`uname -r`/build/ 配下が存在しないとのことです。
単純に kernel-devel パッケージがインストールされていませんでした。
というわけで yum install kernel を実行してから再度 make を実行。
今度はうまくいきましたとさ。
ドライバのダウンロードも含めて、以下の手順で実行。
手順中に出てくる hg コマンドは mercurial パッケージに入っているけれど、デフォルトのリポジトリには存在しないので yum ではインストールできない。
調べたところ、fedora 向けに公開されているパッケージが使えるということなので、ここからダウンロードして手動でインストール。
# make revh=`hg parents --template '#define DRV_VERSION "r{rev}:{node|short}"\n#define DRV_RELDATE "{date|shortdate}"\n' 2>/dev/null`; \ if [ -n "$revh" ] ; then \ echo "$revh" > version.h; \ else \ printf "#define DRV_VERSION \""1.1.0"\"\n#define DRV_RELDATE \""2010-01-27"\"\n" > version.h; \ fi make -C /lib/modules/`uname -r`/build M=`pwd` V=0 modules make: *** /lib/modules/2.6.18-194.32.1.el5/build: そのようなファイルやディレクトリはありません. 中止. make: *** [pt1_drv.ko] エラー 2
/lib/modules/`uname -r`/build/ 配下が存在しないとのことです。
単純に kernel-devel パッケージがインストールされていませんでした。
というわけで yum install kernel を実行してから再度 make を実行。
今度はうまくいきましたとさ。
ドライバのダウンロードも含めて、以下の手順で実行。
# mkdir -p /usr/local/src/pt2 # cd /usr/local/src/pt2/ # hg clone http://hg.honeyplanet.jp/pt1/ pt2 requesting all changes adding changesets adding manifests adding file changes added 120 changesets with 308 changes to 115 files updating working directory 31 files updated, 0 files merged, 0 files removed, 0 files unresolved # cd pt2/driver # make # make install # insmod /lib/modules/`uname -r`/kernel/drivers/video/pt1_drv.ko # ls -l /dev/pt1* crw-rw-rw- 1 root root 253, 0 3月 19 22:38 /dev/pt1video0 crw-rw-rw- 1 root root 253, 1 3月 19 22:38 /dev/pt1video1 crw-rw-rw- 1 root root 253, 2 3月 19 22:38 /dev/pt1video2 crw-rw-rw- 1 root root 253, 3 3月 19 22:38 /dev/pt1video3
手順中に出てくる hg コマンドは mercurial パッケージに入っているけれど、デフォルトのリポジトリには存在しないので yum ではインストールできない。
調べたところ、fedora 向けに公開されているパッケージが使えるということなので、ここからダウンロードして手動でインストール。
mkfsができない?
ようやくサーバのセットアップを始めたと思ったらファイルシステムが作成できない状況に遭遇。
システムが使用しているとのことだけど、心当たりはなし。
lsofやfuserを実行しても使用している形跡はないし、何が原因だろうと調べたら。
前回テストしたLVMの情報消し忘れでしたとさ。
# mkfs /dev/sda1 mke2fs 1.39 (29-May-2006) /dev/sda1 is apparently in use by the system; will not make a filesystem here! # mkfs /dev/sdb1 mke2fs 1.39 (29-May-2006) /dev/sdb1 is apparently in use by the system; will not make a filesystem here! # mkfs /dev/sdc1 mke2fs 1.39 (29-May-2006) /dev/sdc1 is apparently in use by the system; will not make a filesystem here!
システムが使用しているとのことだけど、心当たりはなし。
lsofやfuserを実行しても使用している形跡はないし、何が原因だろうと調べたら。
# vgdisplay -v --- Physical volumes --- PV Name /dev/sda : PV Name /dev/sdc : PV Name /dev/sdb
前回テストしたLVMの情報消し忘れでしたとさ。
2011/02/12
LVMのミラーリングを壊してみた。
ミラーリングしているLogicalVolumeのディスクを稼働中に外すことにより、ディスク不良が発生した場合の状況と復旧方法を確認してみる。
前回作ったLVM領域を適当なところにマウントして、テスト用のファイルを用意します。
注意:動作中のディスクは絶対にremoveしないでください。
使用中にremoveしたもんだからI/O errorが発生してる。
前回作ったLVM領域を適当なところにマウントして、テスト用のファイルを用意します。
# mount /dev/testvol/testlog /mnt/testdir/ # cd /mnt/testdir # wget http://ftp.riken.jp/Linux/centos/5.5/isos/x86_64/CentOS-5.5-x86_64-LiveCD.iso --2011-02-12 12:32:58-- http://ftp.riken.jp/Linux/centos/5.5/isos/x86_64/CentOS-5.5-x86_64-LiveCD.iso ftp.riken.jp をDNSに問いあわせています... 134.160.38.1 ftp.riken.jp|134.160.38.1|:80 に接続しています... 接続しました。 HTTP による接続要求を送信しました、応答を待っています... 200 OK 長さ: 728184832 (694M) [application/octet-stream] `CentOS-5.5-x86_64-LiveCD.iso' に保存中 100%[=============================================================================================>] 728,184,832 3.53M/s 時間 3m 18s 2011-02-12 12:36:16 (3.51 MB/s) - `CentOS-5.5-x86_64-LiveCD.iso' へ保存完了 [728184832/728184832] # ls CentOS-5.5-x86_64-LiveCD.iso lost+found次にディスク不良を想定して、稼働中のディスクをremoveします。
注意:動作中のディスクは絶対にremoveしないでください。
# umount /mnt/testdir/ # cat /proc/scsi/scsi Attached devices: Host: scsi0 Channel: 00 Id: 00 Lun: 00 Vendor: silicon Model: -power Rev: 0.00 Type: Direct-Access ANSI SCSI revision: 02 Host: scsi1 Channel: 00 Id: 00 Lun: 00 Vendor: ATA Model: WDC WD10EADS-00L Rev: 01.0 Type: Direct-Access ANSI SCSI revision: 05 Host: scsi2 Channel: 00 Id: 00 Lun: 00 Vendor: ATA Model: SAMSUNG HD103SI Rev: 1AG0 Type: Direct-Access ANSI SCSI revision: 05 Host: scsi3 Channel: 00 Id: 00 Lun: 00 Vendor: ATA Model: WDC WD10EADS-00L Rev: 01.0 Type: Direct-Access ANSI SCSI revision: 05 # echo "scsi remove-single-device 2 0 0 0 " > /proc/scsi/scsi # cat /proc/scsi/scsi Attached devices: Host: scsi0 Channel: 00 Id: 00 Lun: 00 Vendor: silicon Model: -power Rev: 0.00 Type: Direct-Access ANSI SCSI revision: 02 Host: scsi1 Channel: 00 Id: 00 Lun: 00 Vendor: ATA Model: WDC WD10EADS-00L Rev: 01.0 Type: Direct-Access ANSI SCSI revision: 05 Host: scsi3 Channel: 00 Id: 00 Lun: 00 Vendor: ATA Model: WDC WD10EADS-00L Rev: 01.0 Type: Direct-Access ANSI SCSI revision: 05ディスクをremoveしたら、LVMの状態を確認。
使用中にremoveしたもんだからI/O errorが発生してる。
# lvs -a -o +devices LV VG Attr LSize Origin Snap% Move Log Copy% Convert Devices testlog testvol -wi-ao 5.00G /dev/sdb(0) # tail /var/log/messages Feb 12 12:23:04 localhost ntpd[2775]: kernel time sync enabled 0001 Feb 12 12:26:49 localhost ntpd[2775]: synchronized to 202.224.32.4, stratum 2 Feb 12 12:51:53 localhost kernel: ata2.00: disabled Feb 12 12:51:59 localhost kernel: scsi 2:0:0:0: rejecting I/O to dead device Feb 12 12:51:59 localhost lvm[2145]: Mirror device, 253:2, has failed. Feb 12 12:51:59 localhost lvm[2145]: Device failure in testvol-testlog Feb 12 12:51:59 localhost kernel: scsi 2:0:0:0: rejecting I/O to dead device Feb 12 12:52:00 localhost last message repeated 55 times Feb 12 12:52:00 localhost lvm[2145]: Repair of mirrored LV testvol/testlog finished successfully. Feb 12 12:52:02 localhost lvm[2145]: No longer monitoring mirror device testvol-testlog for events # dmesg | tail scsi 2:0:0:0: rejecting I/O to dead device scsi 2:0:0:0: rejecting I/O to dead device scsi 2:0:0:0: rejecting I/O to dead device scsi 2:0:0:0: rejecting I/O to dead device scsi 2:0:0:0: rejecting I/O to dead device scsi 2:0:0:0: rejecting I/O to dead device scsi 2:0:0:0: rejecting I/O to dead device scsi 2:0:0:0: rejecting I/O to dead device scsi 2:0:0:0: rejecting I/O to dead device scsi 2:0:0:0: rejecting I/O to dead deviceremoveしたディスクを戻します。
# cat /proc/scsi/scsi Attached devices: Host: scsi0 Channel: 00 Id: 00 Lun: 00 Vendor: silicon Model: -power Rev: 0.00 Type: Direct-Access ANSI SCSI revision: 02 Host: scsi1 Channel: 00 Id: 00 Lun: 00 Vendor: ATA Model: WDC WD10EADS-00L Rev: 01.0 Type: Direct-Access ANSI SCSI revision: 05 Host: scsi3 Channel: 00 Id: 00 Lun: 00 Vendor: ATA Model: WDC WD10EADS-00L Rev: 01.0 Type: Direct-Access ANSI SCSI revision: 05 # echo "scsi add-single-device 2 0 0 0 " > /proc/scsi/scsi # cat /proc/scsi/scsi Attached devices: Host: scsi0 Channel: 00 Id: 00 Lun: 00 Vendor: silicon Model: -power Rev: 0.00 Type: Direct-Access ANSI SCSI revision: 02 Host: scsi1 Channel: 00 Id: 00 Lun: 00 Vendor: ATA Model: WDC WD10EADS-00L Rev: 01.0 Type: Direct-Access ANSI SCSI revision: 05 Host: scsi3 Channel: 00 Id: 00 Lun: 00 Vendor: ATA Model: WDC WD10EADS-00L Rev: 01.0 Type: Direct-Access ANSI SCSI revision: 05 Host: scsi2 Channel: 00 Id: 00 Lun: 00 Vendor: ATA Model: SAMSUNG HD103SI Rev: 1AG0 Type: Direct-Access ANSI SCSI revision: 05無事に認識(Attached)されたようです。
# dmesg | tail sdc: Write Protect is off sdc: Mode Sense: 00 3a 00 00 SCSI device sdc: drive cache: write back SCSI device sdc: 1953525168 512-byte hdwr sectors (1000205 MB) sdc: Write Protect is off sdc: Mode Sense: 00 3a 00 00 SCSI device sdc: drive cache: write back sdc: unknown partition table sd 2:0:0:0: Attached scsi disk sdc sd 2:0:0:0: Attached scsi generic sg2 type 0LVMの状態を見てみると、メタデータが不正だとかでVolumeGroupから外されてた。
# lvs -a -o +devices WARNING: Inconsistent metadata found for VG testvol - updating to use version 9 Removing PV /dev/sdc (M9T2Zc-HHF1-OWcd-Ehx9-scGl-ARiZ-LdrYsx) that no longer belongs to VG testvol LV VG Attr LSize Origin Snap% Move Log Copy% Convert Devices testlog testvol -wi-ao 5.00G /dev/sdb(0) # vgs VG #PV #LV #SN Attr VSize VFree testvol 2 1 0 wz--n- 1.82T 1.81T # pvs PV VG Fmt Attr PSize PFree /dev/sdb testvol lvm2 a- 931.51G 926.51G /dev/sdc lvm2 -- 931.51G 931.51G /dev/sdd testvol lvm2 a- 931.51G 931.51G復旧しましょう。
# pvcreate /dev/sdc Physical volume "/dev/sdc" successfully created # pvs PV VG Fmt Attr PSize PFree /dev/sdb testvol lvm2 a- 931.51G 926.51G /dev/sdc lvm2 -- 931.51G 931.51G /dev/sdd testvol lvm2 a- 931.51G 931.51G # vgextend testvol /dev/sdc Volume group "testvol" successfully extended # pvs PV VG Fmt Attr PSize PFree /dev/sdb testvol lvm2 a- 931.51G 926.51G /dev/sdc testvol lvm2 a- 931.51G 931.51G /dev/sdd testvol lvm2 a- 931.51G 931.51G # vgs VG #PV #LV #SN Attr VSize VFree testvol 3 1 0 wz--n- 2.73T 2.72TLogicalVolumeを停止してからコンバート。
# lvchange -an /dev/testvol/testlog # lvconvert -m 1 /dev/testvol/testlog Conversion starts after activation # lvchange -ay /dev/testvol/testlog # lvs -a -o +devices LV VG Attr LSize Origin Snap% Move Log Copy% Convert Devices testlog testvol mwi-a- 5.00G testlog_mlog 4.22 testlog_mimage_0(0),testlog_mimage_1(0) [testlog_mimage_0] testvol Iwi-ao 5.00G /dev/sdb(0) [testlog_mimage_1] testvol Iwi-ao 5.00G /dev/sdd(0) [testlog_mlog] testvol lwi-ao 4.00M /dev/sdc(0) # mount /dev/testvol/testlog /mnt/testdir/ # ls /mnt/testdir CentOS-5.5-x86_64-LiveCD.iso lost+found
2011/02/11
preタグがwebkit系ブラウザで改行された。
コマンドの実行結果を改行されたくなかったのでpreタグを使ったのですが
なぜかchrome、safariでは有効にならずに改行されてしまいました。
色々調べたところword-wrapが影響している様子。
cssにword-wrapとoverflowを追加したところ、うまくいった様子。
なぜかchrome、safariでは有効にならずに改行されてしまいました。
色々調べたところword-wrapが影響している様子。
cssにword-wrapとoverflowを追加したところ、うまくいった様子。
pre { word-wrap: normal; overflow: auto; }
LVMのミラーリングを作ってみた。
HDDを冗長化するためにmdadmのRAID1ではなくLVMのミラーリングを試してみる。
まずはPhysicalVolumeとVolumeGroupを作成。
/dev/sddはログらしいけど、これがなくなったらどうなるのやら。
というわけで実験してみましょう。
まずはPhysicalVolumeとVolumeGroupを作成。
# pvcreate /dev/sd[bcd]
Physical volume "/dev/sdb" successfully created
Physical volume "/dev/sdc" successfully created
Physical volume "/dev/sdd" successfully created
# vgcreate testvol /dev/sd[bcd]
Volume group "testvol" successfully created
# pvs
PV VG Fmt Attr PSize PFree
/dev/sdb testvol lvm2 a- 931.51G 931.51G
/dev/sdc testvol lvm2 a- 931.51G 931.51G
/dev/sdd testvol lvm2 a- 931.51G 931.51G
# vgs
VG #PV #LV #SN Attr VSize VFree
testvol 3 0 0 wz--n- 2.73T 2.73T
LogicalVolumeは-mオプションを指定して作成。# lvcreate -L 5GB -m 1 -n testlog testvol
Logical volume "testlog" created
# lvs -a -o +devices
LV VG Attr LSize Origin Snap% Move Log Copy% Convert Devices
testlog testvol mwi-a- 5.00G testlog_mlog 100.00 testlog_mimage_0(0),testlog_mimage_1(0)
[testlog_mimage_0] testvol iwi-ao 5.00G /dev/sdb(0)
[testlog_mimage_1] testvol iwi-ao 5.00G /dev/sdc(0)
[testlog_mlog] testvol lwi-ao 4.00M /dev/sdd(0)
/dev/sdbと/dev/sdcでミラーリングされているらしい。/dev/sddはログらしいけど、これがなくなったらどうなるのやら。
というわけで実験してみましょう。
登録:
投稿 (Atom)