Cara merusak sistem file

8

Saya akan menguji 'xfs_repair' pada beberapa sistem file besar (sekitar 50 TB) karena di masa lalu penggunaan memori tinggi. Sementara saya bisa menguji program hanya pada sistem file yang benar, akan lebih baik untuk mengujinya pada sistem yang korup.

Jadi apa yang akan menjadi cara terbaik untuk merusak sistem file. Kredit ekstra jika metode ini berulang kali memberikan korupsi yang sama setiap saat ....

Untuk memberi orang ide tentang apa yang saya maksud di tahun 2006 adalah ish

"Untuk berhasil memeriksa atau menjalankan perbaikan pada sistem file multi-terabyte, Anda perlu:

  • mesin 64bit
  • a 64bit xfs _ repair / xfs _ periksa biner
  • ~ 2GB RAM per terabyte sistem file
  • RAM 100-200MB per juta inode dalam sistem file.

xfs_repair biasanya akan menggunakan lebih sedikit memori daripada ini, tetapi angka-angka ini memberi Anda gambaran kasar untuk apa sistem file besar yang> 80% penuh bisa perlu diperbaiki.

FWIW, terakhir kali ini muncul secara internal, sistem file 29TB yang dimaksud membutuhkan ~ 75GB RAM + swap untuk diperbaiki. "

James
sumber
Pertanyaan yang menarik, tetapi bisakah formulasi kutipan ditingkatkan?
Coops
Jika demikian, saya tidak tahu caranya?
James
Cobalah mengelilinginya dengan `
Brad Gilbert
Ini adalah tes yang menarik. Apakah Anda berencana memposting hasil di mana saja?
3dinfluence
Yah saya mungkin akan memposting ke milis xfs dan saya selalu bisa mengedit pertanyaan ini dengan hasilnya.
James

Jawaban:

12

xfs_db memiliki opsi blocktrash yang mana

Sampah blok metadata filesystem yang dipilih secara acak. Trashing terjadi pada bit yang dipilih secara acak di blok yang dipilih. Perintah ini hanya tersedia dalam versi debug xfs_db. Ini berguna untuk pengujian xfs_repair(8)dan xfs_check(8).

Sebagai contoh

xfs_db -x -c blockget -c "blocktrash -s 512109 -n 1000" /dev/xfstest/testfs

James
sumber
2

blok dd ke perangkat di mana sistem file berada. Anda dapat membuat skrip ini agar dapat diulang. Hanya beberapa blok acak di lokasi acak, lalu pindah.

Posipiet
sumber
Dalam sistem file 50TB yang sebagian besar kosong pasti Anda harus cukup beruntung untuk merusak sistem?
James
Nah, Anda hanya perlu menggunakan blok acak yang cukup :-). Apa pun itu, "tabrakan" mungkin lebih mungkin daripada yang Anda pikirkan, karena Paradox Ulang Tahun: en.wikipedia.org/wiki/Birthday_Paradox .
sleske
0

Anda dapat mencoba menimpa 512 byte pertama (MBR dan tabel partisi) perangkat blok.

Cadangkan dulu:

dd if=/dev/device bs=512 count=1 of=backup.bin

Dan nolkan nanti:

dd if=/dev/zero bs=512 count=1 of=/dev/device

Mesin Anda seharusnya tidak bisa boot setelah itu, Anda dapat menguji perbaikan XFS menggunakan live CD.

Karolis T.
sumber
Saya ingin memiliki korupsi yang relatif kecil karena run time dan penggunaan memori tergantung pada jumlah file dan ukuran sistem file
James
Ini hanya 512 byte dari korupsi. Ini hanya memeriksa apakah sistem file dapat pulih tanpa informasi tentang bagaimana sistem file seharusnya terlihat - jika xfs belum menyimpan beberapa superblok cadangan di suatu tempat.
towo