A dd parancs használatával

A dd (Dataset Definition) parancs egyszerű, hasznos és meglepően könnyen használható eszköz; Ezzel az eszközzel ugyanezt megteheti az eszközökön: lemezeken és partíciókon, mint például a kereskedelmi programokon, például a Norton Ghost, a Windows-on vagy az ingyenes programokon, mint a CloneZilla, Linuxon, csak egy rövid parancssorral.

Alapszintaktika:

A dd parancs használatának legalapvetőbb szintaxisa a következő lenne:

sudo dd if=origen of=destino

ahol ha azt jelenti "bemeneti fájl = bemeneti fájl“, Vagyis amit másolni szeretne és jelenti "kimeneti fájl = kimeneti fájl“, Vagyis a célfájl (ahová az adatokat átmásolják);származás és A rendeltetési hely lehet eszköz (CD- vagy DVD-olvasó, merevlemez, hajlékonylemez, pendrive, partíció stb.), Biztonsági másolat fájl vagy lemezkép stb., De nem mappák vagy almappák.

A parancs zökkenőmentes használata érdekében az első dolog mindig tisztázni kell, hogy milyen partíciókat / merevlemezeket hívnak Linux alatt (például a / dev / sda1; a forrás és a céllemez / partíció megismerése, amit könnyen megtudhatunk a sudo fdisk -lo paranccsal valamilyen grafikus partíciós programmal, például a gparted. A dd paranccsal kapcsolatos összes információt a man dd és az info dd parancsokkal lehet megkeresni,

Ezt a parancsot körültekintően kell használni, és mindig ellenőrizni kell a lemezek / partíciók sorrendjét és nevét, mert ahogy egy lemezt klónoznak, egy pillanat alatt kitörli azt.

Szintaxis a pv paranccsal: A dd parancsnak az előző szintaxissal történő használata kicsi hátránnyal jár, mivel nagyon fenntartott parancs - nem ad információt -, mert végrehajtásakor a terminál parancssor mozdulatlan marad, ezért nem tudjuk, mi az történik, és mennyi idő van hátra a végrehajtás befejezésére. Ez a kis kellemetlenség megoldható a pv, (*) parancs hozzáadásával - amely végberendezésként működik, amely az rajta áthaladó adatokat méri - a dd parancs szintaxisához, így a szintaxis a következő lenne:

dd if=origen |pv|dd of=destino

Ennek eredményeként egyfajta előrehaladási sávot kapnánk a terminálban, az átadott bájtokra vonatkozó információkat, a futás idejét és az átviteli sebességet, valós időben.

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

Ezenkívül, ha elkészült, megmutatja az átviteli sebesség statisztikáját, az összes továbbított bájtot és az összes adat átadásához szükséges teljes időt.

(alf) - (~) └──┤ dd, ha = / devmmcblk0p1 | pv | dd = / dev / mmcblk0p2 10530816 + 0 olvasott bejegyzés <=> 10530816 + 0 írott bejegyzés 5391777792 bájt (5.4 GB) másolva, 3873,48 s, 1,4 MB / s 5,02 GB 1:04:33 [1,33 MB / s] [<=> 10530816 + 0 beolvasott rekord <=> 10530816 + 0 írott rekord 5391777792 bájt (5.4 GB) másolva, 3873,48, 1,4 s, XNUMX MB / s (alf) - (~) └──┤

(*) Mielőtt bármilyen parancssort futtatna ezzel a második szintaxissal, ellenőrizze, hogy telepítve van-e a pv csomag a rendszerre, vagy telepítse, ha nincs, mindkettőt a Synaptic programmal.

Nézzünk meg néhány gyakorlati példát és opciót a parancsról (annak a verziónak a trükkel, amelyet korábban a pv paranccsal magyaráztunk):

A) A merevlemezekről és a partíciókról:

= Merevlemez klónozása:

Ezzel klónoznánk a hda lemezt hdb-be. (IDE lemezek):

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

Ezzel klónoznánk az sda lemezt az sdb-ben. (SATA lemezek):

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

A bs = 1M opcióval elérhetjük, hogy mind az olvasás, mind az írás 1 megabájtos blokkokban történjen, (kevesebb, ez lassabb, de biztonságosabb lenne, és többel együtt kockáztatjuk az adatok elvesztését).

Ne feledje, hogy így a lemezt "olyan állapotban", MBR-t, partíciós táblázatot, üres helyet stb. Rögzítik, így csak azonos vagy nagyobb méretű lemezre vehet fel felvételt.

= Csak a forráslemez első partícióját (hda1) írja be a céllemezre (hdb):

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

= A teljes lemez (hda) beírása a céllemez elsõ partíciójára (hdb1):

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

= Hozzon létre egy képet - lehet bin vagy iso - a merevlemezről (hda), a / home könyvtárban:

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

= Teljesen törölje a lemez adatait: ehhez töltse meg a lemezt véletlenszerű karakterekkel, ötször. A lemezen nem lesz információ nyoma:

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

= Minden partíció és teljes lemez törlése bármilyen eszközről:

sudo dd if=/dev/zero |pv|dd of=/dev/sdx (Teljes lemez törlése)

sudo dd if=/dev/zero |pv|dd of=/dev/sdxa (Lemezpartíció törlése)

ahol: x a törlendő lemez, a a törlendő partíció

Ez a művelet nagyon hasznos bármilyen partíció teljes törléséhez, ráadásul a törlendő adatokat nem lehet helyreállítani, ezért alacsony szintű és nagyon biztonságos törlésről van szó, nagyon hasznos például akkor, amikor a pendrive-ok vírusokkal fertőződnek meg kedves ablakok.

B) CD / DVD-n

= .Iso kép létrehozása / csatlakoztatása CD-ről (vagy DVD-ről)

CD .iso képének létrehozása a / home könyvtárban:

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

Az .iso kép csatlakoztatása a CD-ről:

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

= Karcos DVD helyreállítása (Ez nem állítja helyre a teljes DVD-t, ebben az esetben csak az olvasható szektorokat). Hibás merevlemezekre is alkalmas:

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

A noerror opció az olvasási hibák elkerülését szolgálja.

C) Az MBR-ről és a VBS-ről:

= Master Boot Record (MBR) másolása / visszaállítása:

Az MBR másolása:

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

Az MBR visszaállítása:

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

= Tisztítsa meg az MBR és a partíciós táblánkat:

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

= Tisztítsa meg az MBR-t, de ne érjen a partíciós táblához (nagyon hasznos a GRUB törlése a partíciók adatvesztése nélkül):

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

= Másolási / visszaállítási kötetindító szektor (VBS):

A VBS másolása:

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

A VBS visszaállítása:

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

D) Egyéb:

= Lemezkép beírása a / home könyvtárba, a lemezhibák kihagyása (nagyon hasznos a haldokló lemezeknél):

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

= Hozzon létre egy üres 1 MB-os fájlt:

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

= Hozzon létre egy 2 Gb-os cserefájlt:

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

= Minden betű konvertálása nagybetűvé:

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

Használja a dd parancsot egy grafikus környezeti programmal: A Gdiskdump egy grafikus környezet ehhez a dd parancshoz, amely megkönnyíti a klón partíciókat vagy lemezeket, gyorsan és egyszerűen. Az oldalról letölthető https://launchpad.net/gdiskdump/ Miután megnyitottuk root jogosultságokkal - sudo gdiskdump -, azt látjuk, hogy a program használata nagyon egyszerű, mivel csak a klónozásra szánt partíciót vagy lemezt (Input Format) és célját (Output Format) kell megmondanunk neki.


Hagyja megjegyzését

E-mail címed nem kerül nyilvánosságra. Kötelező mezők vannak jelölve *

*

*

  1. Az adatokért felelős: Miguel Ángel Gatón
  2. Az adatok célja: A SPAM ellenőrzése, a megjegyzések kezelése.
  3. Legitimáció: Az Ön beleegyezése
  4. Az adatok közlése: Az adatokat csak jogi kötelezettség alapján továbbítjuk harmadik felekkel.
  5. Adattárolás: Az Occentus Networks (EU) által üzemeltetett adatbázis
  6. Jogok: Bármikor korlátozhatja, helyreállíthatja és törölheti adatait.

  1.   ostrom84 dijo

    Majdnem cukorbeteg lettem a dd parancs visszaélése miatt.
    egyébként mi lenne a különbség a dd_rescue-nal?

    1.    valaha dijo

      A ddrescue alapértelmezés szerint nem áll meg az olvasási hibáknál, és különféle eszközökkel megpróbálja helyreállítani az olvashatatlan információkat.

    2.    Sheko dijo

      hahahha A dd parancsot is nagyon rosszul használtam, sokkal erősebb, mint gondoltam.

  2.   rots87 dijo

    Megjegyzem, hogy úgy gondolom, hogy minden arch felhasználó valamikor használta

  3.   Alf dijo

    @ sieg84, a különbség az, hogy a dd valamilyen olvasási vagy eszközhibával szakadt meg, ebben az esetben ez nem fog megtörténni, mivel a sérült blokk bizonyos számú alkalommal elolvassa és folytatja a következővel, az az előnye is, hogy Többször futtathatjuk ugyanazon a képen, és nem a semmiből indul, hanem megpróbálja befejezni.

    Érdemes megemlíteni, hogy a dd_rescue még soha nem használtam.

    1.    merlin a debianit dijo

      Ha van olyan GUI a qt-ben a KDE számára, amely ezt a parancsot használja? vagy le kell mondanom.?

      1.    Július dijo

        A Gdiskdump több, mint egy GUI ennek a parancsnak (ezen alapszik), és bár nem tudom, hogy qt-ben csinálták-e (azt hiszem, hogy nem), szinte biztosan működik neked

    2.    ostrom84 dijo

      köszönet a tisztázásért.
      Csak a dd_rescue programot használtam az ISO USB-re másolásához (főleg azért, mert az openSUSE wikiben volt náluk).
      dd_rescue tu.iso / dev / sdX
      az tetszik, hogy ez egy előrehaladási sávot mutat:
      http://box.jisko.net/i/110db781.png

  4.   krel dijo

    Alfa:
    Nemrég láttam ugyanezt a bejegyzést a Hatteras Blogon. Valószínű, hogy ezt nem rosszul követi, de nem tudom, legalábbis udvariasságként jó lenne erre hivatkozni. Így ő is nyer a webpozicionálásban.

    Nem akarok ezzel dilemmát kelteni, de első ránézésre a cikk 95% -ban azonosnak tűnik, kivéve az Ön által adaptált terminál képernyőképeket. Még a forrásait is megemlítette.

  5.   merlin a debianit dijo

    Érdekes elismerem, hogy | pv | nem ismerte.

    Krel szerintem a forrás az ubuntu wikiben vagy archív üdvözletben található.

  6.   Alf dijo

    @krel, a linux dolog ez:

    Ebben a világban tett utazásom során dolgokat olvastam és gyűjtöttem, van egy noteszem, több mint 400 bejegyzéssel, amelyeket Mexikó Ubuntu-ba tettem. Ez volt az a közösség, ahol az én korai életemben a legtöbbet hozzájárultam, sajnos a dolgok megismételhetők, ha átnézi a neten található nagy mennyiségű bejegyzést, szinte azonos sorrendben vannak, a helyzet az, hogy a legtöbb rövidebb.

    A héten további 5 bejegyzést közzétehetek, és találhat más hasonló vagy azonos okot? Az Ubuntuban van a legtöbb fórum / blog a neten.

    Semmi esetre sem gondolom, hogy dilemma lesz, és ha az adminisztrátorok megfontolják annak törlését, az egyáltalán nem sértene vagy zavarna, betartom a szabályokat és a következőket, a 8. megjegyzéseim között, hogy nincsenek rendben), szeretnék hozzáadni valamit hogy elkerülje az egybeesést.

    Üdvözlet

    1.    krel dijo

      Senki számára nem rejtély, hogy az interneten létrehozott tartalomnak legfeljebb csak 10% -a új. Amellyel a másik 90 tartalmat megkettőzik, megújítják vagy megmentik, és nem azt mondom, hogy ez kevésbé fontos, éppen ellenkezőleg, az ismeretterjesztés egyik formája.

      Azonban ahol megállok, az valami más. Ha van ilyen típusú blogod, személyes motiváció van arra, hogy segítsen, és talán még elismerést is kapjon érte. Ugyanakkor biztos vagyok abban, hogy a szabad szoftverről tartalmat írók többsége egyetért a megosztás gondolatával. Ne felejtsük el azonban, hogy még a legnemesebb licencek is, mint például a BSD, elismerést kérnek.

      Ezenkívül a referenciák segítségével egyes keresőmotorok, például a Google, javíthatják a weboldal elhelyezkedését. Csak azt mondom, hogy mivel az anyagot hálaértékként használták fel, erre a munkára hivatkoznék.

      Szerintem nagyszerű, hogy megosztod, de mit veszítesz a hivatkozással? Gondoljunk csak bele, ha egy másik, ennél jobb pozíciójú blogról ennek a tartalma megkettőzne. desdelinux Hivatkozás nélkül a végén elásnák ezt a blogot.

      Hatteras 10 napja tette közzé, és hacsak nem vette ki a noteszedből, vagy te Luis Puente vagy, nem tudom megmagyarázni, mit mondasz nekem, hanem azt, hogy szinte minden szöveges. Nem valószínű, de nem lehetetlen.

      De semmi, hogy ilyesmi történik. És nem tudom, a személyes etika és egy másik kollégával való együttműködés érdekében utalnék rá. Ez rajtad múlik, nem hiszem, hogy Hatteras is ezt tévesen venné, éppen ellenkezőleg.

  7.   Az előző dijo

    Hmm ... Tévedésből készítettem egy dd if = file.iso fájlt a / / media / merevlemezről ...
    bármilyen módon helyreállíthatja a fájlokat merevlemezről ???

    1.    élénk dijo

      Használhatja a Testdisk alkalmazást

    2.    merlin a debianit dijo

      Lehet, hogy egy barátom továbbadott testdisk-el, vagy egy élő, az adatok megmentésére szakosodott disztróval. Az a javaslatom, hogy készítsek biztonsági másolatot a következő alkalomra, mivel a parancs használata az én újonc napjaimban nagyon kényes formázni a teljes merevlemezt anélkül, hogy azt akarnánk, és most újra kell indítanom ... Mondanom sem kell, hogy a grub sem indult el.

  8.   Raul dijo

    Meg tudná mondani valaki, hogy milyen parancsot használjon a dd paranccsal történő másolás előrehaladásának megtekintésére, azt értem, hogy a folyamatjelző sávot látja a% másolással.

    slds

    1.    Július dijo

      Barátom! hozzáadva a pv parancsot. Ugyanebben a bejegyzésben szinte az elején elmondja, és elmagyarázza, hogyan kell használni. Olvassa el újra

  9.   pedro dijo

    ezzel a paranccsal:
    dd, ha = / dev / sdc | bzip2> /media/Elements/iso.gz
    Sikerült iso képet készítenem egy 16Gb-os lemezről, és elmentettem egy 400Gb-os lemezre.
    De nem tudom, mi lenne a parancs, ha ezt a képet visszaállítanánk az eredeti 16 GB-os lemezre, vagy más, ugyanolyan kapacitású helyre

  10.   Luis Rodriguez dijo

    Kérdés

    használja ezt a parancsot
    n esetén {1..5}; csináld dd-t, ha = / dev / urandom | pv | dd = / dev / hda bs = 8b conv = notrunc;
    2 TB-os lemezhez
    aztán valami hasonlót maradok a konzolban
    >
    Futtassak másik parancsot, vagy mennyi ideig tarthat a folyamat?

    köszönöm és folytasd

    1.    Jazb dijo

      A sor végén hiányzik a for… elírási hiba; kész »maradt« n-re {1..5}; csináld dd-t, ha = / dev / urandom | pv | dd = / dev / hda bs = 8b conv = notrunc; Kész "

  11.   Henry salazar dijo

    nagyon jó cikk ... .. át fogom ültetni a gyakorlatba ... üdvözlet haver

  12.   Marcos_tux dijo

    Nagyon hasznos, nagyon sokat segített nekem köszönöm

  13.   EDFR dijo

    Jó Alf. Köszi az infót.

    Kérdés. Van-e mód a forráslemez csak egy részének másolására? Az eset az, hogy ha van egy 120 Gb-os lemezem, amelyben csak 25 Gb-ot használnak, és szeretnék egy másolatot készíteni egy 40 Gb-os lemezre, akkor csak a használt hely (25 Gb) lemásolása érdekelne, van-e mód ezzel a paranccsal?
    Előre is köszönöm.

    1.    yukiteru dijo

      Jobb lenne, ha rsync-t használna, az rsync -av / path / to / origin / path / to / destiny paranccsal már minden engedélyét biztonsági másolattal látná el a megfelelő engedélyekkel.

    2.    yukiteru dijo

      Úgy értettem: "az összes fájl a megfelelő engedélyekkel"

  14.   FOXSPY dijo

    Kedves, tudja valaki, hogy a dd parancs elfoglalásakor miért ér el csak 4.2 GB-ot és jelzi, hogy a fájl nagyon nagy? Ez egy 250 GB-os lemez képe, és egy 1 TB-os külső lemezre kerül.

    sudo dd, ha = / dev / sda | pv | dd = / home / fox / backup.iso

    1.    Emberrabló dijo

      A 4Gb hiba azért adja meg, mert biztonsági másolatot próbál készíteni egy partícióban az fs FAT16 segítségével

  15.   Bern dijo

    Milyen jó blog. Nagyon hasznos bejegyzés. Már láttam másutt ennek a parancsnak a használatát, de egyáltalán nem magyaráztak semmit. Köszönöm.

  16.   Carlos Torres dijo

    Helló, van egy injekciós gépem, amelyben a program elveszett, mióta kicserélték a bios verem, nincs biztonsági másolatunk, de van egy másik gépünk, csak floppy, soros és párhuzamos portja van, hogyan készíthetek biztonsági másolatot erről a gépről hogy betöltsem a másikba, remélem, tudsz nekem segíteni köszönöm

  17.   Ernesto dijo

    Csak egy partíciót szeretnék lemásolni anélkül, hogy a LIVE CD-ről indulnék. Például van egy lemezem a / dev / sda1, / dev / sda5, / dev / sda6 fájlokkal, és másolatot akarok készíteni a / dev / sda5 fájlról egy másik lemezről / dev / sdb1

    a parancs dd, ha = / dev / sdb1 = / dev / sda5 bs = 1M ????

  18.   Lobato Péter dijo

    Helló, hogy vagy. Én is Guadalajarában élek.
    A DD parancsról szóló cikked nagyon érdekes. Szeretnék tesztelni néhány Linux disztribúciót, különös tekintettel az Archlinux-ra, de nem tudtam használni a DD parancsot, és USB-memóriára másolni a már letöltött Archilinux ISO-t. Nem tudom, át tud-e adni egy pipát, hogy ezzel kezdjem. Köszönöm, Pedro lobato

  19.   győztes dijo

    Mert amikor egy iso-t a "dd" paranccsal rögzítenek, az csak néhány számítógépen indítható?
    Exp. 2 laptopom van, és egyik sem indítja el bármely Linux disztribúció iso-ját; de éppen ellenkezőleg, egy régi asztali számítógépen indít, üresjárati lemezzel

    1.    seb dijo

      A legjobb az, ha biztonságosan játszom az unetbootin használatával, a dd-vel nekem is maradt kérdésem, hogy néha miért nem működik.

      1.    élénk dijo

        Nem hiszem, hogy ez a DD-től függ, hanem az ISO-tól. Ugyanez a helyzet az Unetbootinnal, nem minden terjesztésnél működik jól.

  20.   győztes dijo

    Néha minden PC-n működik, de hozzá kell adnia az mbr-t és a syslinux-ot az usb-hez a folyamathoz; de ez hosszú és unalmas.
    A könnyebb rész az indítás visszavonásáról

    Vigyázz: nekem nem az iso vagy a dd, hanem az, ahogyan rögzíted.

  21.   danny dijo

    Kétlem, hogy ezt a parancsot használom:
    sudo dd, ha = / dev / nulla = / dev / diskdrive
    Ehelyett az alacsony szintű formázás megegyezik, vagy ennél hosszabb ideig tart:
    sudo dd, ha = / dev / nulla = / dev / lemezmeghajtó bs = 1M ..

  22.   arg0s dijo

    A dd paranccsal törölhető egy adott fájl?

    például,

    dd if = / dev / urandom = / home / myfile törlés

  23.   arg0s dijo

    bs = 1M esetén gyorsabbá válik

  24.   alex dijo

    És ha pontos másolatot fogok készíteni az egyik lemezről a másikra, annak minden partíciójával (swap, sda ...), és mindkét lemez ugyanaz, de az egyik a PC-n, a másik a NAS-on van a hálózaton keresztül? ???
    gracias

  25.   Gerardo dijo

    Egy megjegyzés, a status = progress végén használom, és nincs szükségem pv-re, így a debian nagyon jól működik, hogy lássam a haladást.
    És a második: van-e mód arra, hogy csak az adatokat kapjuk meg, és ne az egész egységet, mivel ha 2 TB lemezről van szó, és csak 100 GB-ot használok, akkor ennyi hely szükséges. Van-e mód arra, hogy csak készítsen biztonsági másolatot arról a 100 GB-ról? És amikor átadom egy másik adathordozónak, lehet egy kisebb lemez, esetleg az 500-as?

  26.   Alexander dijo

    Segítség !!!
    Hajtsa végre a parancsot
    dd if = cbpp-9.0-amd64-20170621.iso = / dev / sdb

    minden jó ... de most az usb-t tárolóegységként szeretném használni, és ...

    Az USB nincs csatlakoztatva, még a GParted-ben sem jelenik meg.

    Tudja valaki, mit tehetek.

    PS: melyik lenne a legjobb program az információk lemezekről és CD DVD-kről történő helyreállításához

    1.    Névtelen dijo

      újra el kell végeznie a partíció tesztelését az fdisk segítségével