dd コマンドは、ファイル記述子で開かれたファイルの処理中に多くのディスク領域を消費します。

dd コマンドは、ファイル記述子で開かれたファイルの処理中に多くのディスク領域を消費します。

30を超えるqemu-kvmプロセスが異なるイメージで開いています。その画像が誤って削除されました。検索してみると、そのファイルがまだ開いていることがわかりました。それでも復元できます。だから私はこれに従いました。https://unix.stackexchange.com/questions/297475/accidentally-removed-a-libvirt-image-file-can-i-recreate-it。私はそのプロセスをやめました。 ddコマンドを使用して/proc/pid/fd/19ファイルをコピーします。

問題はここから始まります。

ファイルをコピーして復元した後、プロセスを再起動したところ、ファイルが復元されました。全体的な問題は、ddコマンドを使用してオープンディスクリプタをコピーするときに多くのスペースを占めることです。 「処理後、プロセスを終了してディスクリプタが削除され、コピーされたファイルのみが存在するため、ストレージスペースが同じである必要があるため、スペースを占有しないでください。」私は別のプロセスで同じ答えを試しました。しかし、ddの代わりにcpコマンドを使用しています。プロセスを終了した後はスペースを取りません。今私のスペースがどこに行ったのか疑問に思います。 ddコマンドを使用して20を超えるプロセスを再開しましたが、ディスクがいっぱいになり、残りのプロセスを再開できなくなりました。 ddコマンドは占有スペースを確保したいと思い、ddよりも私にはうまく機能し、スペースを占有しないので、残りのプロセスにcpを使用します。

ベストアンサー1

元のファイルがスパースファイルである可能性があります。つまり、X空間を占めるようにマークされていますが、実際にはXよりも小さくなります。ただし、fdからコピーすると、スパースが消え、Xサイズ全体がコピーされます。

おすすめ記事