Dd copie. Crearea unei unități flash USB bootabile pentru instalarea Windows utilizând programul Rufus. Transferarea unui fișier imagine de disc pe alt computer

30.03.2020 Siguranță

dd este un utilitar simplu care este inclus în majoritatea sistemelor de operare asemănătoare Unix - Linux, FreeBSD, Solaris etc.
Scopul său este de a citi date de pe un dispozitiv sau fișier și de a scrie pe altul.

dd poate fi folosit eficient pentru a crea o imagine hard disk, fără utilități comerciale precum Acronis True Image sau Norton Ghost.

Să presupunem că avem două discuri:

  • /dev/sda - discul a cărui imagine trebuie creată;
  • /dev/sdb - discul pe care va fi scrisă imaginea.

Dacă este necesar, trebuie să vă înlocuiți propriile valori.

Primul pas este să porniți de pe orice disc Live-CD disponibil care are utilitarul dd și să intrați Linie de comanda ca superutilizator. Creați un punct de montare pentru backup.

mkdir /mnt/backup

Montam HDD pe care doriți să salvați imaginea.

Crearea unei imagini de hard disk

dd if=/dev/sda of=/mnt/backup/sda.img bs=8M conv=sync,noerror

  • if=/dev/sda - copiați întregul hard disk sda;
  • of=/mnt/backup/sda.img - copiați în /mnt/backup/sda.img;
  • bs=8M — setați dimensiunea cache-ului hard diskului pentru a accelera procedura de copiere (în caz contrar datele vor fi resetate în porțiuni mici de 512 octeți);
  • conv=sync,noerror - indicăm pentru dd necesitatea copierii bit-cu-bit și ignorarea erorilor de citire.

Pentru a reduce dimensiunea imaginea unui dur discul poate fi comprimat cu orice arhivator.

dd if=/dev/sda bs=8M conv=sync,noerror | gzip -c > /mnt/backup/sda.img

Recuperarea unei imagini de hard disk

Pentru a restabili o imagine de hard disk, trebuie să urmați procedura inversă procedurii de creare a acestei imagini.

dd if=/mnt/backup/sda.img of=/dev/sda bs=8M conv=sync,noerror

Când utilizați compresia, trebuie să dezarhivați imaginea în paralel.

gunzip -c /mnt/backup/sda.img | dd of=/dev/sda conv=sync,noerror bs=8M

Migrarea sistemului pe un alt hard disk

Pentru a migra întregul sistem pe un alt hard disk, trebuie să setați locația noii unități ca destinație.

dd if=/dev/sda of=/dev/sdb bs=8M conv=sync,noerror

Apoi, dacă este necesar, instalați boot-ul de la asta dur disc. Cu conditia ca nou hard discul este mai mare decât cel vechi, va exista o zonă nealocată pe el. Ar trebui să fie marcat și formatat conform cerințelor existente.

Copiați statisticile în dd

Principalul dezavantaj al lui dd este lipsa reprezentare vizuala statisticile procedurii de copiere. Cu toate acestea, acest dezavantaj poate fi ocolit cu ușurință. Tot ce trebuie să faceți este să vă conectați la un alt terminal.

Determinați numărul procesului sub care rulează dd.

Trimite periodic acest proces comanda kill -USR1 număr_proces_dd .

watch -n 5 kill -USR1 proces_număr_dd

  • watch -n 5 - executați comanda la fiecare 5 secunde;
  • kill -USR1 process_number_dd — arată statisticile de copiere.

Dezavantajele utilizării dd pentru a crea imagini de disc

Totul are argumente pro și contra. dd este un instrument gratuit și foarte flexibil, dar poate face doar o copie completă a unui volum. Programele speciale pot copia doar datele care sunt stocate pe disc.

Astfel, volumul unei imagini de disc creată folosind dd va fi egal cu volumul discului în sine - indiferent de câte date sunt pe disc.

Pentru a crea o imagine a unui hard disk, nu este necesar să utilizați utilitare precum Acronis True Image sau Norton Ghost; un utilitar dd simplu, care este inclus în majoritatea sistemelor de operare asemănătoare Unix (Linux, FreeBSD, Solaris etc.), Este suficient. Articolul discută o metodă simplă de a crea o copie de rezervă a imaginii de pe hard disk folosind dd. Primul lucru pe care trebuie să-l faceți este să vă pregătiți backup. În acest articol introducem următoarea notație:

  • /dev/sda - discul a cărui imagine trebuie creată;
  • /dev/sdb - discul pe care va fi scrisă imaginea.

Dacă este necesar, trebuie să vă înlocuiți propriile valori.

Se pregătește pentru a crea o imagine de hard disk

Primul pas este să porniți de pe orice disc Live-CD disponibil care are utilitarul dd și să introduceți linia de comandă ca superutilizator. Creați un punct de montare pentru backup.

mkdir /mnt/backup

Montăm hard disk-ul pe care doriți să salvați imaginea.

Crearea unei imagini de hard disk

dd if=/dev/sda of=/mnt/backup/sda.img bs=8M conv=sync,noerror

  • if=/dev/sda - copiați întregul hard disk sda;
  • of=/mnt/backup/sda.img - copiați în /mnt/backup/sda.img;
  • bs=8M - setați dimensiunea cache-ului hard diskului pentru a accelera procedura de copiere (în caz contrar datele vor fi resetate în porțiuni mici de 512 octeți);
  • conv=sync,noerror - indicăm pentru dd necesitatea copierii bit-cu-bit și ignorarea erorilor de citire.

Pentru a reduce dimensiunea unei imagini de hard disk, o puteți comprima cu orice arhivator.

dd if=/dev/sda bs=8M conv=sync,noerror | gzip -c > /mnt/backup/sda.img

Recuperarea unei imagini de hard disk

Pentru a restabili o imagine de hard disk, trebuie să urmați procedura inversă procedurii de creare a acestei imagini.

dd if=/mnt/backup/sda.img of=/dev/sda bs=8M conv=sync,noerror

Când utilizați compresia, trebuie să dezarhivați imaginea în paralel.

gunzip -c /mnt/backup/sda.img | dd of=/dev/sda conv=sync,noerror bs=8M

Migrarea sistemului pe un alt hard disk

Pentru a migra întregul sistem pe un alt hard disk, trebuie să setați locația noii unități ca destinație.

dd if=/dev/sda of=/dev/sdb bs=8M conv=sync,noerror

Apoi, dacă este necesar, instalați pornirea de pe acest hard disk. Cu condiția ca noul hard disk să fie mai mare decât cel vechi, va exista o zonă nealocată pe el. Ar trebui să fie marcat și formatat conform cerințelor existente.

Copiați statisticile în dd

Principalul dezavantaj al dd este lipsa unei reprezentări vizuale a statisticilor procedurii de copiere. Cu toate acestea, acest dezavantaj poate fi ocolit cu ușurință. Tot ce trebuie să faceți este să vă conectați la un alt terminal.

Determinați numărul procesului sub care rulează dd.

Trimiteți periodic comanda kill -USR1 process_number_dd la acest proces.

watch -n 5 kill -USR1 proces_număr_dd

  • watch -n 5 - executați comanda la fiecare 5 secunde;
  • kill -USR1 process_number_dd - arată statisticile de copiere.

Aceasta este o setare configurabilă care determină tipul și aplicația unității USB bootabile care este creată.

Există patru metode de descărcare disponibile în Rufus, dintre care una trebuie selectată din lista derulantă. În listă, acestea sunt desemnate ca MS-DOS, FreeDOS, imagine ISO, imagine DD. Primele două sunt disponibile numai pentru computere și dispozitive cu BIOS - trebuie selectate din lista derulantă din linia „Schema de partiții și tip de interfață de sistem”.

Această metodă de încărcare în Rufus creează unitate flash USB bootabilă cu sistemul de operare MS-DOS. Acesta este un sistem de operare pe disc care poate fi necesar în următoarele cazuri:

  • pentru a actualiza și flash BIOS-ul, este mai sigur să efectuați această procedură de sub DOS;
  • pentru diagnosticarea și testarea unui computer sau laptop, deoarece majoritatea utilităților pentru diagnosticarea profundă a memoriei RAM sau a hard diskului funcționează numai sub DOS;
  • dacă trebuie să accesați fișierele de pe hard disk atunci când lipsește sau este deteriorat sistem de operare;
  • atunci când utilizați programe vechi de consolă (de exemplu, pentru programare dispozitiv periferic), care este posibil să nu funcționeze corect sub Windows;
  • dacă aveți nevoie de acces la sistemul de fișiere hard disk-uri computer sau laptop la un nivel inferior.

FreeDOS este un sistem de operare similar cu MS-DOS, care este distribuit gratuit sub o licență gratuită și este disponibil în Rufus. De asemenea, vă permite să actualizați BIOS-ul, să reparați hard disk-ul folosind programe speciale, Test RAM(RAM) și așa mai departe. Acțiunile sunt efectuate folosind comenzi speciale din linia de comandă.

Trebuie selectată metoda de pornire ISO pentru a transfera imaginea ISO finalizată a discului de pornire pe o unitate USB. O imagine ISO ar trebui creată mai întâi folosind programe concepute pentru aceasta. Această metodă poate fi utilizată în sălile de operație sisteme Windows, Linux și altele. Primit disc de pornire poate fi folosit apoi pentru recuperare în caz de dezastru sistem de operare și instrumente de diagnosticare a hard diskului.

Metodă de încărcare a imaginii DD în Rufus

Folosit pentru a crea discuri bootabile din imagini create în sala de operație sistem Linux programul DD. Diferența fundamentală dintre această metodă de încărcare este că programul DD în esență nu creează o imagine, ci face o copie pe biți a unui director dat.

Programul Rufus nu este ceva unic în domeniul creării de medii de pornire; principalul său avantaj este ușurința în utilizare.

Echipă dd este conceput pentru a utiliza utilitarul cu același nume, conceput pentru copierea și conversia la nivel scăzut a datelor. Numele său înseamnă „duplicator de date” sau „duplicator de date”. Acest utilitar folosit în principal pentru a arde imagini de disc de instalare ale distribuțiilor Linux pe unități flash și pentru a crea imagini medii optice, cu toate acestea, gama funcțiilor sale nu se limitează la operațiunile enumerate. De exemplu, dd poate fi folosit pentru copiere simplă fișiere sau schimbarea majusculei caracterelor șiruri de text. În general, utilitatea în cauză este într-o oarecare măsură unică, deoarece implică utilizarea format propriu trecerea parametrilor.

Sintaxa standard a comenzii este următoarea:

$dd dacă=<имя исходного файла>de=<имя целевого файла>[Opțiuni]

Este ușor de observat că formatul de înregistrare este folosit pentru a transmite parametrii către utilitar <имя параметра>=<значение параметра> . Utilitarul poate citi datele sursă de la intrarea standard și poate scoate datele rezultate folosind ieșirea standard dacă nu sunt utilizați parametrii dacăȘi de, dar în marea majoritate a cazurilor acești parametri sunt necesari pentru a specifica numele fișierelor cu datele corespunzătoare. Utilitarul citește și scrie date în blocuri, iar dimensiunea blocului poate fi modificată folosind parametrul bs(Blocuri de 512 KB sunt utilizate implicit). Există parametri separați pentru setarea dimensiunilor blocurilor care pot fi citite și care pot fi scrise, și anume, ibsȘi obs. Numărul de blocuri citite poate fi limitat folosind parametrul numara. Parametrul poate fi folosit pentru a sări peste un anumit număr de blocuri din fișierul sursă. ocolire, fișier țintă - parametru căuta. Parametrul poate fi folosit pentru a specifica steaguri de citire și scriere separate prin virgule iflag

  • adăuga- activarea modului de atașare a datelor la fișierul țintă.
  • direct- modul de procesare a datelor ocolind memoria cache sisteme de fișiere(crește viteza).
  • sincronizare- modul de înregistrare a datelor cu sincronizare (crește fiabilitatea).
  • sincronizare- modul de înregistrare a datelor și metadatelor cu sincronizare (crește fiabilitatea).
  • fullblock- citind numai blocuri complete.
  • neblocată- activarea modului I/O neblocant (crește viteza).
  • noatime- dezactivarea mecanismului de actualizare a marcajelor de timp ale elementelor sistemului de fișiere (crește viteza).
  • nofollow- refuzul de a urma legăturile simbolice.

În cele din urmă, parametrul poate fi utilizat pentru a specifica steaguri de conversie separate prin virgulă conv. Cele mai frecvent utilizate steaguri sunt:

  • lcase- conversia caracterelor șir în codificare ASCII în litere mici.
  • ucase- convertirea caracterelor șir în codificare ASCII în majuscule.
  • nocreat- afișați un mesaj de eroare dacă fișierul țintă lipsește.
  • excl- afișați un mesaj de eroare dacă fișierul țintă există.
  • notrunc- refuzul de a tăia fișierul țintă.
  • tampon- schimbarea locațiilor la fiecare doi octeți din fișierul sursă.
  • nicio eroare- continuarea lucrărilor chiar dacă apar erori.
  • fdatasync- activarea modului de scriere a datelor în fișierul țintă înainte de finalizarea utilitarului.
  • fsync- activarea modului de scriere a datelor și metadatelor în fișierul țintă înainte de finalizarea utilitarului.

Exemple de utilizare

Copiere de rezervă a datelor unității de disc

Să presupunem că folosim un hard disk reprezentat de un fișier de dispozitiv /dev/sda, și trebuie să creăm o copie de rezervă sector cu sector a tuturor datelor aflate pe acesta, salvându-l într-un fișier din partiția unității USB amovibile reprezentată de fișierul dispozitivului /dev/sdb1și montat în director /mnt/sdb1. Aceste fișiere de rezervă se numesc de obicei dump sau imagini de disc. Fișierul nostru imagine de disc va fi numit backup.img. Aceasta este comanda cu care o puteți crea:

# dd if=/dev/sda of=/mnt/sdb1/backup.img

În această comandă, folosind parametrul dacă calea spre fișier sursă, și folosind parametrul de- la tinta.

Restaurarea datelor dintr-o copie de rezervă

Pentru a restaura datele din copia de rezervă creată, trebuie să porniți sistemul de la disc de instalare distribuție și executați comanda inversă.

# dd if=/mnt/sdb1/backup1.img of=/dev/sda

Avertizare: executarea acestei comenzi va suprascrie întregul conținut al hard disk-ului specificat, așa că ar trebui să tratați astfel de comenzi cu o atenție deosebită.

Clonarea hard diskului

Înainte de a clona un hard disk, trebuie să vă asigurați că aveți un hard disk de aceeași dimensiune cu cel original. Aceeași operațiune poate fi efectuată și în cazul unităților flash cu interfață USB de dimensiuni similare. Să presupunem că unitatea flash sursă este reprezentată de un fișier de dispozitiv /dev/sdb, iar ținta - fișierul dispozitivului /dev/sdc. În acest caz, puteți clona unitatea sursă folosind următoarea comandă:

# dd if=/dev/sdb of=/dev/sdc

Chiar dacă unitatea țintă are o capacitate mai mare, veți avea acces doar la dimensiunea unității flash sursă stocată la nivel de sistem de fișiere.

Transferarea unui fișier imagine de disc pe alt computer

Pentru a transfera un fișier imagine de disc printr-o rețea pe un alt computer numit ţintă se poate folosi următoarea comandă:

# dd if=/dev/sdb | ssh root@target „(cat >backup.img)”

Comprimarea unui fișier imagine disc

Pentru a copie de rezervă partiția de disc ocupă mai puțin spațiu, o puteți comprima folosind un compresor, cum ar fi bzip2 :

# dd if=/dev/sdb | bzip2 backup.img.bz2

Crearea unei imagini de disc optic ISO

Pentru a crea o imagine disc optic Un CD, DVD sau BD trebuie doar să-și citească conținutul bloc cu bloc și să salveze acest conținut într-un fișier:

# dd if=/dev/sr0 of=image.iso bs=2048

Salvarea unui fișier de pe un suport media deteriorat sau crearea unei imagini a unui astfel de suport media

Dacă filmul sau melodia dvs. preferată nu mai poate fi citită din cauza corupției media, puteți încerca să o copiați folosind utilitarul dd, ignorând blocurile proaste:

# dd if=movie.avi of=/home/alex/movie.avi conv=noerror,sync

De asemenea, puteți crea un fișier imagine al suportului media deteriorat și puteți încerca să extrageți fișiere din acesta:

# dd if=/dev/sdb of=/home/alex/movie.iso bs=2048 conv=noerror,sync

Inscripționarea unei imagini de disc de instalare pe o unitate flash USB

Pentru instalare distribuție Linux de pe o unitate flash USB, trebuie să scrieți o imagine de disc de instalare ISO pe această unitate flash. O comandă similară poate fi utilizată în acest scop:

# dd if=/home/alex/Fedora-Workstation-Live-x86_64-26_Alpha-1.7.iso of=/dev/sdc

Este important să rețineți că, chiar dacă există partiții pe unitatea flash, nu ar trebui să specificați calea către fișierul dispozitivului uneia dintre partiții, ci calea către fișierul dispozitiv al unității în sine, în cazul nostru aceasta este /dev/sdc.

Analiza conținutului hard diskului

Utilitate dd este un instrument excelent pentru explorarea sistemelor de fișiere. Pentru a analiza conținutul unui hard disk cu date de ieșire din blocuri individuale, în cazul nostru, un bloc 1001 pe partiția reprezentată de fișierul dispozitivului /dev/sdc1, folosiți următoarea comandă:

# dd if=/dev/sdc1 count=1 skip=1000

Pentru a vedea primii 40 de octeți ai hard diskului în notație hexazecimală, utilizați comanda:

# dd if=/dev/sda bs=1 count=40 | hexdump -C

În acest caz, folosind parametrul bs setează dimensiunea blocului de disc.

Testarea performanței unității de disc

Pentru a testa performanța unei unități de disc reprezentată, de exemplu, de un fișier de dispozitiv /dev/sda Când citiți blocuri de diferite dimensiuni, poate fi utilizată o comandă similară:


1000000+0 înregistrări în
1000000+0 înregistrări scoase

# dd if=/dev/sda of=/dev/null bs=4096 count=1000000
1000000+0 înregistrări în
1000000+0 înregistrări scoase
4096000000 de octeți (4,1 GB) copiați, 29,8747 s, 137 MB/s

Datorită mecanismului de stocare în cache a sistemului de fișiere, este posibil să întâlniți o accelerare mistică a operațiunilor de citire care nu ar trebui să fie surprinzătoare:

# dd if=/dev/sda of=/dev/null bs=512 count=1000000
1000000+0 înregistrări în
1000000+0 înregistrări scoase
512000000 de octeți (512 MB) copiați, 4,25186 s, 120 MB/s

# dd if=/dev/sda of=/dev/null bs=512 count=1000000
1000000+0 înregistrări în
1000000+0 înregistrări scoase
512000000 de octeți (512 MB) copiați, 0,417317 s, 1,2 GB/s

Pentru a obține rezultate corecte ale testului, se recomandă să ocoliți mecanismul de stocare în cache a sistemului de fișiere folosind modul I/O fără cache:

# dd if=/dev/sda of=/dev/null bs=512 count=100000 iflag=direct
100000+0 înregistrări în
100000+0 înregistrări scoase
51200000 octeți (51 MB) copiați, 5,01053 s, 10,2 MB/s

Copiere fișiere

Da, utilitate dd poate fi folosit chiar și pentru copierea normală a fișierelor. Desigur, în acest scop este mai bine să folosiți un utilitar special conceput în acest scop, și anume, cp. În orice caz, puteți copia fișierul folosind o comandă similară:

$ dd if=/home/alex/test.txt /home/alex/test_copy.txt