ファイルのオーナやパーミッションの情報を含め、Windows (とりあえず Windows XP かな) と Linux (最近のカーネル) で共有できる暗号化ボリュームを作成する。
※ここには手順の概略しか書いてないので、詳細は自分で確認してください。また、これを試したことで大事なデータを失ってもわたしは一切責任を持てません。
ファイルのオーナやパーミッションの情報を含め、Windows と Linux で共有できる暗号化ボリュームを作成する。
1. Linux: LUKS で暗号化ボリュームを作成する。
1.1. cryptsetup をインストールする。LUKS に対応したものであること。
# apt-get install cryptsetup あるいは # rpm -ivh cryptsetup-luks など
1.2. 適当なディスク (以下 /dev/sdb) を設置する。
1.3. 不良ブロックの検査をする。
# badblocks -c 10240 -s -w -t random -v /dev/sdb
1.4 (optional). ディスクをランダムデータで埋める (やりたければ)。
# dd if=/dev/urandom of=/dev/sdb
1.5. 暗号化ボリュームにするパーティション (以下 /dev/sdb1) を切る。システムタイプは Linux にしておく (が、たぶんなんでもいい)。
# fdisk /dev/sdb パーティションを作成して保存
1.6. パスフレーズを考える。20文字以上であること。スペースが入ってもよい。
1.7. /dev/sdb1 を LUKS ボリュームにする。
# cryptsetup --verbose --verify-passphrase いろいろなオプション luksFormat /dev/sdb1 「YES」(大文字) で確認してパスフレーズを入力して再度パスフレーズを入力
1.8. テスト。
# cryptsetup luksOpen /dev/sdb1 luks1 パスフレーズを入力
device-mapper によって、/dev/mapper/luks1 が作成される (他の場所に作成されるかもしれない)。
2. Windows: FreeOTFE でマウントして NTFS でフォーマットする。
2.1. FreeOTFE をインストールする。
2.2. FreeOTFE を起動し、メニューの [File]-[Linux Volume]-[Mount Partition] を選択。
2.3. パーティションを選択する。/dev/sdb1 は 2 番のディスク (Disk #1) の最初のパーティション。
2.4. パスフレーズ (1.6. 参照) を入力する。マウントするドライブ (以下 Z:) を選択する。
2.5. マウントする。
2.6. エクスプローラで Z: ドライブを選択し、NTFS でフォーマットする (クイックフォーマットでよい)。
2.7. テスト。Z: ドライブにファイルやディレクトリを作ってみる。
3. Linux/Windows: ユーザマッピングを作成する。
Windows の場合を示す。
3.1. ntfs-3g サイトから usermap ユーティリティをダウンロードする (4. で作成する ntfs-3g にも同梱されている)。
3.2. 暗号化ボリュームをマウントする (2.2.-2.5. 参照)。
3.2. コマンドラインプロンプトを起動し、usermap.exe を実行する。
C:> usermap.exe Z:
いろいろ聞かれるが、最後の「ログインしているユーザ」の質問に自分の Unix ユーザ名、「グローバルグループを作るか」の質問に「y」を答えておけばよいだろう。
3.3. Z:\.NTFS-3G\UserMapping を適当に修正する。こんなふうにする:
# Generated by usermap for Windows, v 1.1.0 :users:S-1-5-21-2991617172-3329320597-2066345473-513 nezumi:nezumi:S-1-5-21-2991617172-3329320597-2066345473-1008
4. Linux: ntfs-3g を更新する。
ntfs-3g の現在の安定版 (1.5130) はユーザマッピングに対応していない。対応するまで待つのが安全かもしれない。
4.1. 念のため、つぎのものを用意しておく。
- ntfs-3g (および libntfs-3gXX が必要ならそれも) の現在のバイナリパッケージ。
4.2. 自分のインストールしているディストリビューションに ntfs-3g-1.5130AR.X があれば、それをインストールする。ないか (ないものが多い)、特定のディストリビューションを使わず Linux を自力でビルドしているのなら、Advanced NTFS-3G Features のページから ntfs-3g-1.5130AR.X をダウンロードし、ビルドし、インストールする (deb でパッケージ化したものがここにあるようだが動作は保証しない)。
4.3. リブートする。正常に起動することを確認する。
5. Linux: 暗号化ボリュームを NTFS としてマウントする。
5.1. 暗号化ボリュームの設置。
# cryptsetup luksOpen /dev/sdb1 luks1 パスフレーズを入力
hal がリムーバブルデバイスをサポートしていたりすると、ここで /dev/mapper/luks1 がなにか適当な場所 (/media/disk など) にマウントされるかもしれない。されないときは、自分でマウントする。
# mount -t ntfs-3g /dev/mapper/luks1 /mnt
5.2. マウントされ、ファイルのオーナ、グループ、パーミッションがマップされていることを確認する。
$ mount | grep /mnt $ ls -la /mnt
参照
- http://www.saout.de/tikiwiki/tiki-index.php?page=EncryptedDeviceUsingLUKS
- http://www.freeotfe.org/docs/Linux_volumes.htm
- http://pagesperso-orange.fr/b.andre/advanced-ntfs-3g.html
続き