Saya suka mengkloning seluruh partisi atau seluruh hard drive ke disk eksternal yang lebih besar tetapi ingin membuat file yang jarang. Saya sering menggunakan dd
untuk kloning, tetapi tidak mendukung file jarang. Sebagai solusi saya menggunakan sesuatu seperti:
cp --sparse=always <(dd if=/dev/sda1 bs=8M) /mount/external/backup/sda1.raw
Namun ini agak terlalu rumit untuk seleraku dan tidak memungkinkan saya untuk melanjutkan proses jika dibatalkan. Sangat lucu bahwa ada alat NTFS untuk ini ( ntfsclone
) tetapi tidak ada alat seperti itu untuk sistem file asli Linux (EXT2-4).
Apakah ada alat yang lebih baik untuk ini, misalnya dd
varian dengan dukungan jarang? Saya tidak mencari beberapa perangkat lunak berpemilik untuk cadangan disk tetapi hanya ingin membuat salinan klon yang jarang yang dapat saya pasang sebagai perangkat loop jika diperlukan.
sumber
cp
, tidak pernah terpikir oleh saya bahwa Anda jarang menyalin gambar disk. Saya selalu hanya mengompres mereka jika saya perlu menghemat ruang. Sekarang mengapa itu dalam pertanyaan bukan jawaban?Jawaban:
Kamu ingin
dd_rescue
.sumber
dd_rescue
online saya menemukan bahwa ada juga alat yang berbeda yang disebutddrescue
(tanpa garis bawah) yang dikembangkan secara independen daridd_rescue
tetapi tampaknya pada dasarnya melakukan hal yang sama. Saya hanya menyebutkan bahwa di sini sebagai FYI umum.dd_rescue
danddrescue
bukan hal yang sama. Secara teoritis mereka melakukan pekerjaan yang sama, tetapi umumnya saya lebih beruntung dengan yang lebih tua / aslidd_rescue
.-s
dan posisi ke perintah asli. (Jadi akan terlihat sepertidd_rescue -a -b 8M -s 42000k /dev/sda1 /mount/external/backup/sda1.raw
.)Hanya untuk melengkapi panggilan untuk ddrescue . The
--sparse
atau-S
bendera memungkinkan tujuan yang akan ditulis jarang:Atau dengan opsi panjang:
Atau jika Anda lebih suka MiBs :
Agar penyelamatan terputus dan dilanjutkan, Anda juga dapat menggunakan file log:
Perhatikan bahwa GNU
ddrescue
dandd_rescue
program yang berbeda. Tetapi GNUddrescue
tampaknya lebih luas. Misalnya sudah dikemas dengan GRML .sumber
dd if=sda1.raw of=/dev/sdb1
. Namun, untuk menggunakan ddrescue untuk pemulihan, Anda cukup mengubah sumber / tujuan yang Anda gunakan untuk penyelamatan ke sumber / tujuan baru, lebih disukai dengan file log baru. Jika mungkin (sering kali tidak), Anda tentu saja dapat menggunakan ddrescue untuk menyalin data langsung dari disk sumber yang buruk ke disk pengganti.Ada tambalan yang ditawarkan pada 2007 untuk memberikan dukungan file yang jarang di GNU dd, tetapi tampaknya belum membuatnya menjadi coreutils (setidaknya tidak pada 8,4). Saya ragu dd telah berubah terlalu banyak sejak itu, tambalan mungkin berlaku terhadap versi saat ini tanpa banyak pekerjaan.
Saya juga sangat terkesan dengan penggunaan kreatif dari
cp
pertanyaan Anda, dan itu membuat saya di jalur menggunakannya untuk menyelesaikan kembali (di sini dilanjutkan dari ~ 80 juta ke sumber):Edit: goreskan itu. Yang kedua
dd
tentu saja mencari posisi yang salah dalam file output, karena itu tidak sama panjang dengan input.sumber
cp
- terima kasih!Hanya menambahkan 2 sen saya. Cara lain untuk membuat file jarang dari disk mentah adalah dengan qemu-img menggunakan sesuatu seperti:
Anda dapat menggunakan ini pada satu partisi juga. Selain itu, Anda memiliki opsi untuk mengubah disk mentah / partisi menjadi format lain apa pun yang didukung qemu-img (QCOW2, VHD [x], vmdk, dll.)
sumber
Pilihan lain adalah rsync . Sebagai contoh:
Penjelasan:
-S
/--sparse
untuk melewati blok yang jarang di tulis-P
/--partial --progress
untuk menunjukkan kemajuan dan menyimpan sebagian file yang ditransfer--copy-devices
untuk menyalin konten perangkatAnda dapat menambahkan
--append
untuk melanjutkan salinan yang terputus (atau--append-verify
untuk mengkonfirmasi checksum atas kecocokan data baru dan lama).Sunting : Saya baru saja menyadari copy-devices.diff sedang dalam pertimbangan dan mungkin tidak ada pada banyak sistem (meskipun disertakan oleh Fedora , Ubuntu , Debian , dan lainnya)
sumber
Catatan: ini tidak berfungsi karena alasan yang dijelaskan dalam komentar, saya meninggalkannya di sini untuk referensi.
Pantau statistik dd dengan menggunakan kill -USR1:
Lanjutkan dengan menggunakan lewati / cari:
Tanpa $ i_bytes akan lebih sulit untuk melanjutkan. Mungkin paling mudah untuk mencatat statistik dd ke file seandainya mesin crash atau apa pun.
sumber
cp
hanya akan menimpa file yang ada, bukan? Saya tahuskip
dan opsi lainnyadd
. Masalahnya adalahcp
bagiannya.Ada xfsdump dan xfsrestore untuk XFS yang telah menjadi sistem file Linux asli untuk waktu yang cukup lama.
sumber
Mengapa tidak secara sederhana:
sumber