Linux Tips

NTFSパーティションを読み書きするには

北浦訓行
2004/8/5

 NTFSパーティションにアクセスするにはで説明したとおり、カーネル2.4はNTFSパーティションの読み込みをサポートしている。また、カーネル2.6では書き込みも可能となったが、いずれもカーネルの再構築が必要だ。しかし、Captiveというソフトウェアを使えば、カーネルの再構築なしにNTFSパーティションへのアクセスが可能となる。

 最初に、Captiveのダウンロードとインストールを行う。CaptiveのWebサイト(http://www.jankratochvil.net/project/captive/)からRPMファイル(原稿執筆時点ではcaptive-static-1.1.5-0.i386.rpm)をダウンロードして、rpmコマンドでインストールする。

# rpm -ihv captive-static-1.1.5-0.i386.rpm

 Captiveは、WindowsのNTFSドライバ(ntoskrnl.exeやntfs.sysなど)を利用して、NTFSパーティションの読み書きを行う。そのため、最初にcaptive-install-acquireコマンドを実行して、ntoskrnl.exeとntfs.sysのコピーを行う。

# captive-install-acquire
(省略)
Quickly scan your local disks to find needed drivers?
Enter 'y' for YES, 'n' to NO, 'd' if DONE [hit ENTER for YES]: ←[Enter]キーを押す
(省略)
Detection of language localized MS-Windows drivers is missing. You may need to c
opy localized ntfs.sys and ntoskrnl.exe to /var/lib/captive/ by cp(1) command; c
ontact me for their proper identification, please.
Fully scan all directories of your local disks?
Enter 'y' for YES, 'n' to NO, 'd' if DONE [hit ENTER for YES]: ←[Enter]キーを押す

 ここではコンソールでの操作を例として挙げたが、X Window Systemでcaptive-install-acquireコマンドを実行すると、設定用のウィザードが起動する。ただし、筆者の環境では動作が不安定だった。

captive-install-acquireコマンドのウィザード画面

 Captiveをインストールすると、/mntの下に「captive-ボリューム名」という名前で自動的にマウントポイントが作成される(例では「captive-drive_c」。ボリューム名がなければ「captive-noneme」となる)。また、/etc/fstabにマウントポイントが設定されるため、以下のコマンドでマウントできる。

# mount /mnt/captive-drive_c
Captive NTFS v1.1.5. Check a new version at: http://www.jankratochvil.net/

 NTFSパーティションを見ると、以下のように日本語も正しく表示されることが分かる。

# ls /mnt/captive-drive_c/Documents\ and\ Settings/nori/
AdobeWeb.log       Local Settings/  Ocrsys.ini  Templates/  ntuser.ini
Application Data/  My Documents/    PrintHood/  UserData/   スタート メニュー/
Cookies/           NTUSER.DAT.LOG   Recent/     WINDOWS/    デスクトップ/
Favorites/         NetHood/         SendTo/     ntuser.dat

Konquerorで表示したNTFSパーティションのファイル群

 Turbolinux 10 Desktopの場合、NTFSパーティションが存在すると、デフォルトで/mnt/winnt0というマウントポイントに読み込み専用でマウントするため、Captiveと競合してしまう。従って、/mnt/winnt0をアンマウントして、あらためてCaptiveでマウントする必要がある。

# umount /mnt/winnt0/
# mount /mnt/captive-drive_c

 Fedora Core 2やTurbolinuxは、

# mount /mnt/captive-drive_c

とするだけで日本語ファイル名のファイルも正しく表示されたが、Vine Linuxはファイル名が文字化けしてしまった。mountコマンドの-oオプションでiocharset=euc-jpなどを指定してみたが、効果はなかった。

Linux Tips Index



 Linux Squareフォーラム Linux Tipsカテゴリ別インデックス
インストール/RPM ブート/ブートローダ
ファイル操作 環境設定
ユーザー管理 コンソール/ターミナル
X Window System セキュリティ
トラブルシューティング 他OS関係
ネットワーク ハードウェア
Webサーバ Samba
GNOME KDE
OpenOffice.org エミュレータ
ソフトウェア そのほか/FAQ
全Tips公開順インデックス Linux Tips月間ランキング
Linux Squareフォーラム全記事インデックス

MONOist組み込み開発フォーラムの中から、Linux関連記事を紹介します


Linux & OSS フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Linux & OSS 記事ランキング

本日 月間