Ubuntu 17.10を使用しています。
Windows7 USBインストーラーを準備するために、USBペンドライブをNTFSにフォーマットしました。
このペンドライブに起動可能なフラグを設定し、ファイルをコピーしました。
編集1:USBペンドライブは、udevによって自動的にマウントされます。
umount /dev/sdb1
の完了には10〜12分かかります。
マウントオプションは次のとおりです。
$ mount | grep sdb
/dev/sdb1 on /media/mansfeld/Win7_USB_Installer type fuseblk (rw,nosuid,nodev,relatime,user_id=0,group_id=0,default_permissions,allow_other,blksize=4096,uhelper=udisks2)
編集2:cp
操作はまったく瞬時ではなく、ファイルをUSBペンドライブにコピーするのに3分かかりました。
編集3:sync
操作(cp
の直後に実行)が完了するまでに12分かかりました!ただし、umount
は瞬時になります。
FAT32の場合(マウント中も同期が無効になっている)、同じ動作に気付きます。
NTFS USBペンドライブのアンマウントに時間がかかる理由はありますか?
おそらくから苦しんでいます バッファリング キャッシング。 USBスティック(および一般的なハードディスク)への書き込みを高速化するために、Linuxはファイルシステムキャッシュを使用します。
スティックに何かを(考えて)書き込むと、まず(RAM内の)キャッシュに書き込まれ、cp
コマンド(たとえば)はすぐに非常に高速な書き込み操作のふりを返します。他のことをしている間、キャッシュの内容はバックグラウンドでスティックに書き込まれます。スティックのLEDがまだ点滅していることに気付く場合があります(スティックによって異なります)。
書き込み操作の直後にumount
を発行すると、umount
は、データが失われないことを確認するために、すべてのファイルシステムのキャッシュコンテンツがスティックに書き込まれるまで待機します。
sync
を使用すると、手動でキャッシュを空にし、スティックにデータを書き込むことができます。ただし、(sync
を待つ代わりに)umount
が完了するのを待つ必要があるため、これは合計経過時間を短縮しません。ただし、umount
は、キャッシュが既にフラッシュされているため、すぐに戻ります。
要約すると、大きなファイルまたは多数のファイルをスティックにコピーした後、3つの選択肢があります。
umount
そして、完了するまで10分間待ちますsync
、10分待ってからumount
(ほぼすぐに戻ります)umount
を発行します。キャッシュはバックグラウンドで自動的に書き込まれるため、umount
はほぼすぐに返されます。ファイルをペンドライブにコピーする場合、ファイルには直接書き込まれません。アンマウントコマンドでファイルシステムの同期が行われ、アンマウントを待機している間に実際のデータが書き込まれます。 sync
の前にumount
を実行すると、umount
は即座に実行されます。