﻿# 如何重建 ClamAV 已毀損的資料庫

今天一早發現信箱裡連一封信都沒收到，感覺非常詭異，進入 Postfix 主機檢查後才發現原來 ClamAV 防毒引擎掛掉了，進一步查看 /var/log/clamav/clamav.log 紀錄發現出現了 ERROR: Malformed database 的錯誤，這時必須重建資料庫才能解決了，以下是重建的步驟。

首先，發生錯誤的訊息如下：

```
Fri Apr 16 11:28:33 2010 -> +++ Started at Fri Apr 16 11:28:33 2010Fri Apr 16 11:28:33 2010 -> clamd daemon 0.92.1 (OS: linux-gnu, ARCH: i386, CPU: i486)Fri Apr 16 11:28:33 2010 -> Log file size limit disabled.Fri Apr 16 11:28:33 2010 -> Reading databases from /var/lib/clamavFri Apr 16 11:28:33 2010 -> Not loading PUA signatures.Fri Apr 16 11:28:33 2010 -> ERROR: Malformed database
```

這時我進入 /var/lib/clamav 目錄查看有以下內容：

```
total 20drwxr-xr-x 4 clamav clamav 4096 Apr 16 11:23 ./drwxrwxrwt 4 root   root   4096 Apr 16 11:40 ../drwxr-xr-x 2 clamav clamav 4096 Apr 16 11:23 daily.inc/drwxr-xr-x 2 clamav clamav 4096 Apr 16 01:32 main.inc/-rw------- 1 clamav clamav 1872 Apr 16 10:33 mirrors.dat
```

由於資料庫已經毀損，所以我們可以將此目錄所有檔案刪除準備重建：

```
rm -rf /var/lib/clamav/*
```

然後我們重新下載/更新防毒資料庫，此時會將資料庫完整重建，且過程大約會花費 1 ~ 2 分鐘，這段時間將無法啟動 ClamAV 防毒引擎。

```
/usr/bin/freshclam
```

最後再啟動 ClamAV 即可恢復正常。
