NILFS for Ubuntu

このページでは、NILFS のカーネルモジュールと ユーザランドツール(ユーティリティ・管理ツール)のパッケージを Ubuntu 環境でAPT を使用して導入する方法について説明します。

NILFSのパッケージの一部は公式のAPTリポジトリ上で利用することができます (IntrepidIbex で利用可能)。

以下では、NILFSを本サイト上に用意されたAPTリポジトリから導入する方法 以下の説明では、例として apt ツールを使っていますが、 aptitude や GUI ベースのパッケージマネージャももちろん使用できます。

対応 Ubuntu リリース

以下のリリースのみに対応します。

ユーザランドツールは、これら以外のリリースでも動作は可能です。 カーネルモジュールは互換性のあるカーネルにしか導入できません。

カーネルの互換性はアーキテクチャ以外にカーネルのバージョン番号 (linux-image-2.6.22-14-generic の 2.6.22 の部分) およびABI番号 (linux-image-2.6.22-14-generic の SONAME である 14 の部分) によっても区別されます。 これら番号が一致するモジュールパッケージがあった場合のみ導入が可能です。 例えば古いカーネルを使用している場合には導入できないかもしれません。

本サイトでは新しいカーネル向けにパッケージを提供していきます。 いずれにせよ古いカーネルを使い続けることはセキュリティ上の理由により 好ましくありませんので新しいカーネルの使用をお勧めします。

backports パッケージ(gutsy-backports など)のカーネルには対応していません。

本サイトのAPTリポジトリを使うための設定

本サイトのAPTリポジトリからパッケージのインストールおよびアップデートを 行えるようにするには、あらかじめ以下の2つの設定を行う必要があります。

APT リポジトリの URL は以下の通りです。

また、component には main を指定します。 従って、/etc/apt/sources.list に追加する apt line は以下のようになるでしょう。

 deb http://www.nilfs.org/pub/ubuntu hardy main
 deb-src http://www.nilfs.org/pub/ubuntu hardy main

リリースが gutsy の場合には、hardy の部分が gutsy になります。

NILFSアーカイブの gpg 公開鍵の入手とインストールは以下のようにして行います。

 $ gpg --keyserver hkp://subkeys.pgp.net --recv-keys 38CC8C3FEDB80C09
 ...
 $ gpg --export -a 38CC8C3FEDB80C09 | sudo apt-key add -
 OK
 $ sudo apt-key list
 ...
 pub   1024D/EDB80C09 2008-03-21 [expires: 2011-03-21]
 uid                  NILFS Archive Automatic Signing Key 
 sub   1024g/C02671F0 2008-03-21 [expires: 2011-03-21]

gpg 公開鍵をインストールしなくても APT の利用は可能ですが、 更新操作(apt-get update)などでワーニングが出力されます。

なお GnuPG の詳細については, http://gnupg.org/ などのサイトを御参照下さい。

ユーザランドツールのインストール

nilfs2-utils パッケージをインストールします。

 $ sudo apt-get update
 $ sudo apt-get install nilfs2-utils

公式のリポジトリからインストールする場合には、 nilfs2-utils の代わりに nilfs2-tools を指定して下さい。

カーネルモジュールのインストール

nilfs2-modules パッケージをインストールします。 カーネルのバージョンにあったモジュールをインストールします。

 $ sudo apt-get install nilfs2-modules
 パッケージリストを読み込んでいます...
 依存関係ツリーを作成しています...
 状態情報を読み取っています...
 nilfs2-modules は以下のパッケージで提供されている仮想パッケージです:
   nilfs2-modules-2.6.24-14-xen 2.6.24-14.1
   nilfs2-modules-2.6.24-14-server 2.6.24-14.1
   nilfs2-modules-2.6.24-14-openvz 2.6.24-14.1
   nilfs2-modules-2.6.24-14-generic 2.6.24-14.1
   nilfs2-modules-2.6.24-14-386 2.6.24-14.1
   nilfs2-modules-2.6.24-13-xen 2.6.24-13.1
   nilfs2-modules-2.6.24-13-server 2.6.24-13.1
   nilfs2-modules-2.6.24-13-generic 2.6.24-13.1
   nilfs2-modules-2.6.24-13-386 2.6.24-13.1
   nilfs2-modules-2.6.24-12-xen 2.6.24-12.3
   nilfs2-modules-2.6.24-12-server 2.6.24-12.3
   nilfs2-modules-2.6.24-12-generic 2.6.24-12.3
   nilfs2-modules-2.6.24-12-386 2.6.24-12.3
 インストールするパッケージを明示的に選択する必要があります。
 E: パッケージ nilfs2-modules にはインストール候補がありません
 $ uname -r
 2.6.24-14-generic
 $ sudo apt-get install nilfs2-modules-2.6.24-14-generic
 ...

また、メタパッケージを使って カーネルバージョンとABIの変更に自動的に追従させることができます。 この場合、以下のように nilfs2-modules-<フレーバ名> でパッケージ名を指定します。

 $ sudo apt-get install nilfs2-modules-generic
 パッケージリストを読み込んでいます...
 依存関係ツリーを作成しています...
 状態情報を読み取っています...
 以下の特別パッケージがインストールされます:
   nilfs2-modules-2.6.24-14-generic
 以下のパッケージが新たにインストールされます:
   nilfs2-modules-2.6.24-14-generic nilfs2-modules-generic
 アップグレード: 0 個、新規インストール: 2 個、削除: 0 個、保留: 55 個。
 88.0kB 中 0B のアーカイブを取得する必要があります。
 この操作後に追加で 303kB のディスク容量が消費されます。
 続行しますか [Y/n]? y
 ...

インストール対象のカーネル上で、 ソースから直接コンパイルした NILFS を使用していた場合には、 一旦アンインストールした上で上記パッケージをインストールして下さい。 ソースパッケージのモジュールは make uninstall でアンインストールできます。

 $ cd (nilfs2ソースパッケージの展開場所)/nilfs-2.0.2
 $ sudo make uninstall

現在どの NILFS モジュールが有効になっているかは modinfo コマンドで 確認できます。debパッケージからインストールした NILFS モジュールが 有効になっている場合、filename: の項目が以下のように ubuntu/fs/nilfs2 配下になっています。

 $ modinfo nilfs2
 filename:       /lib/modules/2.6.24-14-generic/ubuntu/fs/nilfs2/nilfs2.ko
 license:        GPL
 version:        2.0.2
 description:    A New Implementation of the Log-structured Filesystem (NILFS)
 author:         NTT Corp.
 srcversion:     C99C753763F9B0F7E9EDCC2
 depends:        
 vermagic:       2.6.24-14-generic SMP mod_unload 586

NILFSパッケージの更新

通常の手順でアップデートできます。

 $ sudo apt-get update
 $ sudo apt-get dist-upgrade

使用中のNILFSモジュールを更新する際には、 更新後に reboot するか、もしくは更新前に使用中の NILFS パーティションを 一旦アンマウントするようにして下さい。