Ukaz dd (definicija nabora podatkov) je preprosto, uporabno in presenetljivo enostavno orodje; S tem orodjem lahko naredite enako na napravah: diskih in particijah, kot pri komercialnih programih, kot je Norton Ghost, v sistemu Windows ali brezplačnih programih, kot je CloneZilla, v sistemu Linux, s samo kratko ukazno vrstico.
Osnovna sintaksa:
Najosnovnejša sintaksa za uporabo ukaza dd bi bila ta:
sudo dd if=origen of=destino
kjer je če pomeni "vhodna datoteka = vhodna datoteka“, To je tisto, kar želite kopirati in pomeni "izhodna datoteka = izhodna datoteka“, To je ciljna datoteka (kamor se bodo podatki kopirali);poreklo in Cilj so lahko naprave (CD ali DVD bralnik, trdi disk, disketa, pendrive, particija itd.), Varnostna kopija datoteke ali slike diska itd., Ne pa tudi mape ali podmape.
Za nemoteno uporabo tega ukaza moramo najprej jasno vedeti, katere particije / trdi diski se v Linuxu imenujejo (na primer / dev / sda1; / dev izhaja iz device = device, v angleščini). da poznamo izvorni in ciljni disk / particijo, kar lahko zlahka ugotovimo z ukazom sudo fdisk -lo z nekaterimi grafičnimi particijskimi programi, kot je gparted. Vse informacije o ukazu dd si lahko ogledate pri ukazu man dd in info dd,
Ta ukaz je treba uporabljati previdno in vedno preverjati vrstni red in ime diskov / particij, ker tako kot je disk kloniran, ga v hipu izbriše.
Sintaksa z ukazom pv: Uporaba ukaza dd s prejšnjo sintakso ima rahlo pomanjkljivost, saj je zelo zadržan ukaz - ne daje informacij - ker, ko se izvrši, terminalski poziv ostane nepremičen, zato ne vemo kaj se dogaja in koliko časa je še treba, da se dokonča. Te manjše nevšečnosti lahko rešite tako, da v sintakso ukaza dd dodate ukaz pv, (*) - ki deluje kot terminalna cev, ki meri podatke, ki prehajajo skozenj, tako da bi bila sintaksa:
dd if=origen |pv|dd of=destino
Posledično bi v terminalu dobili nekakšno vrstico napredovanja, podatke o prenesenih bajtih, času, ki se izvaja in hitrosti prenosa, vse v realnem času.
(alf) - (~) └──┤ dd if = / devmmcblk0p1 | pv | dd od = / dev / mmcblk0p2 1,630 GB 0:21:30 [1,12 MB / s] [
Ko konča, nam prikaže statistiko hitrosti prenosa, skupnega števila prenesenih bajtov in skupnega časa, potrebnega za prenos vseh podatkov.
(alf) - (~) └──┤ dd if = / devmmcblk0p1 | pv | dd od = / dev / mmcblk0p2 10530816 + 0 prebranih zapisov <=> 10530816 + 0 zapisanih zapisov 5391777792 bajtov (5.4 GB) kopirano, 3873,48 s, 1,4 MB / s 5,02 GB 1:04:33 [1,33 MB / s] [<=> 10530816 + 0 zapisov prebranih <=> 10530816 + 0 zapisov zapisano 5391777792 bajtov (5.4 GB) kopirano, 3873,48, 1,4 s, XNUMX MB / s (alf) - (~) └──┤
(*) Pred izvajanjem katere koli ukazne vrstice s to drugo sintakso preverite, ali imamo v sistemu nameščen paket pv, ali pa ga namestite, če ga nimamo: oboje s Synaptic.
Oglejmo si nekaj praktičnih primerov in možnosti tega ukaza (v njegovi različici s trikom, ki je bil prej razložen z ukazom pv):
A) O trdih diskih in particijah:
= Klonirajte trdi disk:
S tem bi klonirali hda disk v hdb. (IDE diski):
sudo dd if=/dev/hda |pv|dd of=/dev/hdb bs=1M
S tem bi klonirali sda disk v sdb. (Diski SATA):
sudo dd if=/dev/sda |pv|dd of=/dev/sdb bs=1M
Z možnostjo bs = 1M se doseže, da se branje in pisanje izvajata v blokih po 1 megabajt, (manj, počasneje, a bolj varno in z več tvegava, da bomo na poti izgubili podatke).
Upoštevajte, da je na ta način disk zapisan "takšen, kot je", MBR, particijska tabela, prazen prostor itd ..., tako da lahko snemate samo na disk enake ali večje velikosti.
= Zapišite samo prvo particijo (hda1) izvornega diska na ciljni disk (hdb):
sudo dd if=/dev/hda1 |pv|dd of=/dev/hdb bs=1M
= Zapiši celoten disk (hda) na prvo particijo (hdb1) ciljnega diska:
sudo dd if=/dev/hda |pv|dd of=/dev/hdb1 bs=1M
= Ustvari sliko - lahko je bin ali iso - s trdega diska (hda), v imeniku / home:
sudo dd if=/dev/hda |pv|dd of=/home/hda.bin
= Popolnoma izbriši podatke na disku: za to petkrat napolnite disk z naključnimi znaki. Na disku ne bo sledu informacij:
for n in {1..5}; do dd if=/dev/urandom |pv|dd of=/dev/hda bs=8b conv=notrunc;
= Izbrišite katero koli particijo in celoten disk iz katere koli naprave:
sudo dd if=/dev/zero |pv|dd of=/dev/sdx
(Celotno brisanje diska)
sudo dd if=/dev/zero |pv|dd of=/dev/sdxa
(Brisanje particije diska)
kjer je: x disk za brisanje, a particija za brisanje
Ta operacija je zelo koristna za popolno brisanje katere koli particije, poleg tega podatkov, ki jih boste izbrisali, ni mogoče obnoviti, zato gre za nizko in zelo varno izbris, ki je zelo uporaben, na primer, ko se nosilci okužijo z virusi z našimi dragimi okni .
B) Na CD-ju / DVD-ju
= Ustvari / pritrdi sliko .iso s CD-ja (ali DVD-ja)
Če želite ustvariti sliko CD-ja .iso v imeniku / home:
sudo dd if=/dev/cdrom |pv|dd of=/home/imagendeCD.iso
Za namestitev slike .iso s CD-ja:
sudo mount -o loop imagedeCD.iso /mnt/home
= Obnovite opraskan DVD (s tem ne obnovite celotnega DVD-ja, v tem primeru samo berljivih sektorjev). Primeren je tudi za pokvarjene trde diske:
sudo dd if=/dev/cdrom |pv|dd of=/home/dvd_recuperado.iso conv=noerror,sync
Možnost noerror se uporablja za preprečevanje napak pri branju v kateri koli situaciji.
C) O MBR in VBS:
= Kopiraj / obnovi glavni zagonski zapis (MBR):
Če želite kopirati MBR:
sudo dd if=/dev/hda |pv|dd of=mbr count=1 bs=512
Če želite obnoviti MBR:
sudo dd if=mbr |pv|dd of=/dev/hda
= Očistite našo MBR in particijsko tabelo:
sudo dd if=/dev/zero |pv|dd of=/dev/hda bs=512 count=1
= Počisti MBR, vendar se ne dotakne tabele particij, (zelo koristno je izbrisati GRUB brez izgube podatkov na particijah):
sudo dd if=/dev/zero |pv|dd of=/dev/hda bs=446 count=1
= Kopiraj / obnovi zagon zagonskega sektorja (VBS):
Če želite kopirati VBS:
sudo dd if=/dev/hda |pv|dd of=/home/sector_arranque_hda count=1 bs=512
Če želite obnoviti VBS:
sudo dd if=/home/sector_arranque_hda |pv|dd of=/dev/hda
D) Ostalo:
= Zapiši sliko diska v naš / domači imenik, preskoči napake na disku (zelo koristno za diske, ki umirajo):
sudo dd conv=noerror if=/dev/hda |pv|dd of=~/home/imagen_disco_con_errores.iso
= Ustvari prazno datoteko velikosti 1 Mb:
sudo dd if=/dev/zero |pv|dd of=archivo_nuevo_vacio bs=1024 count=1024
= Ustvari 2Gb swap datoteko:
sudo dd if=/dev/zero |pv|dd of=/swapspace bs=4k count=2048M
mkswap /swapspace
swapon /swapspace
= Pretvori vse črke v velike črke:
sudo dd if=miarchivo |pv|dd of=miarchivo conv=ucase
Uporabite ukaz dd s programom za grafično okolje: Gdiskdump, je grafično okolje za ta ukaz dd, ki olajša nalogo klonirati particije ali diskete, hitro in enostavno. Lahko ga prenesete s strani https://launchpad.net/gdiskdump/ Ko ga odpremo s korenskimi dovoljenji - sudo gdiskdump -, vidimo, da je program zelo enostaven za uporabo, saj mu moramo le povedati particijo ali disk, da ga mora klonirati (Input Format) in njegov cilj (Output Format).
Skoraj sem postal diabetik zaradi zlorabe ukaza dd.
mimogrede, kakšna bi bila razlika z dd_rescue?
ddrescue se privzeto ne ustavi pri bralnih napakah in poskuša z različnimi sredstvi obnoviti neberljive informacije.
hahahha Tudi ukaz dd sem zelo slabo uporabil, je veliko močnejši, kot sem mislil.
Komentiram, da verjamem, da je vsak uporabnik loka v določenem trenutku uporabljal
@ sieg84, razlika je v tem, da je bil dd prekinjen z neko bralno napako ali napako naprave, v tem primeru se to ne bo zgodilo, ker ga bo poškodovani blok prebral določeno številokrat in nadaljeval z naslednjim, prav tako pa daje prednost, da Na isti sliki jo lahko izvedemo večkrat in se ne bo začela iz nič, ampak jo bo poskušala dokončati.
Omeniti velja, da ga dd_rescue nisem nikoli uporabljal.
Alf ali obstaja kakšen GUI, narejen v qt za KDE, ki uporablja ta ukaz? ali moram odstopiti.?
Gdiskdump je več kot GUI za ta ukaz (temelji na njem) in čeprav ne vem, ali so to storili v qt (mislim, da ne), skoraj zagotovo deluje v KDE
hvala za pojasnilo.
Uporabil sem samo dd_rescue za kopiranje ISO-ja na USB (predvsem zato, ker so ga imeli v wikiju openSUSE).
dd_rescue tu.iso / dev / sdX
všeč mi je, da prikazuje vrstico napredovanja:
http://box.jisko.net/i/110db781.png
alfa:
Pred kratkim sem to isto objavo objavil na blogu Hatteras. Verjetno tega ne jemlje slabo, vendar ne vem, vsaj kot vljudnost bi se bilo dobro sklicevati na to. Tako tudi zmaga pri spletnem pozicioniranju.
S tem ne želim ustvarjati dileme, vendar se na prvi pogled zdi, da je članek 95% enak, razen posnetkov zaslona terminala, ki ste jih prilagodili. Omenil je celo svoje vire.
Zanimivo priznam, da | pv | ga ni poznal.
Krel Mislim, da je vir v ubuntu wikiju ali pozdravih loka.
@krel, stvar z linuxom je ta:
Med svojim potovanjem po tem svetu sem bral in zbiral stvari, imel sem zvezek z več kot 400 objavami, ki sem jih postavil v Ubuntu v Mehiki, ki je bila skupnost, v kateri sem v prvih dneh največ prispeval, na žalost se lahko stvari ponovijo, če pregledate veliko količino objavi na netu, so skoraj v istem vrstnem redu, stvar je v tem, da je večina krajših.
V tednu lahko objavim še 5 objav in lahko najdete druge podobne ali enake, razlog? Ubuntu ima največ forumov / blogov na internetu.
Nikakor ne mislim, da bo prišlo do dileme in če me skrbniki razmislijo o njenem izbrisu, me to sploh ne bi žalilo ali motilo, spoštujem pravila in naslednje, med svojimi opombami 8, da jih nimam urejenih). da bi se izognili naključjem.
pozdrav
Nikomur ni skrivnost, da je največ 10% vsebine, ustvarjene v spletu, novih. S katerimi se ostalih 90 vsebin podvaja, obnavlja ali reši in ne rečem, da je to manj pomembno, ravno nasprotno, gre za obliko širjenja znanja.
Vendar, kjer se ustavim, je nekaj drugega. Ko imate takšen spletni dnevnik, obstaja osebna motivacija, da pomagate in zanj morda celo prejmete priznanje. Hkrati sem prepričan, da se večina tistih, ki pišejo vsebine o Prosti programski opremi, strinja z idejo o skupni rabi. Vendar ne pozabimo, da tudi najplemenitejše licence, kot je BSD, zahtevajo priznanje.
Tudi reference so način, kako nekateri iskalniki, kot je google, izboljšajo položaj spletnega mesta. Pravim samo, ker je bil material uporabljen kot minimalna hvaležnost, bi se skliceval na to delo.
Mislim, da je super, da delite, toda kaj izgubite s tem, da navedete referenco? Samo pomislite, če bi se iz drugega spletnega dnevnika z boljšim položajem od tega podvojila vsebina tega. desdelinux Brez sklicevanja nanj bi na koncu pokopali ta blog.
Hatteras ga je objavil pred 10 dnevi in če ga ni vzel iz vašega zvezka ali če ste Luis Puente, ne morem razložiti tega, kar mi rečete, skoraj vse je besedilno. Malo verjetno, a ne nemogoče.
Ampak nič, kaj takega se zgodi. In ne vem, zaradi osebne etike in sodelovanja z drugim kolegom bi se skliceval nanj. To je odvisno od vas, mislim, da tudi Hatteras tega ne jemlje narobe, ravno nasprotno.
Res je, resnična je kopija te objave: http://hatteras.wordpress.com/2013/01/18/algunos-usos-practicos-del-comando-dd/
Hm ... naredil sem dd if = file.iso = / media / trdi disk ... po pomoti 😛
kakršen koli način za obnovitev datotek s trdega diska ???
Lahko uporabite Testdisk
Pri reševanju podatkov se mi je morda zgodil prijatelj s testdiskom ali s specializiranim distribucijskim sistemom v živo. Moje priporočilo je narediti varnostno kopijo za naslednjič, saj je uporaba tega ukaza nekaj občutljivega v mojih začetniških dneh za formatiranje celotnega trdega diska, ne da bi to hotel, in zdaj, da se dobro ponovno zažene ... Ni treba posebej poudarjati, da se tudi grub ni začel.
Ali mi lahko nekdo pove, kateri ukaz naj uporabim za ogled napredka kopiranja z ukazom dd, kar mislim, da vidim vrstico napredka z%, ki je kopiral.
slds
Prijatelj! dodajanje ukaza pv. V tem istem prispevku pove skoraj na začetku in razloži, kako ga uporabiti. Preberite še enkrat
s tem ukazom:
dd, če = / dev / sdc | bzip2> /media/Elements/iso.gz
Uspelo mi je narediti iso podobo 16Gb diska in jo shraniti na 400Gb disk.
Ne vem pa, kakšen bi bil ukaz za obnovitev te slike na prvotni 16 GB disk ali na drugo z enako zmogljivostjo
vprašanje
uporabite ta ukaz za
za n v {1..5}; naredi dd, če = / dev / urandom | pv | dd od = / dev / hda bs = 8b conv = notrunc;
za disk 2TB
potem ostanem v konzoli nekaj takega
>
Ali naj zaženem drug ukaz ali kako dolgo lahko traja postopek?
hvala in nadaljuj
Na koncu vrstice je tipkarska napaka za… manjka «; končano »ostal« za n v {1..5}; naredi dd, če = / dev / urandom | pv | dd od = / dev / hda bs = 8b conv = notrunc; Končano "
zelo dober članek ... .. uresničil ga bom v praksi ... pozdrav kolega
Zelo koristno, veliko mi je pomagalo, hvala
Dober Alf. Hvala za informacije.
Vprašanje. Ali obstaja način za kopiranje samo dela izvornega diska? Primer je, če imam 120 GB diska, na katerem se uporablja samo 25 GB in želim kopirati na disk s kapaciteto 40 GB, bi me zanimalo samo kopiranje uporabljenega prostora (25 GB), ali obstaja način s tem ukazom?
Hvala vnaprej.
Bolje bi bilo, če bi uporabljali rsync, z ukazom rsync -av / path / to / origin / path / to / destiny bi že varnostno kopirali vsa svoja dovoljenja z njihovimi ustreznimi dovoljenji.
Mislil sem: "vse vaše datoteke z ustreznimi dovoljenji"
Spoštovani, ali kdo ve, zakaj pri zasedbi ukaza dd doseže le 4.2 GB in kaže, da je datoteka zelo velika? To je slika diska z zmogljivostjo 250 GB in gre na zunanji disk z velikostjo 1 TB.
sudo dd if = / dev / sda | pv | dd od = / home / fox / backup.iso
Napaka 4Gb vam jo daje, ker poskušate narediti varnostno kopijo na particiji s fs FAT16
Kako dober blog. Zelo koristen vnos. Uporabe tega ukaza sem že videl drugje, vendar sploh niso nič pojasnili. Hvala vam.
pozdravljeni, imam injekcijski stroj, v katerem se je program izgubil, ker so zamenjali bios stack, nimamo varnostne kopije, imamo pa še en isti stroj, ima le disketo, serijska in vzporedna vrata, kako lahko naredim varnostno kopijo tega stroja da ga naložim v drugo, upam, da mi lahko pomagate hvala
Želim samo kopirati particijo, ne da bi začeli s CD-ja LIVE. Na primer imam disk z / dev / sda1, / dev / sda5, / dev / sda6 in želim narediti kopijo v / dev / sda5 z drugega diska / dev / sdb1
ukaz je dd, če = / dev / sdb1 od = / dev / sda5 bs = 1M ????
Živjo kako si. Živim tudi v Guadalajari.
Vaš članek o ukazu DD je zelo zanimiv. Želim preizkusiti nekaj distribucij Linuxa, natančneje Archlinux, vendar nisem mogel uporabiti ukaza DD in kopirati že prenesenega sistema Archilinux ISO na USB ključek. Ne vem, če mi lahko za začetek dodaš kljukico. Hvala, Pedro lobato
Kajti, ko je iso posnet z ukazom "dd", deluje le za zagon na nekaterih računalnikih?
Exp. Imam 2 prenosnika in nobeden od njih ne zažene iso distribucije linuxa; nasprotno pa se zažene na starem namiznem računalniku z nedejavnim diskom
Najbolje je, da z unetbootinom igramo varno, pri dd pa mi je ostalo tudi vprašanje, zakaj včasih to ne deluje.
Mislim, da ni odvisno od DD, ampak od ISO. Enako je z Unetbootinom, ne deluje dobro pri vseh distribucijah.
Včasih deluje na vseh osebnih računalnikih, vendar morate procesu dodati mbr in syslinux v usb; ampak to je dolgotrajno in dolgočasno.
Preprost del o unetbootingu
Bodite previdni: zame ni iso ali dd, ampak način snemanja.
Dvomim, če uporabim ta ukaz:
sudo dd, če = / dev / nič od = / dev / diskdrive
Namesto tega je oblikovanje na nizki ravni enako ali traja dlje od tega:
sudo dd, če = / dev / nič od = / dev / diskdrive bs = 1M ..
Ali lahko z ukazom dd izbrišem določeno datoteko?
na primer
dd if = / dev / urandom of = / home / myfile delete
z bs = 1M postane hitrejši
In če bom naredil natančno kopijo z enega diska na drugega z vsemi njegovimi particijami (swap, sda ...) in obema diskoma enako, vendar je eden v računalniku, drugi pa v NAS-ju prek omrežja? ???
hvala
Komentar, na koncu ga uporabim s status = progress in ne potrebujem pv, zato debian zelo dobro deluje zame, da vidim napredek.
In drugo, ali obstaja način, da dobite samo podatke in ne celotne enote, saj če gre za disk 2TB in uporabljam le 100 GB, potrebujem ves ta prostor. Ali obstaja način, da samo varnostno kopirate teh 100 GB? In ko ga prenesem na drug medij, je to morda manjši disk, morda eden od 500?
Pomoč !!!
Izvedite ukaz
dd if = cbpp-9.0-amd64-20170621.iso of = / dev / sdb
vse dobro ... zdaj pa želim uporabiti USB kot enoto za shranjevanje in ...
USB ni nameščen, niti ni prikazan v GPartedu.
Ali kdo ve, kaj lahko storim.
PS: kateri bi bil najboljši program za obnovitev informacij z diskov in CD DVD-jev….
morate znova preizkusiti particijo s fdiskom