カーネル3.12が実行されているBBBベースのカスタムボードがあります。
アンマウントと同期について疑問があります。
スクリプトがパーティションをアンマウントしているとしましょう。保留中の書き込みを完了するには、sync
の前にumount
コマンドを実行する必要がありますか? ?
いいえ、sync
の前にumount
を実行する必要はありません。 umount
は、ファイルシステムを実際にマウント解除する前に、保留中の書き込みをすべて完了します。また、一部のプロセスがまだファイルシステムを使用している場合は、アンマウントも拒否されます。現在の作業ディレクトリとして。
編集:アンマウントは主にfs/namespace.c
で処理されます。 sync
への明示的な呼び出しはありませんが、「このマウントポイントにアンマウントのマークを付け、それ以上の操作を拒否し、すべての操作が完了したらアンマウントする」というコメントが表示されます。 。使用中の明示的なチェックも確認できます。
umount
が保留中のすべての操作を実際に完了していることを簡単にテストできます。遅いUSBスティックをマウントし、大きなファイルをそれにコピーして、umount
の後に直接cp
を呼び出します。新しいプロンプトが表示されるまで数秒かかります。別のウィンドウでdstat
などを実行すると、まだ進行中の書き込み操作が表示されます。これは、sync
と入力した場合とまったく同じ動作です。