Skip to content
Go back

【CAPEv2】解析データをSSDからHDDへ逃がす:シンボリックリンクではなくBind Mountを使う

マルウェア解析システムのCAPEv2を運用していると、避けて通れないのが「ディスク容量問題」です。 特に /opt/CAPEv2/storage/ 配下には、解析ごとのメモリダンプやバイナリ、スクリーンショットが蓄積されるため、高速なSSDがあっという間に枯渇します。

今回、「本体はSSDのまま、重い解析データだけを外部HDDに逃がす」 という構成変更を行いました。その際、「シンボリックリンク」を用いた方法でハマり、「バインドマウント(Bind Mount)」 で解決した経緯と手順を記録します。

実装手順

「バインドマウント」を使用して、安全かつ確実にデータをHDDへ移行する手順です。

前提環境

1. HDDの確認とフォーマット

まず、増設したHDDを確認します。

lsblk
# 出力例:
# sda   1T  (SSD)
# sdb   4T  (外付け HDD) -> ここでは /dev/sdb1 と仮定

※初回のみ実施:HDDを ext4 でフォーマットします(データは消えます)。

sudo mkfs.ext4 /dev/sdb1

2. マウントポイントの作成

まず、物理的なHDDをマウントする場所を作ります。

sudo mkdir -p /mnt/cape_storage

3. 自動マウント設定 (/etc/fstab)

ここが重要です。再起動しても設定が維持されるよう /etc/fstab を編集します。 今回は 「1. HDD自体のマウント」「2. CAPEディレクトリへのバインドマウント」 の2行が必要です。

まずUUIDを確認:

sudo blkid /dev/sdb1
# 例: UUID="abcd-1234-xxxx"

/etc/fstab に追記:

# 1. HDD自体をシステムにマウント
UUID=abcd-1234-xxxx  /mnt/cape_storage  ext4  defaults,noatime  0  2

# 2. CAPEのstorageディレクトリへバインドマウント (Bind Mount)
/mnt/cape_storage/storage  /opt/CAPEv2/storage  none  bind  0  0

4. サービスの停止

データ移動中の整合性を保つため、CAPE関連のサービスを停止します。

sudo systemctl stop cape
sudo systemctl stop cape-processor
sudo systemctl stop cape-web
# 環境によっては cuckoo* の場合もあり

5. データの移動とディレクトリ準備

既存のデータをHDD側に移動し、マウント先となる空ディレクトリを作成します。

# 1. データをHDDへ移動
# ※ /mnt/cape_storage は手順3の設定反映前なら手動mountが必要: sudo mount /dev/sdb1 /mnt/cape_storage
sudo mkdir -p /mnt/cape_storage/storage
sudo rsync -av /opt/CAPEv2/storage/ /mnt/cape_storage/storage/

# 2. 元のディレクトリを空にする(マウントポイントにするため)
# 安全のためバックアップしてから削除推奨
sudo mv /opt/CAPEv2/storage /opt/CAPEv2/storage_bk
sudo mkdir /opt/CAPEv2/storage

# 3. 権限の修正(念のため)
sudo chown -R cape:cape /mnt/cape_storage/storage
sudo chown cape:cape /opt/CAPEv2/storage

6. マウントの適用

fstab の設定を反映させます。

sudo mount -a

確認コマンド:

df -h | grep cape
# または
findmnt | grep storage

/opt/CAPEv2/storage がマウントされているように見えれば成功です。

7. サービスの再開と動作確認

sudo systemctl start cape
sudo systemctl start cape-processor
sudo systemctl start cape-web

WebUIから解析タスクを流し、HDD側にデータが書き込まれているか確認します。

ls -l /mnt/cape_storage/storage/analyses/
# 新しいタスクIDのディレクトリが増えていればOK

まとめ

WebサーバーやDBのデータディレクトリを移動させる際、シンボリックリンクは手軽ですが、権限やセキュリティ設定でハマる要素が多いのかもしれません。今回は Bind Mount が、トラブルの少ない最適解でした。


Share this post on:

Previous Post
【CAPEv2】20万件のマルウェアを捌く:KVM 5並列解析環境の構築全手順
Next Post
【Ubuntu】NetplanでIPアドレスを固定する手順(パーミッション警告の対処法付き)