![Cum să găsiți postările pe care le-ați apreciat pe Instagram](/f/b908a577abbf59750c8dad70aaacda73.jpg?width=100&height=100)
Pe scurt: În acest ghid avansat, vom discuta câteva exemple practice ale comenzii dd. După ce urmează acest ghid, utilizatorii avansați vor putea lucra cu dispozitivele blocate confortabil din interfața de linie de comandă.
În Linux, totul este un dosar iar dispozitivele bloc nu sunt o excepție de la aceasta. De multe ori, trebuie să lucrăm cu dispozitive bloc. În calitate de utilizatori Linux, efectuăm o varietate de operațiuni pe dispozitive bloc, cum ar fi, – luarea unui copie de rezervă a unui disc sau a unei partiții, realizând o copie de rezervă a Master Boot Record (MBR), realizând a unitate USB bootabilă, iar lista poate continua.
Cu siguranță, putem folosi instrumente grafice pentru a efectua toate aceste operațiuni. Cu toate acestea, majoritatea administratorilor Linux preferă să folosească comanda dd datorită funcționalității și robusteței sale bogate.
În acest ghid avansat, vom afla despre comanda dd pentru a converti și copia fișiere. Cu toate acestea, spre deosebire de comanda cp de cele mai multe ori este folosit cu dispozitive bloc.
În acest ghid, în primul rând, vom înțelege modul de utilizare comanda dd cu exemple de bază, apoi vom discuta câteva cazuri de utilizare avansate.
Cuprins
Asadar, haideti sa începem.
Cea mai comună sintaxă a comanda dd este după cum urmează:
$ dd [dacă=] [din=]
În sintaxa de mai sus:
Precauție – Este important de reținut că comanda dd trebuie utilizată cu foarte multă prudență în timpul lucrului cu dispozitivele bloc. O mică greșeală poate provoca pierderea permanentă a datelor. Prin urmare, este recomandat să încercați mai întâi aceste operațiuni pe mașina de testare.
Una dintre utilizările de bază ale comanda dd este să copiați un fișier într-un director curent. Să înțelegem prin crearea unui fișier text simplu:
$ echo „acesta este un exemplu de fișier text” > fișier-1.txt.
Acum, să creăm o copie a acesteia folosind comanda dd:
$ dd if=file-1.txt of=file-2.txt.
În acest exemplu, dacă
parametrul reprezintă fișierul sursă, în timp ce de
parametrul reprezintă fișierul destinație.
Nu este exact similar cu comanda cp? Atunci ce este atât de special la comanda dd?
The comanda dd este mult mai puternic decât cel obișnuit comanda cp. Ultimele secțiuni ale tutorialului discută unele dintre cazurile sale de utilizare avansate.
The comanda dd ne permite să efectuăm conversia majusculelor. Pentru a realiza acest lucru putem folosi conv parametru cu acesta.
Pentru a înțelege acest lucru, mai întâi, afișați conținutul fișierului fișier-1.txt fişier:
$ cat fisier-1.txt acesta este un exemplu de fișier text.
Acum, să convertim conținutul fișierului în majuscule folosind următoarea comandă:
$ dd if=file-1.txt of=upper-case.txt conv=ucase.
În acest exemplu, conv=ucase
opțiunea este utilizată pentru a converti literele mici în litere mari.
În cele din urmă, verificați conținutul fișierului nou creat:
$ cat majuscule.txt ACESTA ESTE UN EXEMPRE DE FIȘIER TEXT.
Într-un mod similar, putem folosi comanda dd pentru a converti literele mari în litere mici:
Să folosim conv=lcase
opțiunea de a converti literele mari în minuscule:
$ dd if=majuscule.txt of=minuscule.txt conv=lcase.
Acum, să afișăm conținutul fișierului nou creat și să verificăm dacă conversia a fost efectuată corect:
$ cat minuscule.txt acesta este un exemplu de fișier text
În mod implicit, comanda dd înlocuiește fișierul destinație, ceea ce înseamnă că va suprascrie fișierul dacă acesta există la destinație cu același nume.
Cu toate acestea, putem dezactiva acest comportament implicit folosind conv=excl
opțiunea așa cum se arată.
$ dd if=file-1.txt of=file-2.txt conv=excl dd: nu s-a putut deschide „fișier-2.txt” Fișierul există
Aici, putem vedea că comanda dd a anulat operațiunile deoarece fișierul cu același nume este prezent la destinație.
Uneori, dorim să actualizăm fișierul într-un mod de atașare, ceea ce înseamnă că noul conținut ar trebui adăugat la sfârșitul fișierului de destinație.
Putem realiza acest lucru combinând cele două steaguri - oflag=apend
și conv=notrunc
. Aici oflag
reprezintă indicatorul de ieșire, în timp ce notrunc
opțiunea este utilizată pentru a dezactiva trunchierea la destinație.
Pentru a înțelege acest lucru, mai întâi, să creăm un nou fișier text:
$ echo „adăugați exemplu demo” > dest.txt.
În continuare, să anexăm conținutul la dest.txt fișier folosind următoarea comandă:
$ dd if=file-1.txt of=dest.txt oflag=append conv=notrunc.
Acum, să verificăm conținutul dest.txt fişier:
$ cat dest.txt anexa exemplu demo. acesta este un exemplu de fișier text.
Îl putem instrui pe comanda dd pentru a sări peste primele caractere în timp ce citiți fișierul de intrare folosind ibs și ocolire Opțiuni.
Mai întâi, să afișăm conținutul fișier-1.txt fişier:
$ cat file-1.txt acesta este un exemplu de fișier text.
În continuare, să omitem primele 8 caractere utilizând următoarea comandă:
$ dd if=file-1.txt of=file-2.txt ibs=8 skip=1.
Acum, să verificăm conținutul fișier-2.txt fişier:
$ cat file-2.txt un exemplu de fișier text.
În rezultatul de mai sus, putem vedea că comanda a omis primele 8 caractere.
Până acum am discutat exemplele de bază ale comanda dd care nu necesită acces root. Acum, să vedem câteva cazuri de utilizare avansate.
La fel ca și fișierele, putem face o copie de rezervă a partiției de disc folosind comanda dd. De exemplu, comanda de mai jos face o copie de rezervă a fișierului /dev/sda1 partiţie către partition-bkp.img:
$ sudo dd if=/dev/sda1 of=partition-bkp.img.
În exemplul anterior, am făcut o copie de rezervă /dev/sda1 partiție la partition-bkp.img fişier.
Acum, să-l restabilim în /dev/sdb1 partiționați folosind următoarea comandă:
$ sudo dd if=partition-bkp.img of=/dev/sdb1.
Este important de reținut că dimensiunea partiției de destinație trebuie să fie egală sau mai mare decât dimensiunea de rezervă.
Unitatea de disc poate avea mai multe partiții. Deci, efectuarea și restaurarea copiei de rezervă pe partiție poate deveni consumatoare de timp pe măsură ce numărul de partiții crește. Pentru a depăși această limitare, putem face o copie de rezervă a întregii unități de disc la fel ca și partițiile.
Deci, să luăm copia de rezervă a /dev/sda disc folosind următoarea comandă:
$ sudo dd if=/dev/sda of=disk-bkp.img.
Comanda de mai sus preia o copie de rezervă a întregului disc, inclusiv partițiile acestuia.
La fel ca și partițiile, putem restabili backup-ul întregului disc. În exemplul anterior, am făcut o copie de rezervă a întregului disc pe disc-bkp.img fişier. Acum, să folosim același lucru pentru a-l restaura pe /dev/sdb disc.
În primul rând, să ștergem toate partițiile din /dev/sdb disc și verificați dacă toate partițiile au fost șterse:
$ lsblk /dev/sdb.
În continuare, să restabilim copia de rezervă pe /dev/sdb conduce folosind următoarea comandă:
$ sudo dd if=disk-bkp.img of=/dev/sdb.
În cele din urmă, verificați dacă partiția a fost creată pe /dev/sdb disc:
$ lsblk /dev/sdb.
Master Boot Record (MBR) este situat în primul sector al discului de pornire. Stochează informații despre partițiile de disc. Putem folosi comanda dd așa cum se arată mai jos, pentru a-i face un spate:
$ sudo dd if=/dev/sda of=mbr.img bs=512 count=1.
Comanda de mai sus preia primii 512 octeți, adică un sector.
Este important de reținut că, comanda de mai sus trebuie executată pe discul de pornire.
În exemplul anterior, am făcut o copie de rezervă a Master Boot Record (MBR). Acum, să-l restabilim pe /dev/sdb disc folosind următoarea comandă:
$ sudo dd if=mbr.img of=/dev/sdb.
Similar cu partițiile și discurile, putem folosi comanda dd pentru a copia conținutul de pe unitatea CD sau DVD. Deci, să folosim comanda de mai jos pentru a face același lucru:
$ sudo dd if=/dev/cdrom of=alma-minimal.iso.
În Linux, unitatea CD/DVD este reprezentată de /dev/cdrom dispozitiv. Prin urmare, îl folosim ca fișier sursă.
Acum, să verificăm dacă conținutul a fost copiat cu succes verificându-l comanda sumă de control:
$ sha256sum alma-minimal.is.
În exemplul anterior, am creat o imagine ISO a Alma Linux. Acum să-l folosim pentru a crea o unitate USB bootabilă:
$ sudo dd if=alma-minimal.iso of=/dev/sdb.
Este important de reținut că, comanda de mai sus trebuie executată cu unitatea USB corectă.
În mod implicit, comanda dd nu afișează progresul în timpul operației de copiere. Cu toate acestea, putem suprascrie acest comportament implicit folosind opțiunea de stare.
Deci, să folosim stare=progres
opțiunea cu comanda dd pentru a afișa bara de progres:
$ sudo dd if=alma-minimal.iso of=/dev/sdb status=progress.
În acest articol, am discutat câteva exemple practice ale comanda dd. Utilizatorii avansați se pot referi la aceste exemple în viața de zi cu zi în timp ce lucrează cu sisteme Linux. Cu toate acestea, trebuie să fim foarte atenți când executăm aceste comenzi. Pentru că o mică greșeală poate suprascrie conținutul întregului disc.
Știți vreun alt exemplu cel mai bun al comenzii dd în Linux? Spune-ne opiniile tale în comentariile de mai jos.