ある時、バックアップ用に今動いているサーバーと同じ型番のマザーボード(ASRockのAM1H−ITX)で新規インストールをしていた時のエラー。
このエラーどうもブートするDISKを間違えているみたいなので、まずはBIOSの設定を確かめる(このマザーは”DEL”でBIOSに)
案の定二つあるHARD DISK のOSをインストールしていないDISKからの起動になっていたので、変更し再起動。
今度は GRUB で止まったまま、ウンでもスンでもない。
困ったときはレスキューモードの起動。早速インストールDVDから起動。
画面が出たら上から三番目の Resucure installed system を選び起動、
最初に言語の選択、これは英語のままの方がいい。次がキーボードの選択、自分に合わせるがだいたいは jp106。次はネットワークだが、
今回はブートの問題なのでネットワークは無。その次の画面で Continue を選び。
次の画面で既存の領域が /mnt/sysimage にマウントされると表示が出る(確か2回出た気がする)
そして選択画面が出るので Shell Start Shell を選ぶとシェルになる。(確かパスワードは聞かれなかった)
早速、インストールされた領域に移る
# chroot /mnt/sysimage
でもって、grubの再構築
# grub-install /dev/sda
sdaは自分の環境に合わせる。
ごちょごちょと表示が出て(覚えていない)/boot/grub/device.map が表示されるが、ここが
(hd1) /dev/sda
(hd0) /dev/sdb
になっている。hd1などの定義をしているのは、多分昔からの互換性の為だと思う。
ともかくhd0がsdaでなくてはいけないので、vi(エディター、使い方は色んなWEBを参考にして) を起動し
(hd0) /dev/sda
(hd1) /dev/sdb
に変更し,保存後再起動。
今度は Cannot mount selected partition と出た。
再度、レスキューモードで起動後、chroot してから vi で /boot/grub/grub.conf を編集
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You do not have a /boot partition. This means that
# all kernel and initrd paths are relative to /, eg.
# root (hd1,0) ここも本来は hd0,0だがコメントなので直していない
# kernel /boot/vmlinuz-version ro root=/dev/sda1
# initrd /boot/initrd-[generic-]version.img
#boot=/dev/sdb ここも本来は sdaだがコメントなので直していない
default=0
timeout=5
splashimage=(hd0,0)/boot/grub/splash.xpm.gz (hd1,0)から(hd0,0)に
hiddenmenu title CentOS (2.6.32-431.el6.x86_64)
root (hd0,0) (hd1,0)から(hd0,0)に
kernel /boot/vmlinuz-2.6.32-431.el6.x86_64 ro root=UUID=4c914c3c-7ad5-4056-982a-2b2f75fcef48 rd_NO_LUKS
rd_LVM_LV=Swap/kvm5 rd_NO_MD crashkernel=auto KEYBOARDTYPE=pc KEYTABLE=jp106 LANG=ja_JP.UTF-8 rd_NO_DM rhgb quiet
initrd /boot/initramfs-2.6.32-431.el6.x86_64.img
教訓:インストール時は最低のシステムで行い、いろいろな物は付け無い方がいい
今回はHARD DISKは1台だけであればトラブルは起きなかった筈。
確かサーバー製作でOSのインストール時、CentOS 6.5 はドライバーのインストールを尋ねられ、仕方なく6.4のLIVE DVDからインストールした。
今回は理由は不明だが、インストール出来た。マザーボードのバージョンが変わったか?

8月29日から9月20日のデーター(ここをクリック)
このPDFファイルを見ると分かるが、9月8日にサーバーを移設し、消費電流が減少したおかげで、ほとんど補充電が入らなくなった。残念ながらデーターが無いが、9月20日の天気は雨だったが、何とか21日も電池が切り替わり、今日現在(9/23)まで補充電は入っていない。但し今度は過充電保護を考えなくてはならないかも、今日は天気が良く、電池が早い時間にパラレルになり、PM1時で、31.9Vになっている。このまま少し様子を見て過充電になりそうか見てみる。
2014ー10ー14追記今の所、過充電にはなっていない。
この期間では天気が極端に悪い日が3日間あったが、補充電は1回しか入っていない、しめしめ。
10月5日にほとんど充電が無く、補充電は入ったが、次の6日も天気はよくないが、補充電なしに持っている(以前は確実に補充電が入っていた)
9月21日から10月14日までのデーター(ここをクリック)。11月8日から12月1日までのデーター(ここをクリック)。
今日、mysqlにrootでログインしようとしたら、
Access denied for user 'root'@'localhost' (using password: NO)
とログイン出来ない。パスワードは間違いなく合っている。原因は不明
google先生に尋ねるとここに回答が有った
まずはmysqlを止める
# service mysqld stop
セーフモードのオプションを付けて起動
# mysqld_safe --skip-grant-tables &
mysqlにログイン
# mysql -u root ← セーフモードで--skip-grant-tablesを付けているのでパスワードなしで入れる
使用するデーターベースをmysqlにする
mysql> use mysql;
新しい(元の)パスワードを設定
mysql> update user set password=PASSWORD("XXXXXX") where User='root'; ← XXXXXXは設定したいパスワード
mysqlを抜ける
mysql> quit
mysqlに設定したパスワードで入れるかチェック
# service mysqld restart ← mysqlを再起動しているのでflush privileges;はやらなくてもよい
# mysql -u root -pXXXXXX ← XXXXXXは設定したパスワード -pとパスワードの間にスペースを入れてはいけない
mysql>
と帰ってくればOK、でmysqlを抜ける。
mysql> quit
そしてmysqlにパスワードなしで入れないことを確認しておく事

データーはPDFにしています。6月23日から7月5日はここをクリックして下さい。7月1日だけはここをクリックして下さい。7月7日から30日はここをクリックして下さい
これを見ると一つ問題が見つかりました。通常は補充電が終わり、どちらか(設定の関係で必ず電池Aから放電)その時点でもう片方の電池はほぼ終了電圧の26.5Vになっていますが、設定値(VR)が電池Aより僅かに高いと思われますが、まだ充電終了になっていませんので、OPアンプの出力がHのままです。昼間で太陽がそこそこあればこの間に設定電圧に達し、問題ありませんが、夜だったり、天気が悪いとHからLに成らず、電池Aが24Vに達すると電池Bに切り替わらず、補充電が始まってしまいます。片方の電池だけに片寄るのはよくないので、改良します。補充電が終わるとHになるのはTC4011の11番ピンですので、ここから、LM358の2番ピンと6番ピンにコンデンサーを介し接続すれば、どちらかが終了電圧に達すると、両電池のOPアンプはLになり問題なくなります。
回路図はここをクリックして下さい(オレンジが今回追加した所)

先日問題が起き、今までの制御回路に問題がありました。これは過充電防止の為両電池をパラにした後どちらかの電池が25.5Vになるとパラレルを外し、どちらか一方の電池からの放電にしますが、その際EXORのTC4030の3番ピンはLからHになります。その際、両電池とも電圧が高いのでa'とb'はそれぞれLになっております。と言う事はcは不定ですが、これがHになっていたとすると、TC4030の11番ピンはLになり、切り替えリレーがOFFになり、電池Aからの放電になりますが、ここで問題です。電池Aの電圧が24V以下になったら、aはLからHになりますが、RSFFの出力(C点)は元々Hだったので、切り替えリレーはOFFのままで、電池Bに切り替わりませんので、ずーっと電池Aは放電しっ放しになってしまいます。(今まではいろいろな調整をしている中でこの状態にならなかったので、気がつきませんでした。
早速改造をしますが、方法はどちらか一方の電池が25.5VになったらTC4030の1、2番ピンをLにするようにコンデンサーでOPアンプを反転します。そうすれば通常の状態になり、問題はなくなります。回路図はここをクリック1(青の枠が今回の追加分)
本日(2014/06/26)サーバー製作で制作中のKVMホストでアップデートがあったので、行ったらネットワークに繋がらなくなってしまった。kernelのアップデートも含まれており、アップデート後のOSのバージョンはLinux version 2.6.32-431.20.3.el6.x86_64になっていた。
途方に暮れていたら閃いた。そう言えば最初のインストールの時にr8169ネットワークドライバーがインストールされ、ネットにつながらなかった。多分KERNELのアップデート時に間違って再インストールされたのでは?さっそく調べる
# lsmod | grep r81
r8169 59831 0
mii 5376 1 r8169
と表示されやっぱりr8169がインストールされている。原因が分かれば後は簡単。ダウンロードしてあったr8168ドライバーをインストールする。(ドライバーのありかは https://www.kinryokai.net/modules/news/article.php?storyid=21 を参照)
# cd ダウンロードしてある場所
# ./autorun.sh
Check old driver and unload it.
rmmod r8169
Build the module and install
Backup r8169.ko
rename r8169.ko to r8169.bak
DEPMOD 2.6.32-431.20.3.el6.x86_64
load module r8168
Completed.
REALTEKのドライバーはスクリプトになっていて、r8169がインストールされて入れば、自動で削除してくれる。

先日、Redhat Enterprise Version 7 がリリースされ、CentOS 7 も間もなくとのアナウンスがあった。RedHatのリリースを読むと(ほんの一部分だけだが)、デフォルトのファイルシステムが ext4 から XFS に変更になり、MySQLがMariaDBに変更され、Microsoft Active Directory (AD) support(この意味がよくわからないが、sambaのバージョン4は既にアクティブ・ディレクトリーがサポートされている。デフォルトではバージョン3の様だったのでそのせい?)がサポートされるそうだ。
ここまで変更されると、このサーバーはCentOS7を待って、作り直した方が良さそうなので、製作を一時中断します。
2014ー07ー10追記:先日、CentOS バージョン7がリリースされた。早速製作しようと思ったが、少し調べてみる。
バージョン6からのアップグレードがサポートされているようだ。その場合ファイルシステムは?(ext4:XFS)、データーベースは?(mysql:mariaDB)。特にmysqlはそこら中のプログラムで使っており、変に変更されても困る(多分変更されないと思うが)。また新規に作っていくとデフォルトのDBはmariaDBなので多分互換性はかなりあるとは思うがどうなのか?mysqlを使っているのは、postfix, xoops, bacula, phpmyadmin, webmail(roundcube)
もう少しすればWEBに諸先輩方が参考になるコンテンツをアップしてくれると思うので、他人任せだが、もう少し様子見。

参考URL:https://www.kinryokai.net/modules/news/article.php?storyid=162
http://centossrv.com/postfix-targrey.shtml
現時点(2014-06-12)ではpostfixとpostgreyのバージョンは参考URLの前者と同じです。
2014年9月8日にやっと本運用になりました。今の所不具合はありませんが、何かありましたらここで発表します。
遅延応答したら即座にSMTPプロセスを終了するパッチを施行したPOSTFIX (rpm):ここをクリック
targreyパッチをあてたpostgrey (rpm): ここをクリック
ここからは、上の二つのファイルをrootにダウンロードした前提で進めます。
まずはpostfixのインストール
# rpm -Uvh --force /ダウンロードしたdirectory/postfix-2.6.6-2.2.el6_1.x86_64.rpm
インストールの確認
# rpm -qa|grep postfix
postfix-2.6.6-2.2.el6_1.x86_64 と表示されればOK
次にpostgreyですがその前に必要なパッケージのインストール
# yum -y install postgrey && rpm -e postgrey
「注:2014-08-02:今日テストしたらエラーが出た。本来はEPELのミラーに在る筈だが、無くなっているみたい。私の場合はEPELのミラーはftp,iij.ad.jpに設定されているが、ここには無くなっている。試しにftp,riken.jpもチェックしたがやはり無い。でも本家のhttp://dl.fedoraproject.org/pub/epel/6/x86_64/repoview/postgrey.htmlには置いてある。どうなっているんだ!!ともかくこれは付随してインストールが必要なパッケージのためのコマンドなので、無視して直接次に進んでもよい。但し環境によっては、必要なパッケージをインストールしろと言われるかも?必要なのは色々な下記のperlのパッケージなど」
これは perl-BerkeleyDB perl-IO-Multiplex perl-Net-DNS perl-Net-Server をインストールするため
# wget apt.sw.be/redhat/el6/en/i386/rpmforge/RPMS/perl-Parse-Syslog-1.10-1.el6.rf.noarch.rpm
# rpm -ivh perl-Parse-Syslog-1.10-1.el6.rf.noarch.rpm
でpostgreyのインストール
# rpm -Uvh /ダウンロードしたdirectory/postgrey-1.34-1.rf.noarch.rpm
/etc/postfix/main.cfの設定
smtpd_recipient_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
permit_auth_destination,
reject_unauth_destination,
−−追加(ここから)−−
check_recipient_access hash:$config_directory/whitelist_recipient
check_client_access hash:$config_directory/whitelist_client
check_client_access regexp:$config_directory/permit_client_nots25r
check_policy_service inet:60000
permit
smtpd_data_restrictions =
permit_mynetworks
permit_sasl_authenticated
reject_unauth_destination
check_recipient_access hash:$config_directory/whitelist_recipient
check_client_access hash:$config_directory/whitelist_client
check_client_access regexp:$config_directory/permit_client_nots25r
check_policy_service inet:60000
permit
−−追加(ここまで)−−
taRgrey用Postfix設定ファイルダウンロード
# wget http://k2net.hakuba.jp/spam/postfix.conf.2.tar.gz
解凍
# tar zxvf postfix.conf.2.tar.gz
各ファイルをコピー
# cp postfix.conf.2/whitelist_recipient /etc/postfix/
# cp postfix.conf.2/whitelist_client /etc/postfix/
# cp postfix.conf.2/permit_client_nots25r /etc/postfix/
# rm -fr postfix.conf.2/
# rm -f postfix.conf.2.tar.gz
whitelist_recipientのDB化
# postmap /etc/postfix/whitelist_recipient
whitelist_clientのDB化
# postmap /etc/postfix/whitelist_client
/etc/rc.d/init.d/postgreyの設定
#OPTIONS="--unix=$SOCKET" ←コメントアウト
OPTIONS="--dbdir=$DBPATH --inet=127.0.0.1:60000 --tarpit=125 --targrey --retry-count=2 --delay=3600" ←追記
postgreyの起動、postfix再起動など
# service postgrey start
# chkconfig postgrey on
# service postfix restart
その後メールのテストをする
postfixにパッチを当てているため、自動アップデートを無効にする。
# yum -y install yum-versionlock
# sed -i 's/enabled = 0/enabled = 1/g' /etc/yum/pluginconf.d/versionlock.conf
# touch /etc/yum/pluginconf.d/versionlock.list
# rpm -q postfix >> /etc/yum/pluginconf.d/versionlock.list
# rpm -q postgrey >> /etc/yum/pluginconf.d/versionlock.list
postfixのアップデートがあったらメールで知らせてくれるスクリプトの作成。もっともソースもアップデートされていなけば出来ないが
# gedit /etc/cron.daily/yum-check-update
#!/bin/bash
# versionlockパッケージアップデートチェックスクリプト
YUMTMP=$(mktemp)
for pkg in `cat /etc/yum/pluginconf.d/versionlock.list`
do
chkname="$chkname `rpm -qi $pkg|grep Name|awk '{print $3}'`"
done
yum --noplugins check-update $chkname > $YUMTMP
[ $? -eq 100 ] && cat $YUMTMP
rm -f $YUMTMP
# chmod +x /etc/cron.daily/yum-check-update
アップデート検知時はroot宛にメール通知されるので、最新版で再インストールする

一通り設定が終わったので、再度見直しておきます。エラーの殆どは設定ファイルのスペルミスとか記入漏れです。
このメールサーバーは本チャンで動いているサーバーと同じネットワーク・レンジにあり、ルーターの設定は本チャンのメールサーバーに転送する設定ですので、外部からはテスト出来ません。このホストはKVMのサブホストとして動いていますので、とりあえず親ホストにthunderbirdをインストールし、設定して行きます。マイグレーションを簡単にするためにホスト名は現在本チャンのサーバーと被っていますので、thunderbirdのホストの/etc/hostsにこのメールサーバーを登録しておきホスト名で問い合わせ時にこのサーバーのIPアドレスを返すようにしておきます。
次にpostfixadminでドメインやメアドを作り、それをthunderbirdに設定して送受信をテストします。その際外のメアドには発信が出来ますので、自分のISPのメアドにもコピーを入れメールが来るのを確かめておきます。うまくいかない時は /var/log/maillog にログがありますので参考にします。
テストが終わったら暗号化をしていきます。
*サーバー証明書作成
参考URL:http://centossrv.com/postfix-tls.shtml
# cd /etc/pki/tls/certs/
# make mail.pem
前略
Country Name (2 letter code) [GB]:JP ← 国名応答
State or Province Name (full name) [Berkshire]:Tokyo ← 都道府県名応答
Locality Name (eg, city) [Newbury]:Shinjuku ← 市区町村名応答
Organization Name (eg, company) [My Company Ltd]:centossrv.com ← サイト名応答(なんでもいい)
Organizational Unit Name (eg, section) []: ← 空ENTER
Common Name (eg, your name or your server's hostname) []:mail.centossrv.com ← メールサーバー名応答※
Email Address []:postmaster@centossrv.com ← 管理者メールアドレス応答
# cd
main.cfの変更、下記のコードのコメントを取って有効化
# gedit /etc/postfix/main.cf
前略
# SMTPS
smtpd_use_tls = yes
smtpd_tls_cert_file = /etc/pki/tls/certs/mail.pem
smtpd_tls_key_file = /etc/pki/tls/certs/mail.pem
smtpd_tls_session_cache_database = btree:/var/lib/postfix/smtpd_scache
master.cfの変更、下記のコードのコメントを取って有効化
# gedit /etc/postfix/master.cf
前略
smtps inet n - n - - smtpd
-o smtpd_tls_wrappermode=yes
-o smtpd_sasl_auth_enable=yes
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
-o milter_macro_daemon_name=ORIGINATING
後略
参考URLではtlsmgrのコメントを取っていましたが、デフォルトで外れていました。
ここで、postfixと念のためdovecotも再起動
# service postfix restart
# service dovecot restart
再度一連のテストをやって確かめておく。