Cum se folosește comanda DD pentru a copia fișiere VHD pe hard disk fizic



Încercați Instrumentul Nostru Pentru Eliminarea Problemelor

Fișierele Virtual Hard Disk (VHD) sunt fișiere gigantice care imită utilizarea mediilor fizice pe VirtualBox și alți emulatori virtuali x86 / x86_64. Acest lucru vă permite să rulați Windows, OS X, MS-DOS, FreeBSD, OpenBSD, OS / 2 sau chiar alte versiuni de Linux în distribuția dvs. Linux. Aceste fișiere nu vă permit să scrieți conținutul direct pe un disc fizic prin comanda dd care vă permite să faceți același lucru cu un ISO, dar există o modalitate de a face acest lucru. Deși unele ghiduri necesită conversia fișierului VHD într-un ISO, nu va trebui să faceți acest lucru dacă rulați VirtualBox pe orice versiune modernă de Linux. Utilizatorii QEMU au, de asemenea, o cale de ieșire, deși implică mai mult joc.



Va trebui să vă asigurați că niciuna dintre unitățile sau partițiile cu care veți lucra nu este cea de la care porniți. Tocmai am folosit o bucată de memorie NAND partiționată pentru acest exemplu, dar este posibil să doriți să utilizați un DVD live sau o încărcare USB dacă altfel nu ați putea face acest lucru. Indiferent de modul în care ați pornit mașina în cauză, porniți programul terminal fie ținând apăsate Ctrl, Alt și T, căutându-l pe Ubuntu Dash sau deschizându-l din submeniurile Instrumente de sistem din Xfce4 sau LXDE.



Metoda 1: Utilizarea VBoxManage din linia de comandă

De departe, cel mai simplu mod de a face acest lucru este utilizarea unei instalații tradiționale VirtualBox. Asigurați-vă mai întâi că ați făcut o copie de siguranță a tuturor datelor de care vă faceți griji că le pierdeți, deoarece veți distruge orice date de pe hardware-ul fizic al destinației, în timp ce, de asemenea, puteți ajunge să faceți ceva cu fișierul VHD sau VHDX în acest proces. Acest lucru este valabil și pentru cealaltă metodă, precum și pentru orice lucru care implică comenzi care sunt atât de distructive.



Odată ce sunteți sigur că totul este în siguranță și că unitatea de destinație este demontată, dar totuși atașată la aparat, spuneți un hard disk extern pe care l-ați conectat încă, dar nu este montat sau poate fi chiar brut, deoarece veți pierde totul pe el în acest proces, rulați VBoxManage clonehd freeBSD.VHDX –format RAW freeBSD.RAW în timp ce înlocuiți freeBSD.VHDX cu hard diskul virtual. Am avut un fișier de hard disk virtual cu o instalare oarecum moderată a FreeBSD în scopuri de testare, de unde și numele.

De îndată ce această comandă este terminată, rulați sudo dd if = freeBSD.RAW of = / dev / sde , înlocuind numele fișierului RAW cu RAW-ul pe care tocmai l-ați creat și dispozitivul de blocare sde cu dispozitivul care vă interesează. Dacă nu sunteți sigur, atunci puteți rula oricând sudo fdisk -l pentru a vă asigura că știți numele partiției corecte. La fel ca în cazul utilizării dd pentru orice altceva, nu doriți să scrieți pe dispozitivul greșit.

Este posibil să primiți o eroare în legătură cu faptul că nu mai rămâne spațiu pe dispozitiv, la fel ca în cazul în care ați încerca să scrieți un fișier mare pe un dispozitiv mai mic, dar acest lucru nu a cauzat probleme la teste. Se pare că acest proces adaugă zerouri suplimentare. În caz contrar, ați reușit să copiați discul virtual pe un disc fizic în doar doi pași, cu un minim de prostii.



Metoda 2: Cu comanda QEMU Disk Network Block Device Server

Utilizatorii care au acces doar la sistemul de virtualizare Quick Emulator (QEMU) vor trebui să facă față unei proceduri puțin mai implicate decât cei care au acces la comanda VBoxManage. La promptul de comandă, rulați sudo modprobe nbd urmat de qemu-nbd -r -c / dev / ndb0 -f vpc ourTest.vhd , cu numele fișierului modificat pentru a reflecta numele real al fișierului cu care lucrați. Este posibil să aveți nevoie de sudo pentru a rula qemu-nbd, în funcție de modul în care ați configurat instalarea. Dacă copiați comenzile de aici și le lipiți, asigurați-vă că le modificați înainte de a le rula. În majoritatea cazurilor, veți avea vreodată dispozitivul ndb0 de care să vă faceți griji aici, deci nu ar trebui să aveți probleme acolo.

După ce ați terminat, puteți scrie partiția cu qemu-nbd -P 2 -r -c / dev / nbd2 -f vpc ourTest.vhd urmat de sudo ddrescure -v -f / dev / nbd2 / dev / sde2 , dar nu uitați să înlocuiți fișierele dispozitivului cu cele care vă interesează efectiv. Dacă copiați și lipiți acestea în propriul terminal, asigurați-vă că înlocuiți numele fișierelor și numerele de partiție cu cele pe care încercați să le scrieți. Dispozitivul nostru / dev / sde era doar un card SDHC folosit pe care îl foloseam pentru a testa acest lucru în siguranță fără a deteriora nimic. Este posibil să aveți nevoie de sudo pentru a rula qemu-nbd, dar nu ar trebui să aveți nevoie de el. La fel, poate fi necesar să renunțați la numerele de partiție în funcție de configurația dvs. Procesul QEMU nu este la fel de intuitiv din aceste motive.

Utilizatorii Hyper-V ar putea avea o imagine VHDX în loc de un fișier VHD. Dacă acesta este cazul, va trebui să rulați qemu-nbd -c / dev / nbd0 -f VHDX ourTest.vhd în timp ce înlocuiți din nou numele fișierului. În timp ce acest format a fost un supliment la Windows Server 2012 pentru a adăuga o capacitate de stocare mai mare la mașinile virtualizate, din ce în ce mai mulți utilizatori Linux apelează la el pentru a scăpa de limita de 2 TB pe care o are VHD. În caz contrar, aceste instrucțiuni ar trebui să funcționeze indiferent de dimensiunea reală a fișierului în cauză. Instrumentul GNU ddrescue ar trebui să funcționeze ca dd, deși se asigură că copiați mai întâi cele mai bune blocuri.

Odată ce acest lucru este executat, utilizatorii care lucrează cu imagini VHDX vor trebui să ruleze sudo ddrescue -v -f / dev / nbd2 / dev / sde2 , înlocuind din nou fișierele de mai sus. În caz contrar, toată lumea cu toate tipurile de imagini VirtualBox poate folosi qemu-nbd -P 2 -r -c / dev / nbd2 -f vpc ourTest.vhd pentru a monta partiția în cauză ca și cum ar fi un disc vechi. Va trebui să utilizați sudo mount / dev / nbd2 / cdrom sau sudo mount / dev / nbd2 / mnt pentru a-l monta. Asigurați-vă că nu aveți nimic altceva montat în directorele / cdrom sau / mnt înainte de a încerca.

Metoda 3: Demontarea și apoi Deconectarea fișierului

Pentru a demonta imaginea, trebuie pur și simplu să o utilizați sudo umount / mnt sau sudo umount / cdrom pentru a-l desprinde. Nucleul Linux în sine, la urma urmei, era ocupat să-l trateze ca și cum ar fi un alt volum.

Totuși, va trebui să îl deconectați de la sistemul QEMU, totuși, așa că tastați qemu-ndb -d / dev / nbd2 pentru a-l deconecta.

4 minute citite