計算機メモ目次 (目的のページと内容が一致しない場合, 目次から探してください)

Ubuntu 8.04 LTS で1TB以上の規模の大容量 ext3 ファイルシステムを fsck できない


現象
  大量のノードが存在する1TB以上の規模の大容量 ext3 ファイルシステムを fsck すると
  Pass 1 の実行中に以下のようなエラーメッセージが出て完了できないことがある.

    Pass 1: Checking inodes, blocks, and sizes
    Error allocating directory block array: Memory allocation failed
    e2fsck: aborted

原因
  利用できるメモリが足りない

解決作
  1. メモリを増やす(以下のaかb)
    a. 物理的に増やす

    b. スワップ領域を増やす
         次のようにファイルをスワップ領域にして増設するのが楽

           bb if=/dev/zero of=/foo/bar/swapfile bs=1024k count=8192
             (8GB[例]の空ファイルをルートシステム上に作る)
           chmod 600 /foo/bar/swapfile
           mkswap /foo/bar/swapfile
           swapon -v /foo/bar/swapfile
             (手動でのスワップ領域の設定が完了)

         起動時に自動的にスワップ領域が設定されるように /etc/fstab に登録しておく

           /foo/bar/swapfile none swap sw 0 0

  2. Desktop版UbuntuであればServer版カーネルをインストールして再起動
       (Desktop版では使えるメモリが3.5GBを越えられない)

         linux-image-server を synaptic や apt-get でインストール

実状
  当方では物理メモリの増設をしていないが, 解決できていない


計算機メモ目次 (目的のページと内容が一致しない場合, 目次から探してください)
海洋大循環分野
daigo@ocg.aori.u-tokyo.ac.jp