web-dev-qa-db-ja.com

e2fsckのメモリ不足を防ぎますか?

私はUbuntu11.10を512MB RAMでスワップなしで実行しているボックスを持っています。これには、ext3ファイルシステムが接続された1TB USB HDDがあります。アイドル状態で、約60MBしか使用していません。e2fsckを実行すると、メモリが不足すると、OOMキラーが起動し、e2fsckが停止します。

E2fsckを実行してメモリ使用量を減らすためのトリックはありますか?

私は走った:

Sudo e2fsck -n /dev/sdb1

[スワップを有効にするかメモリを追加するように言わないでください-スワップを有効にできません。メモリを追加することは明らかな長期的な修正です。今すぐfsckを実行する方法が欲しいです。]

2
bstpierre

Ubuntu 11.10のe2utilsのバージョンがわからないのですが、かなり最近の場合は、次のような/etc/e2fsck.confファイルを作成できます。

 [scratch_files] 
 directory = /tmp/e2fs_scratch

最初にそのディレクトリを作成してから、e2fsckを実行します。スクラッチファイルを使用すると、メモリ使用量が大幅に削減されますが、e2fsckの実行は非常に遅くなります。

もちろん、ルートfsをチェックする必要がある場合は、スクラッチディレクトリが書き込み可能である必要があるため、別のルートで起動する必要があります。

3
haimg

これは本当に古いトピックだと思いますが、自分で問題が発生したため、スクラッチファイルが機能しませんでした。どうやって回避したかを提案したいと思いました。

私は12TBのファイルサーバーを管理しており、これを回避する方法は、外付けドライブに12GBのスワップファイルを作成することでした。速度は遅くなりましたが、なんとか通過できました。

# dd if=/dev/zero of=/mnt/external/swapfile1 bs=1024 count=12582912
# mkswap /mnt/external/swapfile1
# swapon /mnt/external/swapfile1

それでもswapfile1という名前を付けたので、それでも十分でない場合は、同じ手順で2番目のswapfile2を作成できます。

スワップファイルを自動的にマウントするには、この行を/ etc/fstabに追加します。

/mnt/external/swapfile1 swap swap defaults 0 0

もちろん、ドライブはそのラインの前にマウントする必要があります=)

2
Lonnie