web-dev-qa-db-ja.com

FAT32フォーマットのストレージ上のファイルシステムリンク

FAT32だけでなく、FAT16/12もシンボリックリンクhard-linksもサポートしていません。しかし、私はこのアイデアを思いつきました:

FAT仕様では、すべてのファイルがディレクトリエントリに関連付けられていると説明されています。私の理解では、ディレクトリ内のファイルエントリはどういうわけか、または他のポイントがファイルのコンテンツを指していると言えます。

では、同じファイルコンテンツを指す2つのディレクトリエントリを定義するにはどうすればよいでしょうか。または、何が原因で私がそうすることができないのでしょうか?

使用例:カーラジオ用のUSB大容量ストレージデバイスがあり、ラジオソフトウェアがプレイリストをサポートしていないため、ディレクトリをプレイリストとして使用したい。したがって、これを実行するときのWindowsの動作は重要ではありません。

26
fishbone

あなたが話していること(「同じファイルコンテンツを指している2つのディレクトリエントリ」)はハードリンクです。 chkdskはそれらをクロスリンクとして報告し、ファイルを「修復」します(実際にはコピーを作成します)。

これは単純な問題で機能するはずです。つまりそれはハック/回避策として機能し、ファイルの名前を変更/移動/削除するとどうなるかわかりません。したがって、メインのHDDでこれを行うべきではありません。

16進エディタを使用して、ディレクトリエントリを手動で編集しました。クラスタとファイルサイズを変更し、ハードリンクの偽装に成功しました。私のカーラジオとWindows(7、64ビット)でさえ、私が使用したオリジナルの「ハードリンクされた」mp3ファイルの再生に問題はありません。

16進数エディターでデバイスを再び開くと、変更内容は元に戻されません(回答#1のchkdskの問題を参照してください。ただし、私が知る限り、とにかく手動でchkdskを開始する必要があります。

5
fishbone

MichaelPhがSuperUserに指示を投稿しました:

https://superuser.com/a/486829/51237

ディスクプローブを使用して(XPのみ、Win7で変更を書き込むにはまだ取得していません)、FATディレクトリが参照するクラスターを変更することができます。このメソッドを使用して、 DCIMフォルダー(またはサブフォルダー)は、別のスキャンデバイスで使用されるフォルダーを指します。

これが良いアイデアかどうかは別の問題であり、あなた自身の責任でこれを使用します。

  1. Eye-FiカードをUSBカードリーダーに挿入するか、SSDスロットに直接挿入し、インストールされているドライブ文字をメモします(簡単にするためにF:\と仮定)
  2. カードとサブディレクトリのすべてのWindows Explorerウィンドウが閉じていることを確認します。
  3. ディスクプローブの実行
  4. ドライブ->論理ボリュームを選択します
  5. [論理ボリュームを開く]ダイアログで、[論理ボリューム]リストの[F:\]をダブルクリックします
  6. ハンドルFの[アクティブに設定]ボタンをクリックします。現時点では、ハンドルを読み取り専用のままにすることができます。
  7. [ツール]-> [セクターの検索...]を選択します。
  8. 全文検索をチェックし、検索する文字を入力して検索にDCIMを入力します
  9. 一致するものが見つかるはずです(私のものは8192です)。 [一致するものが見つかりました...]ダイアログで[いいえ]を選択して、残りの検索をキャンセルします。
  10. Sectors-> Readを選択し、Number of Sectorsを少なくとも2つに増やして、ディレクトリテーブル全体が含まれるようにします。
  11. ディスクプローブ画面の右側にあるASCII=でDCIMを検索します。これは、ディレクトリのFATエントリの始まりです。レコードの27番目のバイトの16進値をメモしてください(各エントリは32バイトです)、これはディレクトリクラスタの参照です。この値は、DCIMディレクトリを必要に応じて通常の使用に戻すために必要です。
  12. DCIMをリダイレクトするディレクトリのエントリを見つけ、レコードの27番目のバイトを書き留めます。
  13. DCIMレコードの27番目のバイトに戻り、手順11でメモした値に変更します。
  14. 「セクター」->「書き込み」を選択し、「セクターの書き込み」ダイアログで「書き込み」をクリックします。セクターを読み取り専用で開いた場合、警告が表示されます。はい、変更してよければ上書きします。

Windows ExplorerでDCIMディレクトリを開くと、ターゲットディレクトリの内容が表示されます。

2
AlcubierreDrive