Menggunakan arahan dd

Perintah dd (Dataset Definition) adalah alat yang mudah, berguna, dan sangat mudah digunakan; Dengan alat ini, anda boleh melakukan perkara yang sama, pada peranti: cakera dan partisi, seperti program komersial seperti Norton Ghost, pada Windows atau program percuma seperti CloneZilla, di Linux, hanya dengan baris perintah pendek.

Sintaks Asas:

Sintaks paling asas untuk menggunakan perintah dd adalah seperti ini:

sudo dd if=origen of=destino

di mana jika bermaksud "fail input = fail input", Itulah yang anda mahu salin dan bermaksud "fail output = fail output", Iaitu fail tujuan (di mana data akan disalin);asal dan Tujuannya boleh menjadi peranti (pembaca CD atau DVD, cakera keras, disket, pendrive, partition, dll.), Fail sandaran atau gambar cakera, dll., Tetapi bukan folder atau subfolder.

Untuk penggunaan perintah ini dengan lancar, perkara pertama adalah jelas mengenai partisi / cakera keras apa yang disebut di Linux (/ dev / sda1 misalnya; / dev berasal dari device = device, dalam bahasa Inggeris). untuk mengetahui sumber dan tujuan disk / partition, sesuatu yang dapat kita ketahui dengan mudah dengan perintah sudo fdisk -lo dengan beberapa program partisi grafik seperti gparted. Semua maklumat mengenai perintah dd boleh dirujuk dengan command man dd dan info dd,

Perintah ini harus digunakan dengan hati-hati, dan selalu memeriksa urutan dan nama disk / partisi, kerana seperti disk yang diklon, ia akan menghapusnya dalam sekejap.

Sintaks dengan perintah pv: Menggunakan perintah dd dengan sintaks sebelumnya mempunyai kelemahan kecil, kerana perintah itu sangat tersimpan - ia tidak memberikan maklumat - kerana ketika dijalankan, permintaan terminal tetap tidak bergerak, jadi kita tidak tahu apa adalah apa yang berlaku dan berapa banyak masa yang tersisa untuk menyelesaikannya. Masalah kecil ini dapat diselesaikan dengan menambahkan perintah pv, (*) - yang berfungsi sebagai paip terminal yang mengukur data yang melaluinya - ke sintaks perintah dd, sehingga sekarang sintaksnya akan:

dd if=origen |pv|dd of=destino

Akibatnya, kami akan memperoleh semacam bar kemajuan di terminal, informasi mengenai bait yang dipindahkan, waktu berjalan dan kadar pemindahan, semuanya dalam waktu nyata.

(alf) - (~) └──┤ dd if = / devmmcblk0p1 | pv | dd of = / dev / mmcblk0p2 1,630GB 0:21:30 [1,12MB / s] [

Sebagai tambahan, apabila selesai, ini menunjukkan kepada kita statistik kadar pemindahan, jumlah bait yang dipindahkan dan jumlah masa yang diperlukan untuk memindahkan semua data.

(alf) - (~) d dd if = / devmmcblk0p1 | pv | dd of = / dev / mmcblk0p2 10530816 + 0 records read <=> 10530816 + 0 records wrote 5391777792 byte (5.4 GB) disalin, 3873,48 s, 1,4 MB / s 5,02GB 1:04:33 [1,33MB / s] [<=> 10530816 + 0 rekod dibaca <=> 10530816 + 0 rekod ditulis 5391777792 bait (5.4GB) disalin, 3873,48, 1,4 s, XNUMX MB / s (alf) - (~) └──┤

(*) Periksa sebelum menjalankan sebarang baris perintah dengan sintaks kedua ini, bahawa kita telah memasang pv pv pada sistem, atau memasangnya jika kita tidak memilikinya: keduanya dengan Synaptic.

Mari kita lihat beberapa contoh praktikal dan pilihan perintah ini (dalam versi dengan helah yang dijelaskan sebelumnya dengan arahan pv):

A) Mengenai cakera keras dan partition:

= Klon cakera keras:

Dengan ini kita akan mengklon cakera hda dalam hdb. (Cakera IDE):

sudo dd if=/dev/hda |pv|dd of=/dev/hdb bs=1M

Dengan ini kita akan mengklon disk sda di sdb. (Cakera SATA):

sudo dd if=/dev/sda |pv|dd of=/dev/sdb bs=1M

Dengan pilihan bs = 1M, dapat dicapai bahawa membaca dan menulis dilakukan dalam blok 1 megabait, (kurang, lebih lambat tetapi lebih selamat, dan dengan lebih banyak kita berisiko kehilangan data sepanjang perjalanan).

Perlu diingat bahawa dengan cara ini cakera dirakam "sebagaimana adanya", MBR, meja partisi, ruang kosong, dan lain-lain ..., sehingga anda hanya dapat merakam pada cakera dengan ukuran yang sama atau lebih besar.

= Tulis hanya partisi pertama (hda1) cakera sumber ke cakera tujuan (hdb):

sudo dd if=/dev/hda1 |pv|dd of=/dev/hdb bs=1M

= Bakar seluruh cakera (hda) ke partisi pertama (hdb1) cakera tujuan:

sudo dd if=/dev/hda |pv|dd of=/dev/hdb1 bs=1M

= Buat gambar - dapat bin atau iso - dari cakera keras (hda), di direktori / home:

sudo dd if=/dev/hda |pv|dd of=/home/hda.bin

= Hapus maklumat sepenuhnya pada cakera: untuk melakukan ini, isi cakera dengan aksara rawak, lima kali. Tidak akan ada jejak maklumat pada cakera:

for n in {1..5}; do dd if=/dev/urandom |pv|dd of=/dev/hda bs=8b conv=notrunc;

= Padam mana-mana partisi dan keseluruhan cakera dari mana-mana peranti:

sudo dd if=/dev/zero |pv|dd of=/dev/sdx (Padam cakera penuh)

sudo dd if=/dev/zero |pv|dd of=/dev/sdxa (Pemadaman cakera padam)

di mana: x adalah cakera yang hendak dipadamkan, a adalah partisi yang hendak dipadamkan

Operasi ini sangat berguna untuk menghapus partisi sepenuhnya, di samping itu data yang akan dihapus tidak dapat dipulihkan, oleh itu ia adalah penghapusan tahap rendah dan sangat selamat, sangat berguna misalnya ketika pendrives dijangkiti virus dengan kami tingkap sayang.

B) Pada CD / DVD

= Buat / Pasang gambar .iso dari CD (atau DVD)

Untuk membuat gambar .iso CD dalam direktori / home:

sudo dd if=/dev/cdrom |pv|dd of=/home/imagendeCD.iso

Untuk memasang gambar .iso dari CD:

sudo mount -o loop imagedeCD.iso /mnt/home

= Pulihkan DVD yang tercalar (Ini tidak dapat memulihkan keseluruhan DVD, dalam kes ini hanya sektor yang boleh dibaca). Ia juga sesuai untuk cakera keras yang rosak:

sudo dd if=/dev/cdrom |pv|dd of=/home/dvd_recuperado.iso conv=noerror,sync

Pilihan noerror berfungsi untuk mengelakkan kesalahan membaca dalam keadaan apa pun.

C) Mengenai MBR dan VBS:

= Salin / Pulihkan Master Boot Record (MBR):

Untuk menyalin MBR:

sudo dd if=/dev/hda |pv|dd of=mbr count=1 bs=512

Untuk memulihkan MBR:

sudo dd if=mbr |pv|dd of=/dev/hda

= Bersihkan jadual MBR dan partition kami:

sudo dd if=/dev/zero |pv|dd of=/dev/hda bs=512 count=1

= Bersihkan MBR tetapi jangan menyentuh jadual partition, (sangat berguna untuk menghapus GRUB tanpa kehilangan data dalam partition):

sudo dd if=/dev/zero |pv|dd of=/dev/hda bs=446 count=1

= Salin / Pulihkan Sektor Boot Volume (VBS):

Untuk menyalin VBS:

sudo dd if=/dev/hda |pv|dd of=/home/sector_arranque_hda count=1 bs=512

Untuk memulihkan VBS:

sudo dd if=/home/sector_arranque_hda |pv|dd of=/dev/hda

D) Lain-lain:

= Membakar imej cakera ke direktori / rumah kami, melangkau kesilapan cakera (sangat berguna untuk cakera yang hampir mati):

sudo dd conv=noerror if=/dev/hda |pv|dd of=~/home/imagen_disco_con_errores.iso

= Buat fail 1 Mb kosong:

sudo dd if=/dev/zero |pv|dd of=archivo_nuevo_vacio bs=1024 count=1024

= Buat fail pertukaran 2Gb:

sudo dd if=/dev/zero |pv|dd of=/swapspace bs=4k count=2048M
mkswap /swapspace
swapon /swapspace

= Tukar semua huruf menjadi huruf besar:

sudo dd if=miarchivo |pv|dd of=miarchivo conv=ucase

Gunakan perintah dd dengan program persekitaran grafik: Gdiskdump, adalah persekitaran grafik untuk perintah dd ini yang memudahkan tugas partisi klon atau cakera, dengan cepat dan mudah. Ia boleh dimuat turun dari halaman https://launchpad.net/gdiskdump/ Setelah kami membukanya, dengan izin root - sudo gdiskdump -, kami melihat bahawa program ini sangat mudah digunakan, kerana kami hanya perlu memberitahunya partition atau disk yang akan diklon (Input Format) dan tujuannya (Output Format).


43 komen, tinggalkan komen anda

Tinggalkan komen anda

Alamat email anda tidak akan disiarkan. Ruangan yang diperlukan ditanda dengan *

*

*

  1. Bertanggungjawab atas data: Miguel Ángel Gatón
  2. Tujuan data: Mengendalikan SPAM, pengurusan komen.
  3. Perundangan: Persetujuan anda
  4. Komunikasi data: Data tidak akan disampaikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Pangkalan data yang dihoskan oleh Occentus Networks (EU)
  6. Hak: Pada bila-bila masa anda boleh menghadkan, memulihkan dan menghapus maklumat anda.

  1.   sieg84 kata

    Saya hampir mendapat kesalahan penggunaan arahan dd.
    by the way, apa bezanya dengan dd_rescue?

    1.    eVER kata

      ddrescue secara lalai tidak berhenti pada kesalahan membaca dan cuba dengan pelbagai kaedah untuk mendapatkan kembali maklumat yang tidak dapat dibaca.

    2.    Sheko kata

      hahahha saya juga menggunakan perintah dd dengan teruk, jauh lebih hebat daripada yang saya sangka.

  2.   Reput87 kata

    Saya memberi komen bahawa saya percaya bahawa setiap pengguna lengkungan pada suatu ketika digunakan

  3.   Alf kata

    @ sieg84, perbezaannya adalah bahawa dd terganggu dengan beberapa kesalahan bacaan atau peranti, dalam hal ini ini tidak akan berlaku kerana blok yang rosak akan membacanya beberapa kali dan dilanjutkan dengan yang berikutnya, ia juga memberikan kelebihan bahawa Kita boleh menjalankannya beberapa kali pada gambar yang sama dan ia tidak akan bermula dari awal tetapi akan cuba menyelesaikannya.

    Perlu disebutkan bahawa dd_rescue saya tidak pernah menggunakannya.

    1.    merlin debianite kata

      Sekiranya ada GUI yang dibuat dalam qt untuk KDE yang menggunakan perintah ini? atau adakah saya perlu meletakkan jawatan.?

      1.    Julai kata

        Gdiskdump lebih daripada GUI untuk perintah ini (berdasarkannya) dan walaupun saya tidak tahu sama ada mereka melakukannya di qt (saya rasa tidak) ia pasti berfungsi untuk anda di KDE

    2.    sieg84 kata

      terima kasih atas penjelasannya.
      Saya hanya menggunakan dd_rescue untuk menyalin ISO ke USB (kebanyakannya kerana di wiki openSUSE mereka memilikinya).
      dd_rescue tu.iso / dev / sdX
      yang saya suka ialah menunjukkan bar kemajuan:
      http://box.jisko.net/i/110db781.png

  4.   krel kata

    Alfa:
    Baru-baru ini saya melihat catatan yang sama ini disiarkan di Blog Hatteras. Kemungkinan dia tidak mengambil tindakan buruk ini tetapi saya tidak tahu, sekurang-kurangnya sebagai penghargaan, adalah baik untuk merujuknya. Begitu juga dia menang dalam kedudukan laman web.

    Saya tidak mahu membuat dilema dengan ini, tetapi pada pandangan pertama artikel itu nampaknya 95% serupa kecuali untuk tangkapan skrin terminal yang telah anda sesuaikan. Malah dia menyebut sumbernya.

  5.   merlin debianite kata

    Menarik saya akui bahawa | pv | tidak kenal dia.

    Krel saya rasa sumbernya ada di wiki ubuntu atau salam arch.

  6.   Alf kata

    @krel, ini adalah:

    Sepanjang perjalanan saya di dunia ini, saya telah membaca dan mengumpulkan barang-barang, saya mempunyai buku nota dengan lebih daripada 400 catatan yang saya letakkan di Ubuntu Mexico, yang merupakan komuniti yang paling banyak saya sumbangkan pada awal saya, sayangnya perkara dapat diulang, jika anda mengkaji jumlah yang besar hantar di internet, mereka hampir sama, kebanyakannya lebih pendek.

    Saya boleh menerbitkan 5 catatan lagi dalam seminggu dan anda boleh menemui yang lain yang serupa atau sama, alasannya? Ubuntu mempunyai paling banyak forum / blog di internet.

    Saya rasa tidak akan ada dilema, dan, jika pentadbir mempertimbangkan untuk menghapusnya, itu tidak akan menyinggung perasaan atau mengganggu saya sama sekali, saya mematuhi peraturan dan apa yang berikut, di antara nota saya 8 bahawa saya tidak mengikutinya) Saya ingin menambahkan sesuatu untuk mengelakkan kebetulan.

    salam

    1.    krel kata

      Bukan misteri bagi siapa pun bahawa paling banyak hanya 10% kandungan yang dihasilkan di web yang baru. Dengan kandungan 90 yang lain digandakan, diperbaharui atau diselamatkan, dan saya tidak mengatakan bahawa ini tidak penting, sebaliknya, ia adalah bentuk penyebaran pengetahuan.

      Walau bagaimanapun, di mana saya berhenti adalah perkara lain. Apabila anda mempunyai blog jenis ini, ada motivasi peribadi untuk membantu dan mungkin juga mendapat pengiktirafan untuknya. Pada masa yang sama saya yakin bahawa kebanyakan mereka yang menulis kandungan mengenai Perisian Percuma bersetuju dengan idea untuk berkongsi. Walau bagaimanapun, jangan lupa bahawa walaupun lesen paling mulia seperti BSD meminta pengiktirafan.

      Juga, rujukan adalah cara sebilangan mesin pencari seperti google memperbaiki kedudukan laman web. Saya hanya mengatakan, kerana bahan itu digunakan sebagai rasa terima kasih minimum, saya akan merujuk karya itu.

      Me parece genial que compartas pero, ¿Que pierdes por hacer una referencia? Solo piensa si desde otro blog con mejor posicionamiento que este se duplicaran los contenidos de desdelinux sin referenciarlo, al final sepultarían a este blog.

      Hatteras menerbitkannya 10 hari yang lalu dan melainkan jika dia mengeluarkannya dari buku nota anda atau anda adalah Luis Puente, saya tidak dapat memahami apa yang anda katakan, hampir semuanya teks. Tidak mungkin tetapi tidak mustahil.

      Tetapi tidak ada, perkara seperti ini berlaku. Dan saya tidak tahu, kerana etika peribadi dan untuk berkolaborasi dengan rakan sekerja lain, saya akan merujuk kepadanya. Itu terpulang kepada anda, saya rasa Hatteras juga tidak mengambil jalan yang salah, sebaliknya.

      1.    MSX kata

        Memang benar, ini adalah salinan sebenar siaran ini: http://hatteras.wordpress.com/2013/01/18/algunos-usos-practicos-del-comando-dd/

  7.   Yang sebelumnya kata

    Hmm ... Saya membuat dd if = file.iso dari = / media / cakera keras ... secara tidak sengaja 😛
    ada cara untuk memulihkan fail dari cakera keras ???

    1.    meriah kata

      Anda boleh menggunakan Testdisk

    2.    merlin debianite kata

      Seorang rakan telah berlaku kepada saya mungkin dengan testdisk atau dengan distro langsung khusus untuk menyelamatkan data. Saranan saya untuk membuat sandaran untuk kali seterusnya kerana menggunakan perintah itu adalah sesuatu yang sukar pada hari-hari pemula saya untuk memformat keseluruhan cakera keras tanpa mahu dan sekarang untuk reboot dengan baik ...... Tidak perlu dikatakan, baik grub bermula.

  8.   Raul kata

    Bolehkah seseorang memberitahu saya perintah apa yang harus digunakan untuk melihat kemajuan penyalinan dengan perintah dd, maksud saya ialah melihat bar kemajuan dengan% yang telah disalin.

    slds

    1.    Julai kata

      Kawan! menambah arahan pv. Dalam catatan yang sama, dia mengatakannya hampir pada awalnya dan menerangkan cara menggunakannya. Baca lagi

  9.   Pedro kata

    menggunakan arahan ini:
    dd jika = / dev / sdc | bzip2> /media/Elements/iso.gz
    Saya telah berjaya membuat gambar iso dari cakera 16Gb dan menyimpannya ke cakera 400Gb.
    Tetapi saya tidak tahu apa perintah untuk mengembalikan gambar itu ke cakera 16GB asal atau yang lain dengan kapasiti yang sama

  10.   Luis Rodriguez kata

    soalan

    gunakan arahan ini untuk
    untuk n dalam {1..5}; lakukan dd if = / dev / urandom | pv | dd of = / dev / hda bs = 8b conv = notrunc;
    untuk cakera 2TB
    maka saya tinggal di konsol seperti itu
    >
    Sekiranya saya menjalankan perintah lain atau berapa lama prosesnya boleh dilakukan?

    terima kasih dan teruskan

    1.    Jazb kata

      Terdapat kesalahan ketik untuk… hilang di hujung baris «; selesai »tinggal« untuk n dalam {1..5}; lakukan dd if = / dev / urandom | pv | dd of = / dev / hda bs = 8b conv = notrunc; selesai »

  11.   henry salazar kata

    artikel yang sangat baik… .. Saya akan mempraktikkannya… salam kawan

  12.   Marcos_tux kata

    Sangat berguna, ini banyak membantu saya

  13.   EDFR kata

    Alf yang baik. Terima kasih atas maklumat.

    Soalan. Adakah cara untuk menyalin hanya sebahagian daripada cakera sumber? Masalahnya adalah, jika saya mempunyai cakera 120Gb di mana hanya 25Gb yang digunakan dan saya ingin membuat salinan ke cakera 40Gb, saya hanya akan berminat untuk menyalin ruang yang digunakan (25Gb), apakah ada cara dengan perintah ini ?
    Terima kasih terlebih dahulu.

    1.    yukiteru kata

      Lebih baik anda menggunakan rsync, dengan perintah rsync -av / path / to / origin / path / to / takdir anda sudah tentu akan menyandarkan semua izin anda dengan izin yang sesuai.

    2.    yukiteru kata

      Maksud saya: "semua fail anda dengan izin yang sesuai"

  14.   FOXSPY kata

    Sayang, ada yang tahu mengapa ketika menggunakan perintah dd, hanya mencapai 4.2GB dan menunjukkan bahawa failnya sangat besar? Ia adalah gambar cakera 250GB dan pergi ke cakera luaran 1TB.

    sudo dd if = / dev / sda | pv | dd of = / home / fox / backup.iso

    1.    Penculik kata

      Kesalahan 4Gb memberikannya kepada anda kerana anda cuba membuat sandaran dalam partition dengan fs FAT16

  15.   Berne kata

    Blog yang bagus. Entri yang sangat berguna. Saya telah melihat penggunaan perintah ini di tempat lain, tetapi mereka sama sekali tidak menjelaskan apa-apa. Terima kasih.

  16.   Carlos Torres kata

    hello Saya mempunyai mesin suntikan di mana program itu hilang kerana mereka menggantikan timbunan bios, kita tidak mempunyai sandaran tetapi kita mempunyai mesin lain yang sama, ia hanya mempunyai liut dan port bersiri dan selari, bagaimana saya boleh membuat sandaran mesin ini untuk memuatkan yang lain, saya harap anda dapat menolong saya terima kasih

  17.   ernesto kata

    Saya hanya mahu menyalin partition tanpa bermula dari LIVE CD. Contohnya saya mempunyai cakera dengan / dev / sda1, / dev / sda5, / dev / sda6 dan saya ingin membuat salinan ke / dev / sda5 dari cakera lain / dev / sdb1

    perintahnya adalah dd jika = / dev / sdb1 dari = / dev / sda5 bs = 1M ????

  18.   Peter Lobato kata

    Helo apa khabar. Saya juga tinggal di Guadalajara.
    Artikel anda mengenai arahan DD sangat menarik. Saya ingin mencuba sebilangan pengedaran Linux, khususnya Archlinux, tetapi saya belum dapat menggunakan arahan DD dan menyalin Archilinux ISO yang sudah saya muat turun, ke stik USB. Saya tidak tahu sama ada anda boleh memberi saya tanda untuk memulakannya. Terima kasih, Pedro lobato

  19.   Victor kata

    Kerana apabila iso dirakam dengan perintah "dd", ia hanya berfungsi untuk boot pada beberapa PC?
    Tamat Saya mempunyai 2 komputer riba dan tidak ada yang menggunakan iso dari sebarang pengedaran linux; tetapi sebaliknya, ia boot pada PC desktop lama dengan cakera terbiar

    1.    seb kata

      Perkara terbaik adalah bermain dengan selamat menggunakan unetbootin, dengan dd Saya juga dibiarkan dengan persoalan mengapa kadang-kadang ia tidak berfungsi.

      1.    meriah kata

        Saya rasa ia tidak bergantung pada DD tetapi pada ISO. Perkara yang sama dengan Unetbootin, ia tidak berfungsi dengan baik dengan semua pengedaran.

  20.   Victor kata

    Kadang-kadang ia berfungsi pada semua PC tetapi anda perlu menambahkan mbr dan syslinux ke usb untuk proses; tetapi ini panjang dan membosankan.
    Bahagian mudah mengenai unetbooting

    Hati-hati: ini bukan iso atau dd bagi saya, ia adalah cara anda merakamnya.

  21.   danny kata

    Saya mempunyai keraguan jika saya menggunakan arahan ini:
    sudo dd if = / dev / zero of = / dev / diskdrive
    Daripada ini, pemformatan tahap rendah adalah sama atau memerlukan masa lebih lama daripada ini:
    sudo dd if = / dev / zero of = / dev / diskdrive bs = 1M ..

  22.   arg0s kata

    Bolehkah perintah dd digunakan untuk menghapus fail tertentu?

    contohnya

    dd if = / dev / urandom of = / home / myfile delete

  23.   arg0s kata

    dengan bs = 1M ia menjadi lebih pantas

  24.   alex kata

    Dan jika saya akan membuat salinan yang tepat dari satu cakera ke cakera yang lain, dengan semua partisinya (pertukaran, sda ...) dan kedua-dua cakera sama, tetapi satu di PC dan yang lain menggunakan NAS melalui rangkaian? ???
    terima kasih

  25.   Gerardo kata

    Komen, saya menggunakannya dengan status = kemajuan pada akhir dan saya tidak memerlukan pv, jadi debian berfungsi dengan baik untuk saya melihat kemajuannya.
    Dan yang kedua, adakah cara untuk mendapatkan hanya data dan bukan keseluruhan unit, kerana jika ia adalah cakera 2TB dan saya hanya menggunakan 100 GB, saya memerlukan semua ruang itu. Adakah terdapat cara untuk membuat sandaran 100GB itu? Dan apabila saya menyebarkannya ke media lain, ia mungkin disk yang lebih kecil mungkin salah satu dari 500?

  26.   Alexander kata

    Tolong !!!
    Laksanakan perintah
    dd if = cbpp-9.0-amd64-20170621.iso dari = / dev / sdb

    semuanya bagus ... tetapi sekarang saya mahu menggunakan usb sebagai unit simpanan dan ...

    USB tidak dipasang, bahkan tidak muncul di GParted.

    Adakah ada yang tahu apa yang boleh saya lakukan.

    PS: yang akan menjadi program terbaik untuk memulihkan maklumat dari cakera dan CD DVD….

    1.    Anonymous kata

      anda mesti menguji semula partition dengan fdisk