ファイルをUSBフラッシュドライブにコピーしようとしています。ドライブには書き込み禁止スイッチがありません。
df
は次のようになります。
$ df -h .
Filesystem Size Used Avail Use% Mounted on
/dev/sde1 1.9G 622M 1.3G 33% /media/lindenb/803C-078D
df -i
私に奇妙な出力を生成します(どこでも0)
$ df -i .
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sde1 0 0 0 - /media/lindenb/803C-078D
ドライブ上のファイルの数:
$ find . |wc -l
170
しかし、ファイルをコピーしようとすると、次のようになります。
$ mv ~/file.txt ./
mv: cannot create regular file ‘./file.txt’: No space left on device
どうすればこれを修正できますか?
フラッシュドライブのサイズは2GBです。これは、FAT16でサポートされているファイルシステムの最大サイズです。そのため、工場出荷時にFAT16ファイルシステムでフォーマットされている可能性があります。
FAT16ファイルシステムの技術的な制限により、ルートディレクトリに保存できるファイルエントリの数は限られています。この制限は、ファイルシステムがフォーマットされるときに設定されます( ソース )。ディレクトリエントリ( 長いファイル名 情報を含む場合があります)が、ディレクトリの内容を含まない場合、この制限にカウントされます。
この問題を解決するには、ファイルシステムをFAT32に変換します。 Linuxでは、すべてのファイルを一時的な場所に移動し、ドライブをアンマウントし、mkfs.vfat -F 32 /dev/sde1
を使用してFAT32に再フォーマットし、ドライブをマウントしてファイルを元に戻すのが最適な場合があります。
これを入手したとき、私が完全に理解していなかった理由で、USBデバイスがそれ自体を読み取り専用モードにするか、OSによって読み取り専用としてマークされていることがわかりました。それを修正するために私が見つけた唯一の方法は、フラッシュデバイス上の情報をバックアップし、そのパーティションテーブル、パーティション、およびファイルシステムを再作成することでした。 Linuxでは、fdiskまたはgpartedやKDE Partition Managerなどのパーティションエディターを使用してこれを実行します(前回実行する必要があったとき、fdiskとgpartedは、再帰的なパーティションテーブルエントリのためにそれに触れませんでした。実行する前に、KDE Partition Managerでプロセスを2回実行します)。