Dd copiere disc linux. Crearea unei unități flash USB bootabile pentru instalarea Windows utilizând programul Rufus. Salvarea unui fișier de pe un suport media deteriorat sau crearea unei imagini a unui astfel de suport media

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 a unui hard disk, fără a utiliza utilitare 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ă 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.

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.

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 pornire în Rufus creează o 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 sistemul de operare lipsește sau este deteriorat;
  • atunci când utilizați programe de consolă vechi (de exemplu, pentru programarea dispozitivelor periferice), care este posibil să nu funcționeze corect sub Windows;
  • dacă aveți nevoie de acces la sistemul de fișiere al hard disk-urilor unui 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, să testați memoria cu acces aleatoriu (RAM) etc. 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ă pe Windows, Linux și alte sisteme de operare. Discul de pornire rezultat poate fi apoi folosit pentru recuperarea de urgență a sistemului de operare și instrumentele de diagnosticare pentru hard disk.

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

Folosit pentru a crea discuri bootabile din imagini create în sistemul de operare Linux de 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.

Fiți atenți, deoarece dacă scrieți greșit numele unității flash în comanda dd, puteți deteriora hard disk-ul gazdă.

Vom afișa denumirea partiției tuturor dispozitivelor

și găsiți o unitate flash printre ele:

Sudo fdisk -u -l /dev/sd?

De asemenea, pentru a defini partiții pe toate dispozitivele, puteți folosi comanda:

Sudo cat /proc/partitions

sintaxa comenzii dd

dd if=/AAAA of=/BBBB bs=CCCC count=DDDD conv=noerror
  • dacă: (fișierul de intrare) indică sursa, adică de unde copiem. Specifică un fișier, care poate fi fie un fișier obișnuit, fie un fișier de dispozitiv.
  • de: (fișierul de ieșire) indică către fișierul destinație. Același lucru, putem scrie atât într-un fișier obișnuit, cât și direct pe dispozitiv.
  • bs: Numărul de octeți care vor fi scrieți la un moment dat. Adică dimensiunea unei date care va fi citită și scrisă la un moment dat. Este recomandat să setați bs= la dimensiunea memoriei cache a hard diskului, adică. 8M 16M 32M
  • numara: cate bucati bs vor fi copiate.
  • conv: vă permite să conectați filtre care se aplică fluxului de date. Filtru "nicio eroare" doar dezactivează oprirea programului atunci când întâlnește o eroare de citire.

Exemple

Ștergerea completă a discului

Pentru ca nimic să nu poată fi restaurat pe suport, îl puteți completa cu zerouri, această comandă se va termina întotdeauna cu eroarea „media a rămas fără spațiu”

Dd if=/dev/zero of=/dev/sdX

Crearea unei imagini de disc

dd if=/dev/cdrom of=image.iso conv=noerror

de asemenea, vă puteți conecta la sistem

Mount -o loop /PathToImageFile/image.iso /mnt/FolderMount

Dacă ceva nu funcționează, procesul este împărțit în 2 nivele:

Losetup -e /dev/loop0 /PathToImageFile/image.iso mount /dev/loop0 /mnt/FolderMount

Operațiuni MBR

MBR-ul este localizat în primii 512 octeți ai hard disk-ului și constă dintr-o tabelă de partiții, un bootloader și câteva altele suplimentare. octet. Uneori trebuie să îl faceți o copie de rezervă, să îl restaurați etc. Backup-ul se face astfel:

Dd if=/dev/sda of=mbr.img bs=512 count=1

Îl poți restaura mai ușor:

Dd if=mbr.img of=/dev/sda

Copiere cu arhivare

(folosind gzip) date de pe o unitate flash pe un hard disk.

Dd if=/dev/sdX conv=sync,noerror bs=8M | gzip -c >/PathToSave/sdX.img.gz

si inapoi

Gunzip -c /PathToFile/sdX.img.gz | dd of=/dev/sdX conv=sync,noerror bs=8M

Copiere prin rețea

dd if=/dev/sdX conv=sync,noerror bs=8M | ssh -c blowfish Nume utilizator@Nume gazdă „dd of=sdX.img.gz bs=8M”

si inapoi

Dd if=sdX.img.gz | ssh -c blowfish Nume utilizator@Nume gazdă „dd of=/dev/sdX bs=8М”

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 pas este să vă pregătiți pentru 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.

Destul de des, administratorii de sistem trebuie să copieze diverse date binare. De exemplu, uneori poate fi necesar să faceți o copie de rezervă a hard diskului, să creați un fișier gol plin cu zerouri pentru a organiza spațiul de schimb sau un alt sistem de fișiere virtual.

Pentru a rezolva toate aceste probleme, se folosește utilitarul dd linux, care pur și simplu copiază datele dintr-un loc în altul la nivel binar. Poate copia un disc CD/DVD, o secțiune de pe un disc sau chiar un întreg hard disk. În acest articol ne vom uita la ce este comanda linux dd, opțiunile și parametrii ei principali și cum să o folosim.

Mai întâi trebuie să înțelegeți cum funcționează comanda dd și ce face. De fapt, acesta este un analog al utilitarului numai pentru datele bloc. Utilitarul transferă pur și simplu un bloc de date de dimensiunea specificată dintr-un loc în altul. Deoarece totul, inclusiv dispozitivele, este considerat un fișier în Linux, puteți transfera dispozitive în fișiere și invers.

Folosind diverse opțiuni de utilitate, puteți influența dimensiunea blocului, iar acest lucru, la rândul său, afectează deja viteza programului. În continuare, vom analiza principalele opțiuni ale utilitarului și capacitățile sale.

comanda dd

Sintaxa utilitarului este destul de neobișnuită, dar în același timp foarte simplă, odată ce vă amintiți și vă obișnuiți cu ea:

$dd dacă= copy_source de= destinaţie Opțiuni

Folosind parametrul if, trebuie să specificați sursa din care vor fi copiate blocurile, acesta poate fi un dispozitiv, de exemplu, /dev/sda sau un fișier - disk.img. Apoi, folosind parametrul of, trebuie să specificați dispozitivul sau fișierul de destinație. Alți parametri au aceeași sintaxă ca if și of.

Acum să ne uităm la opțiunile suplimentare:

  • bs- indică câți octeți de citit și de scris simultan;
  • CBS- câți octeți trebuie să fie scrisi simultan;
  • numara- copiați numărul specificat de blocuri, dimensiunea unui bloc este indicată în parametrul bs;
  • conv- aplicați filtre fluxului de date;
  • ibs- citiți numărul specificat de octeți la un moment dat;
  • obs- scrie numărul specificat de octeți la un moment dat;
  • căuta- sări peste numărul specificat de octeți la începutul dispozitivului de citire;
  • ocolire- sări peste numărul specificat de octeți la începutul dispozitivului de ieșire;
  • stare- indică cât de detaliată ar trebui să fie concluzia;
  • iflag, oflag- vă permite să setați steaguri de operare suplimentare pentru dispozitivul de intrare și ieșire, principalele: nocache, nofollow.

Acestea au fost toate opțiunile de bază de care ai putea avea nevoie. Acum să ne apropiem de practică și să vedem câteva exemple de utilizare a utilitarului dd linux.

Cum se folosește dd?

Utilizatorii obișnuiți folosesc comanda dd cel mai adesea pentru a crea imagini DVD sau CD. De exemplu, pentru a salva o imagine de disc într-un fișier, puteți utiliza următoarea comandă:

sudo dd if=/dev/sr0 of=~/CD.iso bs=2048 conv=noerror

Filtrul noerror vă permite să dezactivați răspunsul la erori. Apoi, puteți crea o imagine a hard disk-ului sau a partiției pe acesta și puteți salva această imagine pe disc. Aveți grijă să nu salvați pe același hard disk sau partiție, pentru a nu provoca recursivitate:

dd if=/dev/sda of=~/disk.img

Un fișier numit disk1.img va fi creat în folderul dvs. de acasă, care în viitor poate fi implementat și restaurat în sistemul deteriorat. Pentru a scrie o imagine pe un hard disk sau pe o partiție, trebuie doar să schimbați adresele dispozitivului:

dd if=~/disk.img of=/dev/sda

O opțiune foarte importantă și utilă este bs. Vă permite să influențați foarte mult viteza utilitarului. Acest parametru vă permite să setați dimensiunea unui bloc atunci când transferați date. Aici trebuie să specificați o valoare digitală cu unul dintre acești modificatori de format:

  • Cu- un caracter;
  • b- 512 octeți;
  • kB- 1000 de octeți;
  • K- 1024 octeți;
  • M.B.- 1000 kilobytes;
  • M- 1024 kilobytes;
  • G.B.- 1000 megaocteți;
  • G- 1024 megaocteți.

Comanda dd linux folosește doar un astfel de sistem, este complex, dar nu există nicio scăpare din el. Va trebui să fie înțeles și reținut. De exemplu, 2b este 1 kilooctet și 1k este, de asemenea, 1 kilooctet, 1M este 1 megaoctet. În mod implicit, utilitarul folosește o dimensiune de bloc de 512 octeți. De exemplu, pentru a accelera copierea pe disc, puteți lua blocuri de 5 megaocteți. Pentru a face acest lucru, utilizați următoarea comandă:

dd if=/dev/sda of=~/disk.img bs=5M

Următorul parametru este count. Folosind-o, puteți specifica câte blocuri trebuie copiate. De exemplu, putem crea un fișier de 512 megaocteți umplându-l cu zerouri din /dev/zero sau numere aleatorii din /dev/random:

sudo dd if=/dev/zero of=file.img bs=1M count=512

Vă rugăm să rețineți că acest parametru nu indică dimensiunea în megaocteți, ci doar numărul de blocuri. Prin urmare, dacă specificați o dimensiune a blocului de 1b, atunci trebuie să luați doar două blocuri pentru a crea un fișier de 1KB. Această opțiune poate fi folosită și pentru a face backup tabelului de partiții MBR. Pentru a face acest lucru, copiați primii 512 octeți ai hard diskului într-un fișier:

sudo dd if=/dev/sda of=mbr.img bs=1b count=1

Pentru a restaura, utilizați comanda obișnuită pentru a implementa imaginea pe disc.

Dacă imaginea de disc este prea mare, puteți redirecționa toată ieșirea către fluxul de ieșire non-standard al utilitarului gzip:

dd dacă =/dev/sda2 | bzip2 disc.img.bz2

De asemenea, puteți utiliza utilitarul dd linux pentru a copia fișiere, deși acesta nu este scopul propus:

dd if=/home/sergiy/test.txt of=/home/sergiy/test1.txt

După cum știți, comanda linux dd scrie datele pe disc direct în formă binară, ceea ce înseamnă că sunt scrise zerouri și unu. Ele suprascriu ceea ce a fost plasat anterior pe dispozitivul de înregistrare. Prin urmare, pentru a șterge un disc, îl puteți umple pur și simplu cu zerouri din /dev/zero.

sudo dd if=/dev/zero of=/dev/sdb

Folosind dd în acest fel, întregul disc este șters complet.

concluzii

În acest articol, ne-am uitat la cum să folosiți dd linux, la ce poate fi folosit acest utilitar și cât de util poate fi. Acesta este un instrument aproape indispensabil pentru un administrator de sistem, deoarece poate fi folosit pentru a face copii de rezervă ale întregului sistem. Și acum știi cum. Dacă aveți întrebări, întrebați în comentarii!