NILFS for Debian

NILFS2 のパッケージは公式の Debian APTリポジトリ上で利用することができます (lenny以降)。

以下では、NILFS2 のカーネルモジュールとユーザランドツールの公式もしくは非公式のパッケージを APT を使って Debian/GNU Linux 環境に導入する方法を説明します。

利用可能な Debian リリース

カーネルモジュールは互換性のあるカーネルにしか導入できません。 カーネルの互換性はアーキテクチャ以外にカーネルのバージョン番号 (linux-image-2.6.18-1-686 の 2.6.18 の部分) およびABI番号 (linux-image-2.6.18-1-686 の SONAME である 1 の部分) によっても区別されます。 これら番号が一致するモジュールパッケージがあった場合のみ導入が可能です。 NILFS2 の公式の Debian カーネルモジュールは、 2.6.25 以降のカーネルに対してのみ提供されています。

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

lenny もしくは sid を利用している場合にはこのセクションは読み飛ばして下さい。 非公式パッケージのインストールおよびアップデートを行えるようにするには、 あらかじめ以下の2つの設定を行う必要があります。

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

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

 deb http://www.nilfs.org/pub/debian etch main
 deb-src http://www.nilfs.org/pub/debian etch main

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-tools パッケージをインストールします。

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

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

例は apt ツールを使っていますが、 aptitude や GUI ベースのパッケージマネージャも代用できます。

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

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

 $ sudo apt-get install nilfs2-modules
 Reading package lists...
 Building dependency tree...
 Package nilfs2-modules is a virtual package provided by:
   nilfs2-modules-2.6.25-2-vserver-amd64 2.6.25+2.0.2-5
   nilfs2-modules-2.6.25-2-amd64 2.6.25+2.0.2-5
 You should explicitly select one to install.
 E: Package nilfs2-modules has no installation candidate
 $ uname -r
 2.6.25-2-amd64
 $ sudo apt-get install nilfs2-modules-2.6.25-2-amd64

カーネルバージョンとABIの変更に自動的に追従させたい場合は、以下のように nilfs2-modules-2.6-<アーキテクチャ名> のパッケージを指定します。

 $ sudo apt-get install nilfs2-modules-2.6-amd64
 Reading package lists... Done
 Building dependency tree       
 Reading state information... Done
 The following extra packages will be installed:
   nilfs2-modules-2.6.25-2-amd64
 The following NEW packages will be installed:
   nilfs2-modules-2.6-amd64 nilfs2-modules-2.6.25-2-amd64
 0 upgraded, 2 newly installed, 0 to remove and 4 not upgraded.
 Need to get 0B/87.3kB of archives.
 After this operation, 348kB of additional disk space will be used.
 Do you want to continue [Y/n]? y
 ...
 Setting up nilfs2-modules-2.6.25-2-amd64 (2.6.25+2.0.2-5) ...
 Setting up nilfs2-modules-2.6-amd64 (2:2.6.25-5) ...

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

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

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

 $ modinfo nilfs2
 filename:       /lib/modules/2.6.25-2-amd64/extra/nilfs2/nilfs2.ko
 license:        GPL
 version:        2.0.2
 description:    A New Implementation of the Log-structured Filesystem (NILFS)
 author:         NTT Corp.
 srcversion:     9255940F4C7325AD5BFD9F7
 depends:        
 vermagic:       2.6.25-2-amd64 SMP mod_unload 

NILFSパッケージの更新

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

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

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