このFAQはLinux NTFS Projectの一部である。
最新のバージョンは以下のURIにある。
ntfs.html
このFAQの中に入っていないNTFSへの疑問があれば、あるいはこのFAQに対するコメントがあれば、 わたしにメールしてください:
linux-ntfs-dev@sourceforge.net
日本語翻訳:園田道夫(日本語訳に関して文責はすべて園田にあります。誤り等見つけられたら、わたしにメールしてください:vp5m-snd@asahi-net.or.jp)
- 一番多い質問
-
他の興味深いネタ
-
要チェック
1.1 NTFSとは何か? | |
1.2 NTFSはFAT/FAT32より良いのか? | |
1.3 NTFSを使わなければならない(またはアップグレードしなければならない)のか? |
|
1.4 NTFSはWindowsのどのバージョンでも一緒なのか? | |
1.5 NTFSの限界とは? |
2.1 NTFSボリュームをWindows 95/98/MEやDOSから読むのはどうしたらよいか? | |
2.2 FATボリュームをNTFSボリュームにコンバートする方法は? | |
2.3 NTFSボリュームをFATボリュームにコンバートする方法は? | |
2.4 NTFSボリュームを削除する方法は? | |
2.5 NTFSボリュームのデフラグ方法は? | |
2.6 NTFSボリュームをリサイズ(サイズ再設定)する方法は? |
5.1 NTFSボリューム上でWindowsを起動できるのか? | |
5.2 liloの使い方は? | |
5.3 grubの使い方は? |
6.1 どのディストリビューションがデフォルトでNTFSをサポートしているか? | |
6.2 RedHatはなぜNTFSをサポートしないのか? | |
6.3 なぜRedHat LinuxはNTFSボリュームへのアクセスを締め出すのか? | |
6.4 すべてのディストリビューションはNTFSにインストールされるか? |
7.1 新しいNTFSドライバーとはどんなものか? | |
7.2 新しいドライバーを使わなければならないのか? | |
7.3 新しいドライバーの使い方は? | |
7.4 パッチとは何か? | |
7.5 まだよく理解できないが? | |
7.6 Linuxカーネルの新しいコードはいつ出るのか? | |
7.7 Windowsのドライバーのラッパーは書けないのか? |
NTFSはNew Technology Filesystemの略語である。NTはもともとWindows NTで使われていて、ファイルシステムとはファイルをディスクに貯蔵する方法のことである。異なるオペレーティングシステムでは、ファイル貯蔵には異なる方法が用いられる。
NTFSはWindows NT、2000、XPで使われている。
端的に言えば優れている。NTFSはFAT/FAT32よりもかなり強力であり、Unicodeファイル名称やセキュリティ機能や圧縮や暗号化をサポートしている。大きな欠点はWindows NT、2000、XPからのみ読み込み可能という点である。例えばDOSブートディスクを使えず、従ってDOSブートからデータを読むことができない。
例によってこのルールにも例外がある。Linuxは1997年12月からNTFS用ドライバーを備えていている。また、DOS上でNTFSをサポートするプログラムもある(詳細は2.1を参照のこと)。
多くの人がそれは良い考えだと思っているが、必ずしもそうではない。あなたはおそらく、その違いにすら気づかないはずだ。一つだけ言えることは、いったんNTFSにしてしまったらFATには戻せない、ということだ(詳細は2.3 を参照のこと)。
Windows NTはFAT16ファイルシステムでインストール可能であり、Windows 2000またはXPはFAT32ファイルシステムでのインストールが可能だ。NTFSへのコンバートはその後でも可能である。
バージョンが違う。同じように見えるが、新しいバージョンのものは特別な機能を持っている。例えば、Windows 2000はquotas(割り当て)機能を持っている。
NTFS | Windowsのバージョン |
---|---|
v1.2 | NT 3.51, NT 4 |
v3.0 | 2000 |
v3.1 | XP |
バージョン1.2 は4.0としても知られている。
バージョン3.0 と 3.1 は、ときどき5.0と5.1と呼ばれている。
大きい。NTFSは上限263バイトの大きさのファイルをサポートする。NTFSのボリュームは263クラスターを上限とし、各クラス他は64キロバイト長を上限とする。従ってNTFSは約500兆ギガバイトまでが限界ということになる。
残念ながら不可能である。95/98/MEやDOSはFATしか理解できない。NTFSはWindows NT、2000、XPからのみ読むことができる。
ただし、少し手間をかければ可能だ。SysInternalsから"NTFS for Windows 98" および "NTFSDOS"をダウンロードしてくれば、95/98/MEやDOSでNTFSを扱うことができる。もしお金があれば、書き込みできるバージョンを買うこともできる(ただし、とってもお高いのでご注意)。
コマンドウインドウから以下のように入力する("x:"は対象ボリュームで置き換えること):
convert x: /fs:ntfs
対象となるボリュームが使用中の場合は、コンバートのあと再起動する必要があるだろう。
このコマンドを一旦使ってしまったら、簡単には元に戻せない。次のFAQを参照のこと。
簡単に言えばそれは不可能だ。ただし、お金があれば別だ。パーティション・マジックという製品が norton.com から入手可能であり、その製品を使えばNTFSとFATを含む何種類かのファイルシステム間で相互に変換することができる。
どのOSを使って削除するかによって異なる。
DOSやWindows 95/98/MEの場合はfdiskを使う。ブートディスクを使うか、あるいはWindowsをDOSモードにする。そこでfdiskを使う。2つ以上の ディスクがある場合は、まず選択が必要だ。DOSではないパーティションを削除したいならば、とても注意深くなるべきである。打ち込んだ結果は即座に反映 されるからだ。
Windows NT: コンピュータの管理
Windows 2000, XP: 論理ディスクマネージャー。コントロールパネルから管理ツールを選び、コンピュータの管理の記憶域のディスク管理を選択する。
しばらくの間ボリュームが使われた後、つまりディスクに多くの書き込みが発生した後では、ファイルはフラグメンテーションを引起こしている。フラグ メント状態になるとファイルはディスクの連続した領域に配置されず、多数の小さな断片に分かれてしまう。こうした状態になったファイルへのアクセスは速度 低下を招く。
Windows 2000とXPはデフラグメントプログラム(フラグメント解消プログラム)を備えている。Windows NTのユーザーには、同じ機能を持つフリーのプログラムがある。Diskeeper Lite が http://diskeeper.comからダウンロードできる。
最近まで、NTFSボリュームを再設定する唯一の方法は、多額のお金を払うことだった。だが今は、ntfsresizeというツールがある。このツールはずっとテストされてきたが、現在もなお試験的な状態にあると考えるべきだ。詳細についてはntfsresize FAQ.を参照されたい。
NTFSをリサイズするフリーではないプログラムの一つは、パーティション・マジックだ。http://powerquest.com
Linuxのドライバーはすべての NTFSのバージョンを読むことができる。 各バージョンは少しずつ異なるが、ドライバーはただファイルとディレクトリを解釈できなければならない、というだけにすぎない。NTFSが保持するインデックスは、全て安全に無視される。
NTFSボリュームに書き込みできるようになったときに初めて、ドライバーは書き込むNTFSのバージョンによって変わってくる可能性がある。
書き込み自体はできないが、デュアルブートにしたマシンでLinuxからWindowsにファイルをコピーする方法については、上記"NTFSに書き込む方法" を参照されたい。書き込みをサポートしていないので、別の可能性について述べている。Linuxに書き込む方法についてはこのあと述べる。
現在2種類のドライバーがある。オリジナルのドライバーは2.4ベースのものだが、使用するのは非常に危険だ。ファイルシステムを破壊する危険性が非常に高い。
新しいドライバーは2.5.11ベースのものだが、非常に機能が限られている。存在するファイルを上書きすることはできるが、ファイルの長さを変えることができないし、新しいファイルを作ることも、存在するファイルを削除することもできない。
書き込みサポート機能を追加するのには長い時間がかかるだろう。NTFSはデータベースのように作られている。あなたが何かを変えたとしたら、一貫 性を持たせるために多くの場所に変化が必要となる。間違いを犯すとファイルシステムがダメージを負うだろうし、間違いが多くなりすぎるとファイルシステム は破壊されるはずだ。また、現在開発者たちはNTFSに関してほとんど趣味として、自由な時間の間でしか作業していない。もし手助けしたいのであれば、 メールして欲しい: linux-ntfs-dev@sourceforge.net
NTFSに書き込む方法 デュアルブートマシンでLinuxからWindowsへファイルを転送するためにNTFSへの書き込みを行いたい場合、Windows上で ext2/ext3を読み書きするドライバーを使うかわりに、Windows上でLinuxパーティションからファイルを読むことができる。ふたつのリー ドオンリーのドライバーを使うという方法であれば、一つのファイルシステム上のファイルをもう一つのファイルシステムにコピーすることが可能だ。
オープンソースのWindowsのext2とext3Linuxファイルシステムドライバーは2003年6月4日時点では以下のとおり:
NTFSサポートは広範囲に渡るが、LinuxのNTFSドライバーはあまりその光栄に浴していない。
LinuxのNTFSドライバーは、Unicodeファイル名(各国文字コード列に変換されたもの、あるいはUTF8)、圧縮ファイル、分散格納されたファイルをサポートしている。
また、暗号化ファイルを読めないし、Windowsのセキュリティ情報とWindowsによってセットされるquota(割り当て)の情報を無視する。
ドライバーはリードオンリーのときは かなり安全 だが、万が一ありうる事態すべてに備えることは不可能だ。何かおかしくなったときは問題を発見しフィックスするのを手伝って欲しい。
開発チームあて( linux-ntfs-dev@lists.sourceforge.net )にメールして、 どのバージョンのドライバー を使っているか、Linuxのバージョンは何か (uname -a) NTFSのバージョンは何か (Win NT, 2K 、XP)をご報告ください。
もし何か役に立ちそうなログが残っているのであれば(/var/log/messages)、それもお送りください。
よろしくお願いします。
多くのユーザーはNTFSサポートを組み込むためにコンパイルなどしたくないはずだ。ほぼすべての Linux のディストリビューション は最初からNTFSサポートが組み込まれている。
RedHat 7.3 (Valhalla)またはRedHat 8.0 (Psyche)のユーザーの場合には、おそらくカーネルのリコンパイルも必要ではないはずだ。詳細は RedHatのページ を参照のこと。
上記よりも古いバージョンのRedHat、またはNTFSサポートが組み込まれていないディストリビューションの場合は、カーネルを自分でコンパイルする必要がある。カーネルコンパイルは思ったより難しくない。詳細はCompile Page を参照のこと。
新しいドライバーの方がより良いものになっている。より品質が良いコーディングであり、ずっと高速で、バグも少なく、SMP-safeでもある。2.5.11以降の新しいドライバーは、パッチという形で 2.4カーネルにも追加できるようになっている。
現時点では開発者向けのツールが数個しか無い。ツールすべての 現状のリスト を保持しつづけてはいる。
もちろん、優先事項はNTFSへの書き込みサポートの開発である。
マイクロソフトがNTFSの内部に関する資料をリリースしていないので、ファイルシステムをスクラッチからリバースエンジニアリングしなければならない。その方法はざっとこんな感じだ:
すごくたくさん作業しなければならないように聞こえたとしたら、この作業がいかに大変だったか、おそらくわかっていただけているのだと思う。今ではわれわれはNTFSについてかなり多くのことを理解しているし、他の人の役に立つように文書化してきてもいる:../ntfs/index.html
現時点では、ドライバーを書くならば情報集めから始めるというよりはずっと簡単になっている。
まず感謝しなければならないのはMartin von Lo"wisに対してである。彼はオリジナルのNTFSドライバーを1995年に作り上げた。そのドライバーは1997年12月にカーネル(2.1.74)に組み込まれた。彼は以下に挙げる親切な人たちによって助けられ続けている:
Albert Cahalan, Anton Altaparmakov, Damon Casale, David Dillard, Domagoj Pensa, Joseph Malicki, Matthew Fanto, Olof Wolgast, Rani Assaf, Régis Duchesne, Richard Russon, Steve Dodd, Werner Seiler.
次に感謝しなければならないのはAnton Altaparmakovである。彼の情熱がこのプロジェクトを存続させてきた。同時に、プロジェクトのメンテナンスが事実上停止してしまったときも、彼 がその役目を担い、コードを安定させてきた。彼は、書き込みサポートを前進させるため、クリーンなベースを構築する目的でドライバーのソースをスクラッチ から書き直した。彼は次の人々に助けられてきた:
Pawel Kot, Richard Russon.
もちろん。ドライバーはすべてのバージョンのNTFSを読めるが、リードオンリーだ。
リードオンリーであれば、オリジナル、新しいもの両方とも普通に使っている分には安全だ。ファイルシステムにいかなる変化も与えないので、ダメージの原因となることもないだろう。
加えて、新しいドライバーはSMP-safeである。
Linuxの場合、最初のIDEコントローラー上のふたつのディスクはhdaとhdbという名前になり、3番目と4番目のディスクはhdcとhddという名前になる。SCSIディスクは見つかった順にsda、sdb、などの名前になる。
NTFSボリュームを簡単に見る方法は:
fdisk -l
その出力はこうなる:
Disk /dev/hda: 64 heads, 63 sectors, 4465 cylinders
Units = cylinders of 4032 * 512 bytes
Device Boot Start End Blocks Id System
/dev/hda1 1 2125 4283968+ 07 NTFS/HPFS
/dev/hda2 2126 19851 35735616 0f Win95 Ext'd (LBA)
/dev/hda5 * 2126 4209 4201312+ 83 Linux
/dev/hda6 4210 4465 516064+ 82 Linux swap
カーネルのバージョンが2.4.*か、2.5.0~2.5.10ならば、おそらくオリジナルのNTFSドライバーが組み込まれている。2.5.11以降であれば新しいNTFSドライバーが組み込まれている。
何が入っているか試しに見てみるには、カーネルログの中のNTFSのログメッセージを確認すると良い。以下のコマンドをどちらか試してみてほしい(ログを読むにはrootになる必要がある)
dmesg | grep -i ntfs
grep -i ntfs /var/log/messages
オリジナルドライバーの場合はバージョンが1.1.*で、新しいドライバーの場合はバージョンが2.*になっているはずだ。
まず最初に、NTFSのことが理解できるカーネルかどうかチェックする。以下のコマンドで、Linuxが理解可能なすべてのファイルシステムのリストを表示できる。"ntfs"がリストにあったらOKだ。また、mountコマンドのマニュアルを"man 8 mount"で読むというのもいいだろう。
cat /proc/filesystems
次にNTFSボリュームをマウントするポイントを作る。そうすればマウント可能になる。
mkdir /mnt/windows
mount /dev/hda1 /mnt/windows -t ntfs -r
マウントされたファイルシステムのパーミッションを変えるには、4.6.にあるように"umask"のオプションを使う。ブート時に自動的にマウントしたいときは、4.10. を参照のこと。
用が済んだら、以下のコマンドのどちらかでumountできる。
umount /mnt/windows
umount /dev/hda1
このコマンドはumount(ユーマウント)と呼ばれている(nはひとつだけだ)。
mountのオプションは(新旧)両方のドライバーに共通である。mountのmanのページを読むことをお勧めする。mountコマンドの一般的な書式は、
mount device directory [options]
"-o"オプションは都度指定しつつ使うか、個々の設定値をカンマ(,)で区切って使う。以下の2種類のやり方は同じ意味である:
mount /dev/hda1 /mnt/windows -o X -o Y -o Z
mount /dev/hda1 /mnt/windows -o X,Y,Z
-rと同じ。
mount /dev/hda1 /mnt/windows -t ntfs -r -o umask=0222
mount /dev/hda1 /mnt/windows -t ntfs -r -o uid=flatcap
mount /dev/hda1 /mnt/windows -t ntfs -r -o uid=500
mount /dev/hda1 /mnt/windows -t ntfs -r -o gid=winusers
mount /dev/hda1 /mnt/windows -t ntfs -r -o gid=520
どのドライバーなのかを確かめる方法は、4.4.を参照のこと。この章ではオリジナルドライバーだけのオプションについて触れる。一般的なマウントオプションは4.6.を参照のこと。
いくつかのオプションでは"true"と"false"のパラメタを用いる。
"true"は"yes"または"1"、"false"は"no"または"0"で置き換え可能。
NTFSはファイル名とディレクトリ名をUnicodeで保持しているので、どの言語の文字であっても使える。デフォルトではLinuxのNTFSドライバーはその名前をASCIIに変換するが、あなたの用いる言語にå または é という文字が含まれていると、これはあまりよろしくない。
NLS(ネイティブ言語サポート)は文字のディスプレイをコントロールする。Unicodeのように、すべての文字を表現できるutf8を選ぶことができる(例えば、iso8859-1(Western Europe)、iso8859-2 (Central Europe), gb2312 (簡体中国語), iso8859-8 (Hebrew))。以下にサンプルを示す:
mount /dev/hda1 /mnt/windows -t ntfs -r -o iocharset=utf8
mount /dev/hda1 /mnt/windows -t ntfs -r -o iocharset=iso8859-2
mount /dev/hda1 /mnt/windows -t ntfs -r -o iocharset=gb2312
カーネルがutf8をサポートしていない場合、このオプションを使えばドライバーにutf8をサポートさせることができる。どの位置でも構わないが"-o iocharset=utf8"を用いるべきである。
mount /dev/hda1 /mnt/windows -t ntfs -r -o utf8=true
Windowsはファイル名の大文字小文字を記憶しているが、見ただけではわからないはずだ。従って、"MyFileName"という名前で作成したファイルを"mYfILEname"という名前で開くことができる。
デフォルトではLinuxは大文字小文字を区別していて、"MyFile"と"myfile"はすべて違うファイルになる。linuxにNTFSボリューム上でWindowsのように振舞わせたいならば、posixオプションを"true"に設定する。このオプションを"false"にした場合はLinuxのように動く(デフォルトはfalse)。
mount /dev/hda1 /mnt/windows -t ntfs -r -o posix=true
このオプションをtrueにしたら、ファイルシステムのメタデータが見えるようになる。もし見えない場合であっても、例えば"ls -l \$MFT"などと指定すれば、表示させることができる。
glibcの制限があるので、"$MFT"はiノード番号がゼロになるため一覧表示には現れないはずだ。
mount /dev/hda1 /mnt/windows -t ntfs -r -o show_sys_files=true
どのドライバーなのかを確かめる方法は、4.4.を参照のこと。この章ではオリジナルドライバーだけのオプションについて触れる。一般的なマウントオプションは4.6.を参照のこと。
いくつかのオプションでは"true"と"false"のパラメタを用いる。
"true"は"yes"または"1"、"false"は"no"または"0"で置き換え可能。
NTFSはファイル名とディレクトリ名をUnicodeで保持しているので、どの言語の文字であっても使える。デフォルトではLinuxのNTFSドライバーはその名前をASCIIに変換するが、あなたの用いる言語にå または é という文字が含まれていると、これはあまりよろしくない。
NLS(ネイティブ言語サポート)は文字のディスプレイをコントロールする。Unicodeのように、すべての文字を表現できるutf8を選ぶことができる(例えば、iso8859-1(Western Europe)、iso8859-2 (Central Europe), gb2312 (簡体中国語), iso8859-8 (Hebrew))。以下にサンプルを示す:
mount /dev/hda1 /mnt/windows -t ntfs -r -o nls=utf8
mount /dev/hda1 /mnt/windows -t ntfs -r -o nls=iso8859-2
mount /dev/hda1 /mnt/windows -t ntfs -r -o nls=gb2312
"umask"パラメタはファイルとディレクトリ両方のパーミッションを変更する(4.6を参照のこと).fmask
はファイル、"dmask"はディレクトリに対して同じことを行うものだ。組み合わせて使うこともできる。以下に例を示す:
mount /dev/hda1 /mnt/windows -t ntfs -r -o fmask=0222
mount /dev/hda1 /mnt/windows -t ntfs -r -o dmask=0222
mount /dev/hda1 /mnt/windows -t ntfs -r -o fmask=0077,dmask=0222
Windowsはファイル名の大文字小文字を記憶しているが、見ただけではわからないはずだ。従って、"MyFileName"という名前で作成したファイルを"mYfILEname"という名前で開くことができる。
デフォルトではLinuxは大文字小文字を区別していて、"MyFile"と"myfile"はすべて違うファイルになる。linuxにNTFSボリューム上でWindowsのように振舞わせたいならば、case_sensitiveオプションを"false"に設定する。このオプションを"true"にした場合はLinuxのように動く(デフォルトはfalse)。
mount /dev/hda1 /mnt/windows -t ntfs -r -o case_sensitive=true
mount /dev/hda1 /mnt/windows -t ntfs -r -o case_sensitive=false
デフォルトでは、ドライバーはオプションが一つでも正しくないときはマウントしない。sloppyパラメタを指定すると、ドライバーは正しくないパラメタを単に無視する
mount /dev/hda1 /mnt/windows -t ntfs -r -o sloppy=true
mount /dev/hda1 /mnt/windows -t ntfs -r -o sloppy=false
このオプションは、問題が生じたときにドライバーがどう動くかを指定するものだ。デフォルトでは試行して、処理を続行する。問題が生じた部分はマークされるが、その他の部分を実行する。ドライバーに試行させるか、リカバーさせるかを選ぶことができる。現時点でドライバーが実行可能なリカバリーは、ブートセクターをバックアップしてリプレースすることだけである。
mount /dev/hda1 /mnt/windows -t ntfs -r -o errors=continue
mount /dev/hda1 /mnt/windows -t ntfs -r -o errors=recover
ファイルとディレクトリのパーミッションと所有権をコントロールするオプションは3つある。umask、uid、gidだ。一般的なmountオプションのところに記述されている
以下に各オプションの使用例と機能について示す。それぞれ同じmountコマンドを使い、オプションを表示させている。
mount /dev/hda1 /mnt/windows -t ntfs -r
"umask
はパーミッションのフィルターであり、chmodと反対の動きをする。フルのパーミッションの場合は777だ(rwxrwxrwx)。umaskの場合0222(-w--w--w-)はまだ555を残している(r-xr-xr-x)。
デフォルトのumaskはセキュリティ上の理由から0077に設定されている。
mount ... -o umask=0277
-r-x------ 1 root root 28096 Aug 24 1996 chkdsk.exe
mount ... -o umask=0222
-r-xr-xr-x 1 root root 28096 Aug 24 1996 chkdsk.exe
今のところファイルの所有者とグループは"root"である。次に"uid"と"gid"のオプションを試してみよう。
mount ... -o uid=flatcap
-r-x------ 1 flatcap root 28096 Aug 24 1996 chkdsk.exe
mount ... -o gid=winuser
-r-x------ 1 root winuser 28096 Aug 24 1996 chkdsk.exe
mount ... -o uid=flatcap,gid=winuser
-r-x------ 1 flatcap winuser 28096 Aug 24 1996 chkdsk.exe
最後に、すべての機能を試すためにオプションを組み合わせてみよう。以下の例では、ユーザー"flatcap"にフルコントロールを付与し、ユーザーグループ"winuser"は読み込み権限のみ、他のユーザーは一切アクセスできない。
mount ... -o umask=0027,uid=flatcap,gid=winuser
-rwxr-x--- 1 flatcap winuser 28096 Aug 24 1996 chkdsk.exe
マウントコマンドを使い慣れたら、/etc/fstab(ファイルシステムテーブル=filesystem table)に1行追加すれば、Linuxにそのボリュームを自動マウントさせることができる。
以下にmountコマンドの例と、その例と同じ意味を持つfstabの記述例を示す。
末尾の"0
0"の意味については心配しないで良い。
mount /dev/hda1 /mnt/windows -t ntfs -r
/dev/hda1 /mnt/windows ntfs ro 0 0
"-r"を"-o ro"と同じ意味で用いることができる。
mount /dev/hda1 /mnt/windows -t ntfs -r -o umask=0222
/dev/hda1 /mnt/windows ntfs ro,umask=0222 0 0
mount /dev/hda1 /mnt/windows -t ntfs -r -o umask=0222,uid=flatcap,gid=winuser
/dev/hda1 /mnt/windows ntfs ro,umask=0222,uid=flatcap,gid=winuser 0 0
できる。grubとliloによってNTFSボリュームからWindowsを起動することができる。実際にはLinuxのブートローダーがNTFSのブートローダーを見つけるわけだ。
/etc/lilo.confに以下のエントリーを追加し、liloコマンドを走らせる。
other = /dev/hda1
table = /dev/hda
label = Windows
"other"はWindowsが入っているパーティションを示し、"table"はディスクのパーティションテーブルを示している。
/boot/grub/grub.confに以下のエントリーを追加する。
title Windows
root (hd0,0)
makeactive
chainloader +1
grubのディスクナンバリングにより、/dev/hdaはhd0、hdbはhd1などとなる。パーティションはゼロから番号がふられる。従って、hda1はhd0,0となり、hdc4はhd2,3となる。
NTFSをサポートしているLinuxのディストリビューションは:Mandrake, Debian, SuSE, Gentoo, Caldera
実際には、RedHatという名前のモノ以外はNTFSをサポートしている。
マジで理由はわからない。噂では法的な心配をしているのでは、ということだ。
"uname -a"コマンドでカーネルのバージョンをまずチェックしよう。2.4.9であれば、カーネルを更新することが重要だ。 さらに詳細はRedHat Webサイト を参照のこと。
お望みならカーネルをコンパイルしてもいいだろう。詳細については「NTFSサポートをLinuxに組み込むには?」を参照のこと。
すべてではない。 Phat Linux はFATパーティション上のWindowsの中にインストールできるし、その場合Windows内部のファイルからブートできる。新しいドライバーはNTFS上でもこの手のトリックを演じさせることができる。
NTFSドライバーを全く新しく書き直したものだ。オリジナルのドライバーはもうすでに書かれてから長い年月を経ている。最初期にはNTFSやLinuxについてほんの少ししか知られていなかったし、ソースコードはメンテナンスがたいへんだった。
新しい知識をもとに新しいドライバーを開発した結果、非常にシンプルかつ高速になり、メンテナンスもずっと簡単になった。
そうではない。すでにNTFSドライバーは現在のLinuxカーネルに組み込まれているので、新しいドライバーを使う必要は特に無い。オリジナルドライバーは確かに古いが、毎日使っても十分に信頼できるものだ。
われわれはオフィシャル名Linuxカーネルのソースコードのパッチとして、新しいドライバーをリリースしている。
../downloads.html
http://www.kernel.org/pub/linux/kernel/v2.4/
パッチとは、差分(変更部分)のテキストファイルのセットである。NTFSコードの部分だけを変更するので、小さな変更の都度カーネルコードをすべてリリースするのは非効率である。従って、オフィシャルなLinuxカーネルリリースのパッチという形でリリースしている。
ソースを解凍したら、ソースディレクトリに移動し、以下のようにコマンドを叩く(パス名とパスの指定は必要に応じて変えること):
patch -p1 < path/to/patchname
これでソースコードが変わる。拒否や失敗は起こらないはずだ。次に普通どおりカーネルを構築する。このFAQの他のところにやり方は書いてある。
残念だ。すべての人が理解できるように努めてはいるが、われわれも時間が限られている。Linuxの基礎を理解するためのサイトがあるので、そちらを参照されるか、近場でLinuxのユーザーグループでも見つけて欲しい。
二つのカーネルがある。新しいコードは開発版のLinuxカーネル(2.5.11にあたる)にはすでに組み込まれている。
安定版Linuxカーネルは現在2.4.20だが、まだ古いドライバーである。コードの現状に満足はしているが、そのソースは良いものである、とま だまだカーネルの神様を納得させていかなければならない(訳注:まだまだその良い状態を保つべく、持続的に改良していかなければならない&カーネルの開発 をトレースしていかなければならない、ということ)。
組み込まれるまでは、頻繁にパッチの形でリリースしていくだろう。
最初はとても良いアイディアのように思えるが、多くの問題がある。
もっとも大きな技術上の問題は、WindowsシステムのDLLをLinuxのVFSに組み込むことである。組み込みは可能だが、生半可なことでは ない。カーネルの一部として動作しなければならないため、最悪マシンをクラッシュさせるかも知れないのだ。ソースが無ければ、この問題に関して何もできな い。
次の問題は互換性である。どのバージョンのWindowsシステムファイルを使うのが良いのか?一つのバージョンを選んでしまえば、用途が限定的になってしまうし、全てのバージョンに対応するラッパーを開発する、というのはプログラミングの悪夢に他ならない。
そして、最悪なことに、Windowsシステムファイルに関わる法的な側面が問題になりそうなのだ。独占的なドライバーというのは、もしだれかがNTFSラッパーを使っている場合に生じる問題を、他のカーネルコーダーが調査できないということにつながってしまうのだ。
Copyright © flatcap (Richard Russon) |