WindowsではUSBフラッシュドライブの一部のファイルを見ることができませんが、Linuxで見ることができるのはなぜですか?

WindowsではUSBフラッシュドライブの一部のファイルを見ることができませんが、Linuxで見ることができるのはなぜですか?

USBスティックに少し問題があります。 Linuxコンピュータ(Fedora 20)では、USBスティック内のファイルやフォルダを表示および操作できますが、WindowsコンピュータでUSBスティックを使用すると一部の項目が表示されません。また、Windowsによると、USBスティックにほぼ2.9GBのファイルが保存されていますが、使用できるフルファイルは500MB以上に過ぎませんでした。なぜこれが起こるのかはわかりませんが、今回が初めてではありません。この問題を永久に解決するにはどうすればよいですか?

答え1

修正する

だから今朝研究することは本当に知りませんでしたNTFS。しかし、以下の@AndrewMedicoのコメントのおかげで、いくつかを学びました。

事実は、それらのファイルが奇妙streamsで私を混乱させるということです。しかし、明らかにその問題はより深くなります。これはNTFSファイルと非常によく似ておりstreamsTransactional NTFS変更が保証されるまで一部のバックアップキャッシュにファイルの変更をコミットします。その場合、ファイルは完全にアトミックに完全にコミットされます。私はファイルの概念と混同されますstream。私はそれが非常に基本的な同様の概念でなければならず、おそらく各ファイルが複数のファイルしか持つことができないので、何らかの形で関連していると信じていますnamedunnamed streams明らかに何が起こっているのかTNTFS.推測します。私は唯一の人ではありません。:

開発者がアプリケーション開発中に考慮する必要がある複雑さと微妙な違いにより、Microsoftは将来のWindowsバージョンでTxF APIを使用しなくなることを検討しています。したがって、マイクロソフトは、開発者が代替案を採用するのではなく、代替案を使用して調査することを強くお勧めします。Transactional NTFSAPIプラットフォームは、Windowsの将来のバージョンでは使用できなくなる可能性があります。

以下のWindowsイメージの最適化を実行すると、ファイルが消えて再び表示される問題がありました。見た目には、ディスクを完全に取り出した後でも、実際にはほとんど切り取られました。当時の私の理論は、Linuxキャッシュがファイルへの変更をコミットしていないことでしたstreams。さて、予想通り原子コミットを処理できないと思います。

ファイルの削除

DeleteFileTransactedこの関数を呼び出すと、ファイルまたはディレクトリが削除されます。まだ目立つ外部読者の皆様へ。

*ノート みんな*handlesファイルで処理されたトランザクションはにある必要がありますtransactionhandles正しく閉じないと、deleteこれは発生しません。削除操作commitがトランザクションの一部と見なされるようにするには、削除操作を実行する前に、ファイルに対して開いているすべてのハンドルを閉じる必要があります。これは、WindowsファイルI / Oサブシステムの一部として、ジョブがトランザクションでない場合でも、システムはファイルの最後のハンドルが閉じられるまで実際にファイルを削除しないためです。

ディレクトリの削除

RemoveDirectoryTransactedこの関数を呼び出すと、ディレクトリが削除されます。まだ目立つ外部読者の皆様へ。

ディレクトリロックの問題

トランザクション内でファイルが変更されると、ファイルパスのすべてのディレクトリコンポーネントが呼び出されます。名前変更のために修正されました。取引が終了するまで。つまり、システム防ぐあなたは名前変更トランザクションがコミットまたはロールバックされるまでです。進行中のトランザクション中に変更されたファイルの祖先であるディレクトリの名前を変更しようとすると、エラーで失敗します。ERROR_CANT_BREAK_TRANSACTIONAL_DEPENDENCY

ここにもっと情報がありますNTFS-3G:

代替データストリーム(ADS)

NTFSはすべてのデータをストリームに保存します。すべてのファイルに名前のないデータstreamそして、名前付きデータがたくさんあるかもしれませんstreams。ファイルのサイズは、名前のないデータのサイズですstream。デフォルトではntfs-3g読み取りのみ可能名前のないデータstreamオプションを使用して"streams_interface=ウィンドウ"(lowntfs-3gでは不可能)名前付きデータストリームを読み取ることができ、コロンの後にストリーム名を指定するだけです。たとえば、

cat some.mp3:artist

名前付きデータストリームは通常のファイルのように動作するため、読み書き、削除することもできます(rmを使用して)。 "ntfs.streams.list"拡張属性をインポートすると、ファイル内のすべての名前付きストリームを一覧表示できます。

目的を設定するには、モジュールパラメータを使用できます。

streams_interface=value

このオプションは、ユーザーがアクセスする方法を制御します。代替データストリーム(ADS)つまり、「None」または「.」named data streamsのいずれかに設定できます。このオプションをなしに設定すると、ユーザーは指定されたデータストリームにアクセスできなくなります。 (無効)に設定すると、ユーザーはWindowsと同じようにアクセスできます(例:cat file:stream)。に設定すると、指定されたデータストリームがマッピングされ、ユーザーが作業できるようになります。windowsxattrwindowslowntfs-3gxattrxattrs{get,set}fattr utilitiesデフォルトはxattrLinuxです。他のオペレーティングシステムでは使用できません。

私の考えでは、私たちはこの問題に苦しむかもしれません。おそらく上記で読んだ内容と関係があるようです。変更ログを見ると、次のようになります。

ntfs-3g:返されたファイルの種類が修正されました。readdir()

mkntfs:Windows 8に準拠する$Info streamには、1つを接続してください。$UpCase

ntfs-3g:aという名前は便宜上deleted file予約されています。undeletion

上記の内容はすべて少なくとも一部に関連しているようです。削除TNTFS上記の記事に記載されている問題です。

これはTuxera NTFS-3Gは何を言いますか?:

ファイルを削除してもディスク容量が解放されないのはなぜですか?

これは、以下を除いてほとんどの場合に当てはまります。

一部のデスクトップ構成では、ファイルは実際には削除されず、‘Trash’パーティションルートのディレクトリに移動されます。‘.Trash-username’これらのディレクトリが空になると、ディスク領域が回収されます。

設計上、LinuxとUnixは、削除されたファイルを開いたままにするソフトウェアがない場合にのみ、削除されたファイルのディスク容量を永久に確保します。 NTFS固定サイズレコード(インデックスノード)に(1 kB) MFT小さなファイルとディレクトリを保存する機能。これらのファイルが削除されると、MFTレコードは再利用または削除解除としてマークされ、スペースを解放できません。

状態:NTFS-3Gの問題ではありません。

なぜファイルをごみ箱に移動できないのですか?

現在のユーザーがごみ箱ディレクトリを所有している場合にのみ、ファイルをごみ箱に移動できます。これは、現在のユーザーが所有権を持つように強制するか、共通の所有権と特権モードを使用してファイルの所有権を有効にすることを意味します。

消去は私の投票を取得します。

ディスクを消去しないと、表示には良くありません。これはおそらく悪い考えではないでしょう。 Linuxでこれらのファイルにアクセスできる場合は、そのファイルをバックアップしてください。その後、ドライバを入手してexFAT使用してください。はるかに簡単で、率直に言って、パーティションを分割する機能だったらいいと思います。

それともそうかもしれません安定した?

ファイルを生成すると「ジョブがサポートされていません」というメッセージが表示されるのはなぜですか?

最新のドライバがこの問題を解決しました。、アップグレードしてください

古い

これにはいくつかの理由があります。

  1. Linuxでは、ntfs3gドライバはファイルを表示できます。streams.これはよく知られておらず、ほとんど使用されていないファイルシステム機能で、NTFS主にshadow copiesWindows自体でバージョン管理されたファイルを保存するために使用されます。とにかく、時にはそのようなことが起こる。同じファイルはい2つのファイル。それともはるかにそうです。ntfs3gディスクに対するWindowsタイプの権限を適切に処理せずにマウントからファイルを削除すると、これは特に面倒です。実際、あなたは変わります文書」streams混乱しているのでよく使われないかもしれませんが、以下を見てください。ファイルストリーム

  2. あなたのUSBフラッシュドライブは分割。Windows は表示されたマルチパーティションディスクを処理しません。移動可能フラグ - これはUnix方式の重要な部分です。オプションがあります -ルーパーズそしてディスクすぐに思い出すことは二つある。

私は言った可能性が高い以前は2番目の質問がありましたが、質問をよく見てみると、最初の質問はあなたの問題のようです。

余談

私は初めてLinuxでWindowsインストールイメージを構築したときにNTFSファイルについて学びました。明らかに、Windowsのインストール中に発生するほとんどの作業は、streamsインストールプロセス中にstreamsアーカイブ内のファイルが.wim通常のファイルに変換されることです。 Linux環境でこれらの問題を解決することに興味がある場合は、強くお勧めします。wimlib

一つあるようです。第三の可能性は、多分これである:

3. ファイルやディレクトリがないか消えますか?

最上位ディレクトリが完全に空の場合、NTFSボリュームがマウントされていない可能性があります。一部のファイルが欠落している場合は、Unicode UTF-8変換サポートを完全に内蔵したNTFS-3G 2009.1.1以降にアップグレードしてください。

Mac OS Xを使用している場合、FreeBSDはディレクトリにファイルを表示しません。

デュアルブートにWindows 8を使用している場合は、クイック再起動機能が有効になっている可能性があります。これにより、Windows 8 が他のオペレーティング システムから内部パーティションに適用した変更を上書きできます。データの損失を防ぐ安全な方法は、Windows管理者として次のコマンドを実行してクイック再起動を無効にすることです。

powercfg /h off

コンピュータにSSDが接続されている場合、Windowsはハードウェア(「Intel Rapid Response Technology」)またはソフトウェア(「Expresscache」、「ReadyCache」など)によって制御されるキャッシュとして使用できます。この機能は通常 Windows および Linux と互換性がないため、無効にする必要があります。

サム:

答え2

ドライブオプションでドライブを検索します。

ただし、NTFSファイルシステムから失われたすべてのデータを回復します。

関連情報