Saya sedang mengerjakan sistem tertanam dengan versi busybox dari dd. Saya mencoba untuk menguji erase ke drive dari beberapa utilitas luar, namun dd tidak membaca dari disk lagi setelah menghapus, tetapi menunjukkan kepada saya data yang di-cache.
Saya mempersempitnya menjadi dd seperti ketika saya melakukan dd awal, melihat data, restart sistem saya untuk membersihkan cache, melakukan penghapusan, dan kemudian menjalankan dd lagi muncul dengan semua nol.
Namun, jika saya melakukan dd pada pengaturan pabrik, menghapus drive, dan melakukan dd lagi tanpa me-restart itu tidak akan menunjukkan kepada saya semua nol sampai restart.
Saya telah membaca di manual GNU bahwa dd mendukung iflag opt, dengan flag nocache, tetapi busybox tidak mendukung opsi itu sehingga tidak ada pertanyaan.
Pertanyaan saya adalah bagaimana saya bisa memaksa dd untuk membaca dari disk lagi daripada dari cache?
Jawaban:
Kamu bisa mencoba
yang menjatuhkan semua jenis cache.
Untuk detail lihat
/usr/src/linux/Documentation/sysctl/vm.txt
didrop_caches
.(Catatan: pertanyaannya adalah tentang busybox dd yang sampai saat ini masih tidak mendukung
iflag=direct
.)sumber
/proc
file dinonaktifkan di beberapa konfigurasi Linux yang tertanam.dd
mencemari mereka dalam proses jika mentransfer sejumlah besar data.Berdasarkan jawaban @ sendmoreinfo:
Itu tidak mempengaruhi read-cache.
sumber
I / O langsung (mode terbuka
O_DIRECT
) harus berfungsi, tetapi kernel Anda dan / ataudd
mungkin tidak mendukungnya.sumber
Sedikit berkembang ke iflag = jawaban langsung; sediakan juga progress bar:
Tanpa iflag / oflag laporan pv selesai dan kemudian tampak seperti digantung; tetapi dd ke perangkat masih bekerja pada cache.
sumber