Ubuntu の sync コマンドは RAM 内のすべてのデータを HDD に転送しますか?

Ubuntu の sync コマンドは RAM 内のすべてのデータを HDD に転送しますか?

ライブ CD から Ubuntu を実行しているときに、重要な未保存のファイルが開いたまま、PC がフリーズしてしまいました。Magic SysRq を使用して sync コマンドを使用すると、現在 RAM にあるすべての未保存のデータが HDD に転送されるのでしょうか?

アップデート:

わかりました。メモリをディスクにダンプすることはできないと聞きました。今度は FireWire 方式を試してみます。

答え1

いいえ。man ページから:

sync - flush file system buffers

未処理の書き込みバッファのみがフラッシュされます。これらは、プログラムがディスク上のファイルに書き込もうとしたときに作成されます。システムは実際にファイルを書き込むのではなく、RAM の空き領域にファイルを書き込み、書き込みが完了したことをプログラムに通知します。これにより、プログラムはユーザーが実行したいことを続行でき、システムはディスクのビジー状態が緩和されるまで待機して、実際にドライブにデータを書き込むことができます。

このため、Windows では USB ドライブを単に取り外すのではなく、「安全に取り外す」必要があります (ただし、最近の Windows ではリムーバブル メディアのディスク書き込みキャッシュが無効になっています)。

アプリケーション内で「保存されていない」もの、またはアプリケーションがディスクに書き込んでいないものは、コマンドを発行してもまったく影響を受けませんsync

関連情報