iPodのマウント
iPodをMacOSXで初期化した場合、ファイルシステムはhfs+になっている。
このため、マウントはroot権限で以下のようにコマンドを実行すれば可能である。
# mount -t hfsplus /dev/sda3 /ipod
これによりiPod内全てのファイルにアクセスが可能である。
stratocaster:~# cd /ipod stratocaster:/ipod# ls -l total 1 drwxr--r-- 1 root root 2 Nov 1 01:03 Calendars drwxr--r-- 1 root root 5 Nov 1 22:32 Contacts -rw-r--r-- 1 99 99 1024 Nov 1 22:32 Desktop DB -rw-r--r-- 1 99 99 2 Nov 1 22:30 Desktop DF -rw-r--r-- 1 99 99 0 Nov 1 01:17 Icon? drwxr--r-- 1 root root 4 Nov 1 22:32 Notes drwxrwxrwx 1 99 99 6 Nov 1 01:17 iPod_Control
ちなみにiPodをFireWire経由で接続している場合、DebianはSCSIのディスクとして自動認識する。これを実現するためには、Kernel構築時に以下のオプションを有効にしておく必要がある。
- Code maturity level options - y
- SCSI support - y
- SCSI disk support - m
- IEEE1394 (FireWire)/IEEE 1394 (FireWire) support (Experimental) - y
- OHCI-1394 support - y
- SBP-2 support - m
接続を行うと/var/log/syslogに以下のようなメッセージが出て/dev/sdaが設定される。
Nov 2 02:50:32 stratocaster kernel: ieee1394: Node changed: 0-00:1023 -> 0-01:1023 Nov 2 02:50:34 stratocaster kernel: ieee1394: Node changed: 0-01:1023 -> 0-00:1023 Nov 2 02:50:36 stratocaster kernel: ieee1394: Node changed: 0-00:1023 -> 0-01:1023 Nov 2 02:50:39 stratocaster kernel: ieee1394: Node resumed: ID:BUS[0-00:1023] GUID[000a2700027ec694] Nov 2 02:50:39 stratocaster kernel: scsi1 : SCSI emulation for IEEE-1394 SBP-2 Devices Nov 2 02:50:40 stratocaster kernel: ieee1394: sbp2: Logged into SBP-2 device Nov 2 02:50:40 stratocaster kernel: ieee1394: Node 0-00:1023: Max speed [S400] - Max payload [2048] Nov 2 02:50:40 stratocaster kernel: Vendor: Apple Model: iPod Rev: 1.61 Nov 2 02:50:40 stratocaster kernel: Type: Direct-Access ANSI SCSI revision: 02 Nov 2 02:50:40 stratocaster scsi.agent[3029]: bogus sysfs DEVPATH=/devices/pci0002:20/0002:20:0e.0/fw-host0/000a2700027ec694/000a2700027ec694-0/host1/1:0:0:0 Nov 2 02:50:41 stratocaster kernel: SCSI device sda: 7999488 512-byte hdwr sectors (4096 MB) Nov 2 02:50:41 stratocaster kernel: sda: Write Protect is off Nov 2 02:50:41 stratocaster kernel: sda: Mode Sense: 04 00 00 00 Nov 2 02:50:41 stratocaster kernel: SCSI device sda: drive cache: write through Nov 2 02:50:41 stratocaster kernel: sda: [mac] sda1 sda2 sda3 Nov 2 02:50:41 stratocaster kernel: Attached scsi removable disk sda at scsi1, channel 0, id 0, lun 0
これで、/dev/sdaが割当たった事になる。例えば、mac-fdiskで見ると以下のようになっている。
stratocaster:~# mac-fdisk /dev/sda /dev/sda Command (? for help): p /dev/sda # type name length base ( size ) system /dev/sda1 Apple_partition_map partition map 62 @ 1 ( 31.0k) Partition map /dev/sda2 Apple_MDFW firmware 65536 @ 63 ( 32.0M) Unknown /dev/sda3 Apple_HFS disk 7933888 @ 65599 ( 3.8G) HFS Block size=512, Number of Blocks=7999488 DeviceType=0x0, DeviceId=0x0
/dev/sda3がデータ領域である。
マウントは、一般ユーザでもできると便利である。以下のエントリを/etc/fstabに書いておく。
/dev/sda3 /ipod hfsplus rw,user,noauto,uid=1000,gid=100 0 0
オプションuserで誰でもマウント可能になる。
$ mount /ipod $ ls -l /ipod 合計 1 drwxr--r-- 1 vfr users 2 2004-11-01 01:03 Calendars drwxr--r-- 1 vfr users 5 2004-11-01 22:32 Contacts -rw-r--r-- 1 99 99 1024 2004-11-01 22:32 Desktop DB -rw-r--r-- 1 99 99 2 2004-11-01 22:30 Desktop DF -rw-r--r-- 1 99 99 0 2004-11-01 01:17 Icon? drwxr--r-- 1 vfr users 4 2004-11-01 22:32 Notes drwxrwxrwx 1 99 99 6 2004-11-01 01:17 iPod_Control
なお、外す際はumountが必要である。
$ umount /ipod
しかし、これでもiPod側は駐禁マークが付きっぱなしである。
これを解除するには、以下のようなコマンドをrootで実行する。
# echo "scsi remove-single-device 0 0 0 0" > /proc/scsi/scsi
上記は1台目の場合、2台目は 1 0 0 0 となる。
もし、これでもダメは場合は、再起動しかない(だめな時が結構あった)。
無理矢理外すと、次回以降マウントの際に以下のエラーが出るようになる。
HFS+-fs warning: Filesystem was not cleanly unmounted, running fsck.hfsplus is recommended. mounting read-only.
残念なことに Debian(というかLinux)には fsck.hfsplus は存在しない。add hocな対応としては、hfsplusパッケージに含まれるhpmount,hpumountコマンドを発行する。これにより以降エラーが出なくなる。
stratocaster:~# hpmount /dev/sda3 *** Warning: You are about to open '/dev/sda3' for writing *** *** Do you really want to do that ? (y/n) *** y stratocaster:~# hpumount