iPod 4GをLinuxの外付けHDDとして使う

iPodの4G(click wheel)が発掘されました。容量は20Gしかありません。

Linuxノートの外付け暗号化HDDとして余生を送らせることにしました。

システムの確認

Linux Mint 13 Mayaを使用しています。

$ uname -a
Linux mintmini 3.2.0-23-generic #36-Ubuntu SMP Tue Apr 10 20:41:14 UTC 2012 i686 i686 i386 GNU/Linux

これにディスクモードにしたiPodを接続すると、/dev/sdbで認識されました。

fdiskでパーティションテーブルを見てみます。

$ sudo fdisk -l /dev/sdb

Disk /dev/sdb: 20.0 GB, 20000267776 bytes
ヘッド 255, セクタ 63, シリンダ 2431, 合計 39063023 セクタ
Units = セクタ数 of 1 * 512 = 512 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
ディスク識別子: 0x20202020

デバイス ブート      始点        終点     ブロック   Id  システム
/dev/sdb1              63       80324       40131    0  空
/dev/sdb2           80325    39054014    19486845    b  W95 FAT32

今回は/dev/sdb2をそのまま使用します。

では、作業をするためにアンマウントしましょう。

$ sudo umount /dev/sdb2

暗号化したボリュームを作る

cryptsetup luksFormatコマンドを使用して、/dev/sdb2に暗号化されたボリュームを作成します。

$ sudo cryptsetup luksFormat --verify-passphrase /dev/sdb2
WARNING!
========
This will overwrite data on /dev/sdb2 irrevocably.

Are you sure? (Type uppercase yes): YES
Enter LUKS passphrase: 
Verify passphrase:

途中3回ほどプロンプトが表示されます。

Are you sure? (Type uppercase yes):は、処理を続けて良いかの確認です。 指定されたパーティションは初期化されてしまうので、注意してください。良ければ大文字でYESと入力します。

Enter LUKS passphrase:のところではパスフレーズを入力します。HDDを使用するためのものです。 Verify passphrase:は、入力したパスフレーズの確認のため、もう一度おなじパスワードを入力します。

入力したパスフレーズが一致していない場合はPassphrases do not match.と表示されて、処理が中断されます。

ファイルシステムを作る

先ほど作成したボリューム上にファイルシステムを作成します。今回はext4で作成します。

まずは、暗号化されたボリュームを使用できるようにします。ここでは、ihdd0という名前をとりあえず付けています。

$ sudo cryptsetup luksOpen /dev/sdb2 ihdd0
Enter passphrase for /dev/sdb2:

プロンプトが表示されるので、暗号化ボリュームを作成するときに使用したものと同じパスフレーズを入力してください。 入力したパスフレーズが一致していない場合はNo key available with this passphrase.と表示されますので、 もう一度パスフレーズの入力をやり直してください。

入力できたら、暗号化されたボリュームが見えることを確認しましょう。

$ ls /dev/mapper/
control  ihdd0

では、/dev/mapper/ihdd0にファイルシステムを作りましょう。 ファイルシステムの種類やパラメータによるチューニングはお好きにどうぞ。 今回はext4を使用します。ラベル名はihddにしました。

$ sudo mkfs.ext4 -O dir_index,extent,filetype,has_journal -L ihdd /dev/mapper/ihdd0
mke2fs 1.42 (29-Nov-2011)
Filesystem label=ihdd
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
1218224 inodes, 4872325 blocks
243616 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=0
149 block groups
32768 blocks per group, 32768 fragments per group
8176 inodes per group
Superblock backups stored on blocks: 
  32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
  4096000

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

これで使用する準備が整いました。

残りの端々

先程作成したファイルシステムを、とりあえず/mntにマウントして、残りの作業を行います。

$ sudo mount /dev/mapper/ihdd0 /mnt/
$ ls -la /mnt
合計 24
drwxr-xr-x  3 root root  4096  2月 24 16:27 .
drwxr-xr-x 22 root root  4096 12月 21 01:00 ..
drwx------  2 root root 16384  2月 24 16:27 lost+found
$ sudo chown who /mnt
$ sudo umount /mnt
$ sudo cryptsetup luksClose ihdd0

ここでは、ユーザーwhoが使用できるように、パーミッションを設定しています。 そのあと、unmountcryptsetup luksCloseで後始末をします。

動作確認

では、きちんと動作するか確認してみましょう。

iPodを接続し直すと、以下のようなウィンドウが開きます。

volume unlock dialog

暗号化ボリュームを作成したときに入力したパスフレーズを、このウィンドウのパスワード欄に入力します。すると、 HDDがマウントされ使用可能になります。 マウントポイントは/media/ihddになりました。ボリュームラベルが利用されるようです。

デスクトップには、次のようなアイコンが表示されます。

HDDを取り外すときは、デスクトップのアイコンを右クリックして、"ドライブの安全な取り出し"を選択します。

[おわり]