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サイズ全体がコピーされます。