デビアンな生活 linux

デビアンな生活

日本語コンソールベースのDebianTIPS集として始めたが、結局LXDEになってしまった。

BIOS dump

いままで、WindowsでBIOSを覗いていたが、Windowsが動かない場合のlinuxを使わざるをえなくなった。
とりあえずは、
dd if=/dev/mem bs=256 count=1 skip=3985 | od -t x1
でなんとかなった。
引数に16進数が使えないのが面倒。いちいち、変換して確認する必要がある
printf "%d\n" 0xf91
3985

スポンサーサイト

smartmontools in puppy linux

Puppy linuxも4.3.1まで更新され、さらに快適になっている。
起動にgrub4dosが使えるようになったので、Windowsとの共用もさらに便利となった。
いままで、USBで使用していたが、ハードディスクにインストールした。
便利なことに、debianのdebパッケージがそのまま利用できるので、http:/www.debian.orgから、パッケージをダウンロードすれば、Seamonkeyが認識して、簡単にインストールできる。
ハードディスクのチェックに便利なsmartmontoolsをインストールしておく。
# smartctl -A /dev/sda
# smartctl -t short /dev/sda
# smartctl -l selfttest /dev/sda
SMART情報では問題ないが、セルフテストではエラーが起きている。やっぱりそろそろこのハードディスクも危なそう。

ミラーリング

Web用のディレクトリのためにミラーリングが必要になった。
# aptitude
> rsync
# rsync -a --delete --log-file=/var/log/rsync.log /home/data/ /opt/backup
rsyncは、ローカルやリモートのディレクトリのコピーやミラーリングに便利。
バックアップ用であれば、圧縮コピーもできる。

SMARTなハードディスク

ついに壊れかけのハードディスクが壊れちゃいました。
想定されていたので、いろいろなテストやモニタに利用できて、よい経験になりました。
結局、もっとも役立ったのは、やはりSMARTでした。Windowsではあまり役に立たないように感じていましたが、smartmontoolsを利用すると、テストもできて、とても便利です。
# apttitude
> smartmontools
smartdはデフォルトでは動いていないが、継続的なモニタをしない場合は不要。smartctlで実際の操作ができる。
# smartctl -i /dev/hda
一般的なハードディスク情報の表示
# smart -A /dev/hda
よくみるSMARTデータの出力。VALUEが現在、WORSTは現在までの最悪値の指数、THRESH以下になっているとまずい。RAWデータを指数に変換してあるので、少しピンとこない。
# smart -c /dev/hda
SMARTの状態表示。
# smartctl -H /dev/hda
SMARTデータの異常部を表示してくれる。
# smartctl -l error /dev/hda
過去のエラーログの表示。
# smartctl -t short /dev/hda
2分で終わる簡易テスト。
# smartctl -t long /de/hda
全体のテストで、ハードディスクの容量に応じて、時間がかかる。
# smartctl -l selftest /dev/hda
セルフテストの結果表示。実行中のものはリストの最後に表示されるが、終了したものは最初の#1が最新。
# smartctl -a /dev/hda | grep -i temp
全データを表示するので、grepを使わないと見にくい

windows版もあるが、移植が不十分で、RAIDの後ろにあるハードディスクは特別なものしか調査できないので不便。
古いハードディスクは、SMARTがテストもログもサポートしていないので、不便。

不良ハードディスクの再利用

lennyをインストールしたものの動作が不安定であり、調査の結果ハードディスクにエラーがあることが判明。早速、ハードディスクを入れ替えて再インストールして、復活。
そこで、今度はエラーのあるハードデイスクの再利用を試みた。
まずは、badblocksでブロックサイズをファイルシステムに合わせて、ブロックのテスト。
# badblocks -s -v -w -o badlist -p 1 -b 4096 /dev/sda1
しかし、テストのたびにエラーが新しく出てくるので、どうもディスクだけではなく、回路にも異常がありそう。とりあえず、ジャンパで転送速度を半分に落とすと、エラーブロックが固定したので、ext3でフォーマット。その後、エラーブロックを除いて、異常のないことを確認。
# mke2fs -j -c -c -v /dev/sda1
# dumpe2fs -b /dev/sda1 > badlist2
# badblocks -s -v -n -i badlist2 -p 1 -b 4096 /dev/sda1

エラーブロックはなくなったので、信頼性は低いが、とりあえず、使えそうである。
ext3では、フリーズ後の再起動時のファイルチェックが短時間なので、大きなパーティションではext2より便利です。tune2fsで、ext2にジャーナルファイルを追加してext3に変えることができる。

# tune2fs -j /dev/sda2

grub起動用ディスク

ハードディスクの復旧用にGrub起動ディスクを作成した。
緊急時に編集しやすいように、フロッピーディスクをFATでフォーマットし、grubをインストールした。
warningは出るが、動くのでよしとする。mformatはmtoolsパッケージを利用する。
# mformat a:
# mount /dev/fd0 /mnt
# mkdir /mnt/boot
# mkdir /mnt/boot/grub
# cp -a /boot/grub/stage* /mnt/boot/grub
# cp -a /boot/grub/menu.lst /mnt/boot/grub
# cp -a /boot/grub/fat_stage1_5 /mnt/boot/grub
# grub
## root (fd0)
## setup (fd0)
## quit

これで、MBRを上書きしても大丈夫。
menu.lstファイルを編集すれば、起動は自由自在。
起動後のメニュー画面でも、eで編集が行えるので、便利です。
TABでパラメーターの補間をしてくれるので便利です。

Knoppix V6.0.1CD

Debian LennyがLXDEで軽快になったので、旧マシン(cerelon 1.3GHz RAM512MB i810E)でKnoppixにトライ。Knoppixも以前は重かったが、V6.0からlennyベースで再構成され、デスクトップもLXDEに変わって軽快になっている。メモリが少ないためかCDアクセスのために遅くなるので、USBメモリでも使って改善したいが、BIOSがUSB起動に対応していない。そのため、本来はほぼLIVE専用といえるKnoppixだが、ハードディスクにインストールしてみた。
システムツールメニューのなかに、KNOPPIX HD installがあり、ハードディスクにインストールする条件は、SWAP領域1GB以上、reiserfsのパーティションが2GB以上となっている。autoの項目もあるのだが、なぜかパーティショニングに失敗してしまうので、fdiskとmkfsで手動設定してなんとかパーティションを認識して、インストール終了。そこそこ快適に動くし、インストールの段階で、ウインドのエフェクトがオフになったのでさらに軽快。CTRL+Spaceでanthyも動くの日本語もばっちり。
debian-liveに比較すると、動きがより軽快な上に日本語が使えるのでお勧めであるが、PuppyLlinuxと比較すると、解像度がどうしても800x600以上にならなかった点と、なぜかKeyboardがus設定にできなかった点で、劣る。

XOOPS

コンテンツ・マネージメント・システムとして、DebianのパッケージではZope+Ploneがあり、インストールも簡単であったが、どうも情報が少なく使いにくい。そこで、XOOPSをインストールしてみた。
debian etchがutf-8でXOOPSがEUCのため、日本語コードの設定にかなり悩んで手間取って苦労したが、何とかインストールできた。
とりあえず、mbstringの設定は変更しなくてもよかった。
# apptitude
> mysql-server-5.0
> mysql-client-5.0
> php5
> php5-mysql
まず、PHPMySQLのパッケージをインストール
# vi /etc/php5/apache2/php.ini
> extension=mysql.soをコメントアウト
なぜか、PHPからMySQLが参照できていなかったので、修正
# cat > test.php
> <?php phpinfo(); ?>
testファイルをブラウザで実行して、MySQLの項目が表示されていることを確認
# mysql
> GRANT ALL PRIVILEGES on *.* TO username IDENTIFIED BY 'password' WITH GRANT OPTION;
> CREATE DATABASE databasename DEFAULT CHARACTER SET ujis;
> quit
# vi /etc/apache2/conf.d/charset
> AddDefaultCharset none
UTF-8からnoneに変更する

XOOPSのインストールは、XOOPS Cube日本サイトhttp://xoopscube.jp/から、最新のPackage_Legacy_2_1_1.zipをダウンロード。
展開してできたhtmlのサブディレクトリをWebDAVでサーバにアップロードし、apache2のドキュメントトップに移動。
ブラウザで参照するとインストール画面となるので、先に設定したusername, password, dabasenameを入力。
指示通りにインストールが終わったら、管理者を設定して終了。その後も指示通りinstallデイレクトリを削除したり、mainfle.phpのパーミッションを変更するだけでとても簡単。
あとは、モジュールをインストールして、使うのみ。
D3モジュールの初期設定として、mainfile.phpのXOOPS_TRUST_PATHを設定しておくのが少しややこしい。文系のためのXOOPS入門http://xoops.kudok.com/が参考になる。

XOOPSは、なかなか使いやすいうえに反応もZope+Ploneより、早くて感激。ちなみに、ブラウザでの実行はローカルでは難しいので、PPPOEで接続して別IPを取って行った。freeのproxyを経由するより、便利。

ハードディスクのテスト

最近のグーグルの報告では、ハードディスクの故障の予測にSMARTはあまり有効ではなかったとのことなので、結局はバックアップが大事ということになる。

Failure Trends in a Large Disk Drive Population
Eduardo Pinheiro, Wolf-Dietrich Weber and Luiz Andr´e Barroso
Google Inc. 1600 Amphitheatre Pkwy, Mountain View, CA 94043



ということで結局ハードディスクに求められる性能は速度だ!
# hdparm -t /dev/hda
> リードテストで、読み込み速度を確認
# hdparm -i /dev/hda
> ディスクの情報を確認
問題があるようなら、設定を修正する

メモリーテスト

時々page faultが起こるのは、どうもメモリでエラーの様子。メモリチェックのためにmemtest86+をインストール。/bootにmemtest86+.binがインストールされるので、grubのmenu.lstを更新して再起動。
# aptitude
> memtest86+
# update-grub
# reboot
時間はかかったが、ランダムにエラーが発生しているのが確認できた。とりあえず、BIOSの設定を、PC133からPC100にダウンするとエラーの発生がなくなったので、とりあえず良しとした。
memtest86は、更新されていないので、今回は使用せず。
次のページ

FC2Ad