(poster pertama kali) Saya ingin memperlambat seberapa cepat ddrescue menyalin data. Saya sedang menggambar hard drive dari laptop linux saya ke desktop windows saya. ddrescue dapat berjalan lebih cepat dari yang dapat diunduh oleh komputer saya, jadi itu mencekik internet komputer saya. Saya membayangkan hal-hal seperti ini sesekali, dan ingin tahu apakah ada cara untuk menekan ddrescue sedikit, baik dari desktop Windows, atau laptop linux. (Windows 10, Parted Magic)
Terima kasih atas bantuan Anda?
Jawaban:
Saya tidak punya solusi sederhana untuk itu
ddrescue
.EDIT: Saya punya solusi yang tidak begitu sederhana sekarang.
Mempersiapkan file target
Anda perlu mengetahui ukuran hard drive sumber dalam unit 512-byte. Simpan dalam variabel.
File target harus memiliki ukuran yang sesuai sebelumnya.
Mempersiapkan perangkat tertunda
Pertama, Anda membutuhkan perangkat loop.
Perintah kedua memberi tahu Anda perangkat loop mana yang terkait
target.dd
. Di sini saya menganggap itu/dev/loop0
.Kemudian Anda membuat perangkat dengan perangkat mapper.
Nomor
500
dalam contoh ini menyatakan bahwa setiap operasi penulisan aktif/dev/mapper/delayed_target
akan ditunda hingga 500 ms. (Lihatman dmsetup
dan dokumen ini untuk detail.)Membaca yang sebenarnya
Tombol
-c 2048
memberitahuddrescue
untuk memproses 2048 * 512 byte pada satu waktu, itu satu megabyte. Karena-D
program menghilangkan caching dll. yang akan mengumpulkan banyak operasi tulis menjadi satu. Dengan-D
setiap megabyte membentuk operasi tulis terpisah yang mencapai keterlambatan 500 ms.Tweaking
Satu perubahan adalah untuk mengubah
-c 2048
diddrescue
doa. Lain - untuk mengubah penundaan dalamdmsetup
(Lihat Pembersihan bagian).Kamu selalu bisa berhenti
ddrescue
dengan Ctrl + C , atur penundaan jika perlu, jalankan kembaliddrescue
dengan logfile yang sama dan mungkin yang lain-c
parameter - dan itu akan berlanjut. Eksperimen untuk menemukan nilai yang sesuai dengan kebutuhan Anda.Pembersihan
(Untuk mengubah penundaan, kembali ke
dmsetup create
sekarang.)Catatan
Alih-alih menunda menulis ke file target Anda dapat menunda membaca dari perangkat sumber. Tampaknya menjadi cara yang lebih baik karena tidak perlu perangkat loop. Namun, pengujian saya menunjukkan bahwa ada pembacaan langsung dari perangkat mapper yang baru dibuat. Bacaan ini memukul penundaan berkali-kali dan memblokir
dmsetup
diri. Semua interpretasi saya mungkin salah, masih ada penundaan signifikan setelahnyadmsetup create
. Itu membuat tweaker (jika tidak semua prosedur) hampir mustahil.Jawaban asli saya:
Dari pengalaman saya
ddrescue
secara signifikan lebih baik daripadadd
hanya jika ada kesalahan baca. Jika disk Anda umumnya dalam kondisi baik dan Anda mengharapkan kesalahan baca jarang terjadi, Anda dapat menggunakannyadd
denganpv
.Contoh:
Itu
noerror
parameter untukdd
membuatnya berlanjut setelah kesalahan baca terjadi, jika ada;sync
penyebabdd
untuk menghasilkan nol dalam kasus itu, sehingga data yang baik kemudian ditempatkan dengan offset yang tepat dalam file gambar. Saya lebih suka besarbs
untuk kinerja hdd. Perhatikan bahwa dengan besarbs
satu kesalahan baca dapat menyebabkan sebanyak 32MiB nol yang salah pada gambar, jadi Anda mungkin perlu:dd
inibs
,skip
,seek
danconv=notrunc
opsi untuk melakukan apaddrescue
tidak secara otomatis: membaca dan menyimpan sebanyak mungkin, mudah-mudahan mengurangi nol yang salah menjadi 512B atau 4096B per kesalahan baca (angka-angka ini adalah ukuran sektor umum untuk disk).ddrescue
, lalu lariddrescue
hanya membaca ulang fragmen sumber yang bermasalah; mengacu padainfo ddrescue
pada struktur file log.Dalam kedua kasus yang disimpan stderr dari
dd
akan berguna untuk mencari sektor yang bermasalah, karenanya2>dd.log
pengalihan.Untung dengan
pv
adalah kemampuannya untuk mengubah batas kecepatan dengan cepat (ganti PID dengan yang sebenarnya pid dari aslinyapv
digunakan dengandd
):Dengan cara ini Anda dapat menyesuaikan batas tanpa memulai dari awal.
sumber