Linux には、ファイルアロケーションテーブル(FAT) ファイルシステム形式用のファイルシステムドライバーがいくつかあります。これらは、カーネル内の特定のドライバーを呼び出すコマンドで使用される名前で一般的に知られています: msdos、vfat、およびumsdos。[1] [2]mount
歴史とサポート
RedHat、SuSE、Debian などの主要な Linux ディストリビューションのほとんどは、FAT ディスク ボリュームへの Linux のインストールを許可するためにumsdosを採用していません。ただし、いくつかのディストリビューションでは採用しています。 [3]これらには、 ZIP ファイルをC:\PHAT解凍して DOS にインストールし、COMMAND.COMスクリプトを実行して起動する Phat Linux などのディストリビューションが含まれます。 [4]およびZipSlack [引用が必要]。
LINUX.BAT
UMSDOS プロジェクトは 1992 年に Jacques Gelinas によって開始され、1994 年 1 月にパッチとしてネット上で利用可能になりました。これはカーネル 1.1.36 から標準ディストリビューションに含まれました。[要出典] UMSDOS はメンテナンス不足のため Linux 2.6.11 カーネルから削除されました。[5] UMSDOS の拡張機能で、長いファイル名に独自のデータ構造ではなく Windows データ構造を使用する UVFAT はリリース前に廃止されました。[6]これらは 2.4.x カーネルで動作するはずです。[要出典]
UMSDOSを使用した以前のLinuxディストリビューションとしては、MuLinux、[7]、 Monkey Linux [8]、Winlinux 2000 [9]などがある。
機能比較
Linux ファイルシステム ドライバはすべて、3 つの FAT タイプ、つまりFAT12、FAT16、FAT32 をすべてサポートしています。これらのドライバが異なるのは、元の FAT ファイルシステム形式の8.3 ファイル名構造を超える長いファイル名のサポートの提供と、ファイル パーミッションなどの FAT ファイルシステム形式に標準として存在しない Unix ファイル セマンティクスの提供です。[1] ファイルシステム ドライバは相互に排他的です。特定のディスク ボリュームをマウントするには、一度に 1 つのドライバしか使用できません。したがって、どのドライバを選択するかは、サポートする長いファイル名と Unix セマンティクス、およびディスク ボリュームをどのように使用したいかによって決まります。[10]
msdos
msdosファイルシステム ドライバは、追加の Unix ファイル セマンティクスと長いファイル名のサポートを提供しません。このドライバを使用して FAT ディスク ファイルシステムをマウントした場合、8.3 ファイル名のみが表示され、長いファイル名にはアクセスできず、ディスク ボリューム上のあらゆる種類の長いファイル名データ構造は維持されません。vfatファイルシステム ドライバは、 Microsoft Windows がFAT 形式ボリュームでのVFAT長いファイル名のサポートに使用するのと同じディスク データ構造を使用して長いファイル名をサポートしますが、追加の Unix ファイル セマンティクスはサポートしません。umsdosファイルシステム ドライバは、長いファイル名のサポートと追加の Unix ファイル セマンティクスを提供します。ただし、これは Linux 以外のオペレーティング システムのファイルシステム ドライバでは認識されないディスク上のデータ構造を使用して行われます。[1] [2] [10] [11]
ウムスドス
3 つのうちumsdosの主な利点は、完全な Unix ファイル セマンティクスを提供していることです。したがって、Linux を FAT ディスク ボリュームにインストールして実行したい場合 (そのようなセマンティクスが利用可能であることが求められる) に使用できます。ただし、そのようなディスク ボリュームにインストールして実行している Linux は、たとえばext2ファイルシステム形式でフォーマットされたディスク ボリュームにインストールして実行している Linux よりも遅くなります。[1] [12] さらに、Windows から Linux に切り替えるたびにユーティリティ プログラムを定期的に実行しない限り、Windows によってディスク上のファイルやディレクトリに加えられた特定の変更によって、Linux ではアクセスできないファイルに関するエラー メッセージが表示されます。[4]
vfat
vfat は、完全な Unix ファイル セマンティクスを欠いており、Linux を FAT ディスク ボリュームにインストールしてそこから実行する機能がないものの、Linux と Windows などの他のオペレーティング システム間で FAT ディスク ボリューム上のデータを共有するという点では、umsdosの前述の欠点はありません。そのデータ構造は、Windows が VFAT ロング ファイル名に使用するものと同じであり、Windows と Linux のデータ構造がばらばらになるのを防ぐために同期ユーティリティを実行する必要はありません。このため、ほとんどの状況で Linux の FAT ファイルシステム ドライバーの中で最も適切なドライバーです。[1] [10] [4]
共通点
前述のように、Linuxファイルシステムドライバはすべて、12ビット、16ビット、32ビットの3つのファイルアロケーションテーブルサイズをサポートしています。それらすべてがサポートするその他の共通機能は、さまざまなLinuxマウントオプションです(コマンド-oのオプションで指定されますmount):[10] [3]
uidそしてgid- これら 2 つのオプションは、ファイルシステム ドライバーに、ボリューム内のすべてのファイルの所有者ユーザー ID とグループ ID ( umsdos
/etc/passwdの場合はデフォルト) を単一の指定された値に設定するように指示します。両方の ID は数値として指定されます (ファイル内にあります)。したがって、たとえば、すべてのファイルとディレクトリの所有者 ID が 745、グループ ID が 15 になるようにvfatファイルシステム ドライバーに指定するには、mountコマンドは として呼び出されますmount -t vfat -o uid=745,gid=15。[10] [3] Linuxファイルシステムドライバは現在、DR-DOS、PalmDOS、Novell DOS、OpenDOS、FlexOS、Concurrent DOS、Multiuser DOS 、System Manager 、REAL /32などDigital Researchファミリーのさまざまなオペレーティングシステムで実装されているFAT12/FAT16/FAT32ボリューム上のファイル/ディレクトリパスワードや、 FAT12/FAT16ボリューム上の読み取り/書き込み/削除/実行権限に対するマルチユーザーのワールド/グループ/所有者アクセス許可をサポートしていません。 umask- このオプションは、ボリューム内のすべてのファイルにグローバルに適用されるumaskを設定します。たとえば、vfatファイルシステム ドライバーに「グループ」または「その他」のアクセスを許可しないように指定するには、
mountコマンドを次のように呼び出しますmount -t vfat -o umask=077。[10] [3] conv- このオプションは、ファイル内容の変換セマンティクスを指定します。ファイル システム ドライバーは、ファイルの読み取りと書き込み時に、ファイル内の改行規則を LF 終端と CRLF 終端の間でオンザフライで変換できます。デフォルトでは、この変換は完全に無効になっています。ファイル システム ドライバーは、一部のファイルに対して変換を実行し、ファイル名の拡張子部分に基づいてどのファイルを変換するかを自動検出しようとしたり、すべてのファイルに対してグローバルに実行したりできます。これらの 3 つの変換レベルは、それぞれ
conv=b(「バイナリ」の場合)、conv=a(「自動検出」の場合)、conv=t(「テキスト」の場合) として指定されます。最後の 2 つのオプションには、非テキスト ファイル データが破損する固有のリスクがあります。変換なしがデフォルトです。[10] [3]
ウムスドス
データ構造
umsdos FATファイルシステムドライバは、 Unixファイルセマンティクスに関連するすべての追加情報を、別のFATファイルシステムドライバにとっては、各ディレクトリとサブディレクトリ内の通常のファイルであるように見えるものに格納します--LINUX-.---。[1] [10] [4] [3] [13]
特定のディレクトリにこのファイルがない場合、つまりデフォルトでは、umsdosファイルシステム ドライバは、ディレクトリに対してmsdosファイルシステム ドライバが行うのと同じセマンティクスを提供します。つまり、8.3 ファイル名のみで、追加の Unix ファイル セマンティクスはありません。umsdosドライバの追加機能を有効にするには、ディレクトリにそのファイルを作成し、その内部データをディレクトリ内の既存のエントリの通常の FAT データと同期させる必要があります。これは、と呼ばれるツールで行われますumssync。[1] [10] [4]
これは、Windows から Linux に切り替えるたびに、ディスク ボリューム上のすべてのディレクトリで実行されるユーティリティ プログラムです。これにより、umsdosファイルシステム ドライバーは、Windows によってファイルやディレクトリに加えられた変更を、その--LINUX-.---ファイル内のプライベート データ構造に組み込むことができます。デフォルトでは、このumssyncツールは--LINUX-.---、まだ存在しないディレクトリにファイルを作成し、ディスク ボリューム内のすべてのディレクトリにそのようなファイルを作成します。Windows と Linux を切り替える場合、この動作は望ましくないと見なされることがよくあります。したがって、Windowsumssyncから Linux に切り替えた後に呼び出す場合 (通常は、Linux の起動時に起動スクリプトからツールを実行することによって行われます) の通常の操作モードでは、-cコマンドにオプションを使用して、--LINUX-.---まだ存在しないディレクトリに新しいファイルが作成されないようにします。[1] [10] [4]
FAT に Linux をインストールする
前述のように、umsdos はLinux を FAT 形式のディスク ボリュームにインストールし、ブートストラップして実行することを可能にします。この利点は、ハード ディスクを再パーティションする必要なく、DOSがすでにインストールされているコンピュータで Linux を使用できることです。このようなシナリオでは、Linux はボリューム ブート レコードから直接ブートストラップされません。代わりに、最初に DOS がブートストラップされ、次にloadlinまたは linld を使用して DOS から Linux をブートストラップします。[4]
このようなインストールの慣例により、Linux のルート ディレクトリはDOSブート ボリュームのルート ディレクトリのサブディレクトリになります(例: C:\LINUX)。したがって、さまざまな Linux のトップレベル ディレクトリは、DOS では、C:\LINUX\ETC( の場合/etc)、C:\LINUX\BIN( の場合/bin)、C:\LINUX\LIB( の場合/lib) などのディレクトリになります。umsdosファイルシステム ドライバは、すべてのパス名の先頭に を自動的に追加します。Linux のルート ディレクトリの場所は、まず コマンドのオプションを介して umsdos ファイルシステム ドライバにC:\LINUX\提供されます。したがって、たとえば は、などのコマンド ラインで呼び出されます。[4] [13]loadlinloadlinloadlin c:\linux\boot\vmlinuz rw root=c:\linux
このようなディレクトリに Linux をインストールするには、まずアーカイブからファイルをそのディレクトリとそのサブディレクトリに解凍するだけです。このようなインストールでは、通常、 Linux 用のスワップ パーティションではなくスワップ ファイルを使用する必要がありますが、これはハード ディスクを再パーティション化したくないという要望に関係しており、umsdosファイルシステム ドライバー自体とは関係ありません。[4]
カーネルのサポートなしで FAT 形式のボリュームにアクセスする
カーネル内のファイルシステム ドライバーにより、FAT フォーマットのボリューム上のファイルやディレクトリに通常の方法でアクセスできますが、mtoolsユーティリティ スイートを構成するユーティリティ プログラムを使用して、カーネル ドライバーのサポートなしでアクセスすることもできます。vfat FATファイルシステム ドライバーと同様に、mountlo は Microsoft Windows が使用するのと同じディスク データ構造を使用して長いファイル名をサポートします。[3] [14] [15]
あるいは、FUSEファイルシステムドライバ(FatFuse、FuseFat、mountlo)のいずれかを使用することもできます。[16]
POSIXオーバーレイファイルシステム
UMSDOSの現代版はPOSIXオーバーレイファイルシステム(posixovl)である。これはFUSEで動作する。[17]
参照
- DMSDOS (Linux 用の DoubleSpace/DriveSpace/Stacker 互換の圧縮 FAT ボリューム)
- FATファイルシステムの設計
参考文献
- ^ abcdefgh スタンフィールド、ヴィッキー; スミス、ロデリック W. (2002)。Linuxシステム管理。クレイグ ハント Linux ライブラリ (第 2 版)。ジョン ワイリー アンド サンズ。p. 166。ISBN 978-0-7821-4138-2。
- ^ ab Ward, Brian (2004). Linux の仕組み: すべてのスーパーユーザーが知っておくべきこと。No Starch Press シリーズ。No Starch Press。p . 41。ISBN 978-1-59327-035-3。
- ^ abcdefg Smith, Roderick W. (2000). マルチブート構成ハンドブック。ハンドブックシリーズ。Que Publishing。pp . 256、341–342。ISBN 978-0-7897-2283-6。
- ^ abcdefghi McCune, Mike (2001). Linux と Windows の統合。オープンソーステクノロジーシリーズ。Prentice Hall PTR。pp. 7–9。ISBN 978-0-13-030670-8。
- ^ 「v2.6.10 から v2.6.11 への変更の概要」www.kernel.org 。2017年 11 月 15 日閲覧。
- ^ 「UMSDOS ファイルシステム: UVFAT サポート」。linux.voyager.hr 。2015 年 7 月 16 日閲覧。
- ^ MuLinux プロジェクト
- ^ Monkey Linux の説明
- ^ Linux/Windows の組み合わせ: うまく機能させるにはこれらのリソースを使用してください
- ^ abcdefghij ロデリック・W・スミス (2005). Windows の世界における Linux . O'Reilly Media, Inc. p. 449. ISBN 0-596-00758-2。
- ^ Negus, Christopher (2007)。Linux バイブル: Ubuntu、Fedora、KNOPPIX、Debian、SUSE、その他 11 のディストリビューションを起動。バイブルシリーズ。John Wiley and Sons。159ページ。ISBN 978-0-470-08279-9。
- ^ Strobel, Stefan; Elling, Volker (1997) 。Linux、PC でワークステーションを解き放つ。The Complete Linux Kit、Rainer Maurer (第 3 版)。Springer。p. 43。ISBN 978-0-387-94880-5。
- ^ ab Danesh, Arman (2002). Linux を使いこなす: 必須のヒントとテクニック。1001 のヒントシリーズ。Cengage Learning。pp. 19。ISBN 978-1-884133-78-7。
- ^ Rajagopal, Raj (2000)。マルチオペレーティングシステムネットワーキング: Unix、Netware、NT との共存。Auerbach ベストプラクティスシリーズ。CRCプレス。pp . 25–21。ISBN 978-0-8493-9831-5。
- ^ ウェルシュ、マット (2003) 。Linux の実行。Linux の基本ガイド (第 4 版)。O'Reilly Media, Inc. p. 405。ISBN 978-0-596-00272-5。
- ^ 「FUSE: NonNativeFileSystems」。2015年9月15日時点のオリジナルよりアーカイブ。
- ^ 「POSIX オーバーレイ ファイルシステム」。
さらに読む
- Gelinas, Jacques (2001-12-01). 「UMSDOS HOW-TO」. 1.2. Linux ドキュメンテーション プロジェクト.
{{cite journal}}:ジャーナルを引用するには|journal=(ヘルプ)が必要です - UMSDOS 開発者ページ
- ライアン・ポールによる新しい Linux パッチは Microsoft の FAT 特許を回避できる可能性がある
