Ukuran file sangat aneh (lebih dari 600 PB) pada sistem file kecil

21

Saya punya file di sistem file XFS yang ukurannya sekitar 200 GB. Itu adalah gambar QCOW2 yang berisi disk virtual mesin virtual yang digerakkan KVM. Ada yang salah (mungkin itu adalah kesalahan qemu-kvm, saya tidak yakin), mesin virtualnya mogok dan sekarang saya memiliki file yang terlihat seperti itu:

191090708 -rwxr--r--. 1 root root 737571587400425984 Oct 10 10:03 973d10e0-a5e3-4a59-9f98-4b9b9f072ade

Jadi, masih menempati 191090708 blok, tetapi lsmenunjukkannya sebagai 656 petabyte.

Terlebih lagi, saya memiliki file lain dengan pra-sejarah yang sama, tetapi pada sistem file lain (bukan XFS, tetapi GFS2):

410855320 -rwxr--r--. 1 root root 7493992262336241664 Dec 13  2014 ac2cb28f-09ac-4ca0-bde1-471e0c7276a0

Ini menempati 410855320 blok, tetapi lsmenunjukkan sebagai ~ 6,6 exabytes.

Bagaimana menurut Anda, apakah aman untuk menghapus file-file ini? Terima kasih!

NB Sangat bagus untuk mengambil foto secara teratur! :) Saya tidak tahu apa yang akan saya lakukan tanpa mereka.

Volodymyr Melnyk
sumber
Terima kasih banyak untuk balasan Anda. Tentu saja, saya tahu tentang file yang jarang, tetapi pertanyaan paling penting bagi saya adalah sebagai berikut: apakah aman untuk menghapus file-file ini? Seperti yang saya lihat sekarang, ada kemungkinan kehilangan beberapa data jika sistem file rusak. Saya tidak yakin sistem berkasnya baik-baik saja, karena tidak diinginkan untuk melepas & memeriksanya, tetapi kemunculan pertama terjadi 4 bulan lalu, yang kedua - 14 bulan yang lalu, jadi saya berharap bahwa saya akan melihat bahwa ada sistem berkas apa pun korupsi jika ada. Apa yang kamu pikirkan?
Volodymyr Melnyk

Jawaban:

31

Saya dapat melihat dua kemungkinan alasan bagi Anda untuk melihat ukuran file tersebut:

  • File jarang
  • Sistem file rusak

File jarang adalah fitur pada beberapa sistem file di mana Anda dapat membuat file dengan lubang di dalamnya. Tidak ada ruang fisik yang dialokasikan untuk lubang. Membaca melintasi lubang akan mengembalikan NUL byte sepanjang jalan.

Jika alasan apa yang Anda lihat adalah file jarang, maka aman untuk menghapusnya seperti halnya file yang tidak jarang.

Jika alasan yang Anda lihat adalah kerusakan sistem file, maka tidak aman untuk menghapus file tanpa pemeriksaan sistem file. Jika sistem file rusak dengan cara di mana banyak file mengklaim menempati ruang yang sama, maka menghapus file mana pun akan menyebabkan blok tersebut dibebaskan. Setelah blok-blok yang dibebaskan digunakan kembali, korupsi menjadi semakin buruk.

Jika Anda telah melihat gejala lain yang membuat Anda berpikir sistem file mungkin rusak, Anda harus memaksakan pemeriksaan penuh sistem file sebelum menghapus file.

Jika tidak ada bukti yang menunjukkan sistem file rusak, dan file tampaknya jarang, saya hanya akan menghapus file setelah saya tidak membutuhkannya lagi.

kasperd
sumber
6

Masalahnya adalah cara Anda menghitung ukuran file.

Salah satu caranya adalah mencari offset byte terakhir (seperti ls). Cara lain adalah dengan menjumlahkan blok yang benar-benar dialokasikan (seperti du).

Apa yang Anda lihat jika mungkin file dengan data yang ditulis dengan offset sangat besar. Berarti bagian utama ruang alamat file Anda tidak dialokasikan. Tetapi Anda masih bisa membacanya.

François
sumber
Terima kasih. Bagaimana menurut Anda, tidak akankah crash apa pun jika saya hanya menghapus file ini?
Volodymyr Melnyk
1
Google "file jarang" untuk detail.
Kondybas