So-net無料ブログ作成

CentOS 6のClamAVのウィルス・チェックでエラーが発生する [CentOS]

[ソフトウェアのバージョン]
・clamav-0.100.0-1.el6.i686 (EPEL のパッケージ)
・clamav-db-0.100.0-1.el6.i686 (EPEL のパッケージ)

1. 発生事象


ClamAV のウィルス・チェックでエラーが発生する。

[エラーメッセージ]
LibClamAV Error: cli_cvdload: Corrupted CVD header
LibClamAV Error: Can't load /var/lib/clamav/daily.cld: Malformed database
ERROR: Malformed database

(補足)
・CentOS 6/7 と Debian 8/9 をマルチブートしており、ウィルス情報を共有している。
 (ウィルス情報: /var/lib/clamav/)
・CentOS 7(EPEL のパッケージ)、Debian 8/9 の ClamAV では発生しない。
・CentOS 6(EPEL のパッケージ) の clamav-0.99-* では発生しない。


2. 対処方法


[古いパージョン(v99.*) の RPM パッケージを入手できる場合]
古いバージョンにバージョンダウンする。

[上記以外の場合]
更新パッケージのリリースを待つ。

(補足)
パッケージのバグのようである。
cf. https://bugzilla.redhat.com/show_bug.cgi?id=1600458


[3. 追記]


nice!(1)  コメント(0) 
共通テーマ:パソコン・インターネット

AVG AntiVirus 2017の起動処理の軽量化 [Windows]

Windows 7 で AVG AntiVirus Free を使用しているが、AntiVirus 2017 に更新してからログオン時の起動処理が非常に重くなってしまった。
以下は、この起動処理を軽量化するために行った対応である。
なお、インストールしているコンポーネントは、ファイルシールド、メールシールドのみである。

1. 実施手順


(1) [AVG Service] サービスの起動開始時期を遅延させる。


・[スタート] -> [プログラム] -> [管理ツール] -> [サービス] を選択
・[AVG Service] を右クリックし、[プロパティ] を選択
・スタートアップの種類を [自動(遅延開始)] に変更

(補足)
・自動(遅延開始) では、約 2 分後に開始される。
・[AVG Antivirus] サービスについては、スタートアップの種類を変更できない。


(2) システムスタートアップ時のルートキット・スキャンを無効化する。


(a) 設定画面の表示


・AVG のアイコンを右クリックし、[開く] を選択
・[メニュー] -> [設定] を選択
・左側の一覧から [トラブルシューティング] を選択


(b) トラブルシューティングの設定の変更


下記の項目を無効化する。

・システムスタートアップ時のルートキット・スキャン
・ブートタイム・スキャン中のダイレクト・ハード・ドライブ・アクセス


2. 備考


(1) AntiVirus 2018 への更新後も同様の効果がある。


プログラムを 18.5.3059(公開日: 2018/06/20) に更新後も同様の効果が得られる。


(2) [AVG Service] サービスが表示されなくなった。


上記の設定後、いつの間にか [AVG Service] サービスが表示されなくなった。
また、代わりに [avgIDSAgent] サービスが表示されるようになった。
なお、avgIDSAgent のスタートアップの種類は手動であり、自動起動されない。



nice!(1)  コメント(0) 
共通テーマ:パソコン・インターネット

CentOS 7.5へのアップデート後の不具合の発生 [CentOS]

CentOS 7.4 から 7.5 へのアップデート後に KVM で不具合が発生する。
詳細は、以下の通りである。

[ソフトウェアのバージョン]
・virt-manager-1.4.3-3.el7.noarch
・libvirt-daemon-3.9.0-14.el7_5.4.x86_64

1. 発生事象


CentOS 7.5 への更新後、KVM で起動できないドメインが発生する。

[エラーメッセージ]
Error starting domain: サポートされない設定: shared access for disk 'hdc' \
requires use of supported storage format
[hdc の設定] - /etc/libvirt/qemu/xxx.xml
<disk type='file' device='disk'>
  <driver name='qemu' type='qcow2'/>
  <source file='/var/lib/libvirt/images/cluster-common.qcow2'/>
  <target dev='hdc' bus='ide'/>
  <shareable/>
  <address type='drive' controller='0' bus='1' target='0' unit='0'/>
</disk>


(補足)
・hdc はクラスタ・ノード間で共有するディスクである。
・何がサポートされない設定なのかが不明である。


2. 対処方法


該当するパッケージを CentOS 7.4 のものにバージョンダウンする。

[該当するパッケージ]
・libvirt-*
・virt-install-*
・virt-manager-*


2-1. CentOS 7.4 のバックアップ・データが存在する場合の手順


(1) バックアップ・データを使用し、CentOS 7.4 に戻す。


(2) 下記のパッケージ以外をアップデートする。

libvirt-*
virt-install-*
virt-manager-*


(補足)
該当するパッケージの詳細については、備考を参照。


2-2. CentOS 7.4 のバックアップ・データが存在しない場合の手順


該当するパッケージを CentOS 7.4 のものにバージョンダウンする。

(補足)
該当するパッケージの詳細については、備考を参照。


[3. 備考]


nice!(1)  コメント(0) 
共通テーマ:パソコン・インターネット

MDデバイスのアラインメントとサイズの変更 [Linux]

1. 背景


ディスク 2 台を使用し、パーティション毎に RAID 1 を構成(mdadm を使用) している。
/boot は MD デバイス上に直接ファイルシステムを作成し、その他は MD デバイス上に LVM を作成し、LV 上にファイルシステムを作成している。

この環境において、ディスクの 1 台が壊れ、新しいディスクへの交換が必要となった。
新しいディスクは AFT 対応で、他方は AFT 未対応のディスクである。

作業の所要時間を重視するなら、下記のような手順での対応となる。
・新しいディスクのパーティション構成を交換前と全く同じにする。
 (AFT 対応のためのアラインメントの変更を行わない。)
・RAID 1 を構成するパーティション間の同期を行う。

今回は、今後の AFT 対応ディスクへの交換を見据え、パーティション構成(アラインメント、サイズ)の変更を行うことにした。
・パーティションの作成には Debian 8 の fdisk (util-linux 2.25.2) を使用する。

以下は、備忘録として、実施手順をまとめたものである。


2. 実施手順


(1) ディスクの交換


・OS のシャットダウン(電源 OFF を含む)
・ディスクの交換
・電源 ON (OS のブートを含む)

(補足)
交換するディスクが /dev/sda の場合には、ブートローダーのインストール(外部メディアから起動してのブートローダーのインストール等)が必要となる。


(2) 新しいディスクでのパーティションの作成


・セクタの開始位置が 8 の倍数になるようにする。
・サイズは、RAID 1 を構成する他方のパーティションのサイズ以上にする。
・この時点では、パーティションのタイプを指定しない(default: 83)。
・全パーテョションの作成後に、設定を反映するために OS を再起動する。


(3) 新しいディスクのパーティション・タイプの変更


RAID 1 を構成するパーティションについて、タイプを fd に変更する。


(4) MD デバイスへのデバイス(新しいディスク上のパーティション)の追加

# mdadm [--manage] <raid-device> --add <device>


・すべての MD デバイスについて実施する。
・データの同期が順次開始される。
・小さい方のデバイスのサイズ分のみが RAID 1 構成となる。

# cat /proc/mdstat


データの同期が終了するのを待つ。


(5) 既存ディスクでのパーティションの削除

# mdadm [--manage] <raid-device> --fail <device>


・MD デバイスの当該デバイス(パーティション)を切り離す(故障状態にする)。
・すべての MD デバイスについて実施する。

# mdadm [--manage] <raid-device> --remove <device>


・MD デバイスから当該デバイス(パーティション)を削除する。
・すべての MD デバイスについて実施する。

# mdadm --misc --zero-superblock <device>


・MD デバイスから削除したパーティションのスーパー・ブロックを初期化する。
・該当するすべてのパーティションについて実施する。

その後、下記の手順を実施する。
・既存ディスク上の全パーティションを削除する。
・全パーテョションの削除後に、設定を反映するために OS を再起動する。


(6) 既存ディスクでのパーティションの作成


・上記の (2) の手順と同様。
・パーティションのサイズは、RAID 1 構成の他方のパーティションと同じにする。


(7) MD デバイスへのデバイス(既存ディスク上のパーティション)の追加


上記の (3)、(4) の手順と同じ。


(8) MD デバイスのサイズ変更

# mdadm --grow <raid-device> --size=max
または
# mdadm --grow <raid-device> -z max


MD デバイスを構成するデバイス(パーティション)のサイズまで拡張される。


(9) MD デバイス上の PV のサイズ変更(LVM を作成した MD デバイスの場合)

# pvresize <raid-device>


・PV のサイズが、MD デバイスのサイズまで拡張される。
・PV のサイズが拡張されることにより、VG のサイズも拡張される。


nice!(1)  コメント(0) 
共通テーマ:パソコン・インターネット

Postfixのinet_interfacesの設定に関するエラーが発生する [Debian]

1. 発生事象


/etc/postfix/main.cf の inet_interfaces の設定に関するエラーが発生する。

[ソフトウェアのバージョン]
postfix 2.11.3-1+deb8u2 (on Debian 8)
postfix 3.1.8-0+deb9u1 (on Debian 9)
mdadm 3.3.2-5+deb8u2 (on Debian 8)
mdadm 3.4-4+b1 (on Debian 9)

[エラーメッセージ]
postfix/sendmail[pid]: fatal: parameter inet_interfaces: no local interface \
found for 192.168.x.x

[inet_interfaces の設定値]
inet_interfaces = $myhostname, localhost

・192.168.x.x は eth0 の IP アドレスである。
・Postfix の起動/再起動時には発生しない。


2. 原因


mdadm の mdmonitor.service の不具合である。

・OS 起動時に mdmonitor からメール通知を行う場合に当該事象が発生する。
・ネットワーク I/F が使用できない状態でのメール送信のためと思われる。

(補足)
・メール通知自体は正常に機能する。
 (127.0.0.1 が使用されたものと思われる。)
・mdmonitor は、mdadm のモニタ機能である。
・mdmonitor.service は、'/sbin/mdadm --monitor --scan' を実行する。
・'/sbin/mdadm --monitor --scan -t' でテスト用にメールを送信できる。


3. 対処方法


下記のいずれかの手順を実施する。

(1) mdmonitor.service の変更

(変更内容)
[Unit] 欄の最後に下記の設定を追加する。
After=network.target


(補足)
/etc/systemd/system/mdmonitor.service の作成
または
/lib/systemd/system/mdmonitor.service の変更


(2) /etc/postfix/main.cf の変更

(変更前)
inet_interfaces = $myhostname, localhost

(変更後)
inet_interfaces = all        … 他ノードから接続を行う場合
または
inet_interfaces = localhost  … 他ノードから接続を行わない場合

[4. 備考]


nice!(1)  コメント(0) 
共通テーマ:パソコン・インターネット

Debian9.4へのアップデートでの不具合の改善 [Debian]

Debian 9.4 において、Debian 9.2 以降で発生した Postfix の不具合が改善されている。
詳細は、以下の通りである。

1. ソフトウェアのバージョン


postfix 3.1.8-0+deb9u1
postfix-sqlite 3.1.8-0+deb9u1


2. 改善された不具合


/etc/postfix/main.cf の mynetworks の設定が反映されるようになった。

・該当するアドレスの 25 番ポートが LISTEN 状態になる。
 ('netstat -an | grep :25' の実行結果で確認できる。)


3. 備考


発生していた不具合の詳細
cf. http://dan-project.blog.so-net.ne.jp/2017-10-08



nice!(1)  コメント(0) 
共通テーマ:パソコン・インターネット

ファイルパスの不要な/の削除 [Linux]

シェルスクリプトで、ファイルパスの不要な / を削除しようとして少々手間取ってしまった、
以下は、備忘録としてまとめたものである。

1. 要求仕様


ファイルパスから不要な / を取り除く。
・/ が連続する部分を / に変更
・最後の / を削除


2. 実行例


(1) sed の場合


(a) 基本正規表現を使用する場合

% echo ..//aa//bb//cc// | sed -e 's!/\{2,\}!/!g' -e 's!\([^/]\)/$!\1!'
../aa/bb/cc
% echo /// | sed -e 's!/\{2,\}!/!g' -e 's!\([^/]\)/$!\1!'
/


(b) 拡張正規表現を使用する場合

% echo ..//aa//bb//cc// | sed -r -e 's!/+!/!g' -e 's!([^/])/$!\1!'
../aa/bb/cc
% echo /// | sed -r -e 's!/+!/!g' -e 's!([^/])/$!\1!'
/


(c) 失敗例

% echo ..//aa//bb//cc// | sed -e 's!/*!/!g' -e 's!\([^/]\)/$!\1!'
/././a/a/b/b/c/c


(2) awk の場合

% echo ..//aa//bb//cc// | \
awk '{gsub(/\/+/, "/"); r=gensub(/([^/])\/$/, "\\1", 1); print r}'
../aa/bb/cc
% echo /// | \
awk '{gsub(/\/+/, "/"); r=gensub(/([^/])\/$/, "\\1", 1); print r}'
/


(補足)
・gsub() および sub() では "\\1" が機能しない。
・gensub() の戻り値は変換後の文字列である(元の文字列を変更しない)。


3. sed の正規表現


nice!(0)  コメント(0) 
共通テーマ:パソコン・インターネット

Google検索の国名・現在地の表示の無効化 [misc]

Google 検索のページ下部に国名・現在地が表示されるが、邪魔なので表示の無効化を行った。
詳細は、以下の通りである。

[ソフトウェアのバージョン]
・Web ブラウザ: Firefox 52.6.0 ESR
・Firefox Add-on: Adblock Plus 2.8.2

1. 実施手順


Adblock Plus のフィルタに下記の設定を追加する。

www.google.co.jp##div[class$="_Ubu"]
www.google.com##div[class$="_Ubu"]

[追記]


nice!(0)  コメント(0) 
共通テーマ:パソコン・インターネット

/dev/dm-0から/dev/mapper/*への変換 [Debian]

[ソフトウェアのバージョン]
・OS: Debian GNU/Linux 8
・lvm2 2.02.111-2.2+deb8u1
・mdadm 3.3.2-5+deb8u2

1. 発生事象


Debian 8 において、'df /' の出力でデバイス・パスが /dev/dm-0 と表示される。

・/ は、mdadm+LVM 構成での LV である。
・/ 以外では、/dev/mapper/* と表示される。
・動作上の問題はない。
・GRUB 設定の root= で /dev/mapper/* を指定しても状況は変わらない。

(補足)
・Debian 9 では発生しない。
 (lvm2 2.02.168-2、mdadm 3.4-4+b1)
・CentOS 6 では発生しない。
 (lvm2-2.02.143-12.el6_9.1.i686、mdadm-3.3.4-8.el6.i686)
・CentOS 7 では発生しない。
 (lvm2-2.02.171-8.el7.x86_64、mdadm-4.0-5.el7.x86_64)


2. 変換方法


下記のいずれかの手順で、/dev/mapper/ 内でのデバイス・パスが取得できる。


(1) /sys/block/ からのデバイス・パスの取得

# cat /sys/block/dm-0/dm/name
vg_linux-debian_root


・/sys/block/dm-0 は ../devices/virtual/block/md0/ へのシンボリック・リンク


(2) /dev/mapper/ からのデバイス・パスの取得

# ls -l /dev/mapper/ | grep -w dm-0 | awk '{print $(NF -2)}'
vg_linux-debian_root


(補足)
/dev/mapper/vg_linux-debian_root は /dev/vg_linux/debian_root でもアクセス可能


3. 備考


(1) 対応するデバイス・パスを一覧表示するスクリプト

#!/bin/sh
for i in `ls -d /sys/block/dm-*`; do
    echo "/dev/`basename $i`" ... "/dev/mapper/`cat $i/dm/name`"
done


nice!(1)  コメント(0) 
共通テーマ:パソコン・インターネット

Debian 9.2へのアップデート後の不具合の発生 [Debian]

Debian 9.1 から 9.2 へのアップデート後に Postfix の不具合が発生する。
詳細は、以下の通りである。

[ソフトウェアのバージョン]
・postfix 3.1.6-0+deb9u1
・postfix-sqlite 3.1.6-0+deb9u1

1. 発生事象


/etc/postfix/main.cf の mynetworks の設定が反映されない。

・該当するアドレスの 25 番ポートが LISTEN 状態にならない。
 ('netstat -an | grep :25' の実行結果で確認できる。)


2. 対処方法


Debian 9.1 のパッケージにバージョンダウンする。

(1) パッケージの入手


https://pkgs.org/ 等から、下記のパッケージをダウンロードする。

・postfix-sqlite_3.1.4-7_i386.deb
・postfix_3.1.4-7_i386.deb


(2) パッケージのインストール

# dpkg -i postfix_3.1.4-7_i386.deb postfix-sqlite_3.1.4-7_i386.deb


(3) Postfix の再起動

# /etc/init.d/postfix restart
または
# systemctl restart postfix


nice!(1)  コメント(0) 
共通テーマ:パソコン・インターネット