FreeBSDのzpoolの機能であるzvolを使ってボリュームを作り、そのボリュームをiSCSIを使ってWindowsマシンに公開しています。ボリュームの中のデータをFreeBSDから取得したい時の方法を調べたのでメモします。
要点は2つ。
- zvolのディスクイメージをマウントしたい場合は、ボリュームをsnapshot→cloneした上でvolmode=geomを使う
- NTFSのマウントには、ntfs-3g (fusefs-ntfsパッケージ) を使う
zvolのディスクイメージをマウントする方法
zvolをマウントするには、GEOMベースのツールが使えるように、ボリュームのプロパティを volmode=geom にする必要があります。
ただプロパティを変えただけではダメで、変えた後に再起動するか、snapshotを作った上でcloneし、cloneする際にプロパティを指定する必要があります。今回は後者で。
# zfs snapshot raidtank/iscsi/windows_disk@snap
# zfs clone -o volmode=geom raidtank/iscsi/windows_disk@snap raidtank/iscsi/windows_disk_clone
ここまでやると、 /dev/zvol/raidtank/iscsi/windows_disk_clonep* ができます(ボリューム内のディスクラベルに応じて)。
NTFSのボリュームをマウントする方法
NTFSのボリュームをマウントするには、fusefs-ntfsにあるntfs-3gを使います。
fusefs-ntfsをインストールしたら、
# ntfs-3g -o ro /dev/zvol/raidtank/iscsi/windows_disk_clonep2 /mnt
なお、fusefs-ntfsのインストール後に、/usr/sbin/mount_ntfs-3gというシンボリックリンクを手動で作った場合でも、「mount -t ntfs-3g (以下略)」ではなぜか失敗します(zvolだから?)。