友人からHP-UXのHFS(High-performance File System)形式でフォーマットされたMOを読むことができないかと相談されました。
Webで情報を探してみるとLinuxのkernelに付属しているUFSモジュールを使ってmountすれば良いという情報がありました。
手元にはDebian(標準kernelで運用)とUSB接続のMOドライブがあるので物理的な条件は揃っています。
また、Debianの標準kernelにUFSモジュールが入っていることも確認したので試してみたところ、無事データを読むことが出来ました。
UFSは他のOSでも使われているファイルシステムなので、タイプを明示的に指定する必要があります。(「man mount」参照)
HP-UXでフォーマットしたものはRead Onlyのようですが、今回はデータを読み出すのが目的なので問題ありません。
念のため「linux-2.6.26.2/fs/ufs/super.c」を見ると「hp」ファイルシステムは「read-only」と書いてありました。
「linux-2.6.32.7/fs/ufs/super.c」でも同様です。
■環境
- Debian lenny
- Kernel 2.6.26-2-686(標準カーネル)
- I-O DATA MOP2-U640P(USB2.0対応)
- MO 3.5inch 230MB HFSフォーマット(HP-UX)
■手順
1. モジュールの確認
「ufs」モジュールがあることを確認する。
ls -la /lib/modules/2.6.26-2-686/kernel/fs/
2. MOドライブを接続する
バスパワー接続(ACアダプター不要)のUSBタイプなので、shutdownせずに接続します。
3. ログの確認
正常に認識されたか確認します。
tail /var/log/messages tail /var/log/syslog dmesg | tail -n 15
4. MOをマウントする
mountコマンドを実行すると、自動でモジュールが組み込まれます。
mkdir /mnt/mo mount -t ufs -o ufstype=hp /dev/sda /mnt/mo lsmod df -a ls -la /mnt/mo
■mountのufstypeオプション
man mount
Comments