Com s'utilitza l'ordre DD per copiar fitxers VHD al disc dur físic



Proveu El Nostre Instrument Per Eliminar Problemes

Els fitxers de disc dur virtual (VHD) són fitxers gegants que emulen l’ús de suports físics a VirtualBox i alguns altres emuladors virtuals x86 / x86_64. Això us permet executar Windows, OS X, MS-DOS, FreeBSD, OpenBSD, OS / 2 o fins i tot altres versions de Linux dins de la vostra distribució de Linux. Aquests fitxers no us permeten escriure directament el seu contingut a un disc físic mitjançant l’ordre dd que us permet fer el mateix amb un ISO, però hi ha una manera de fer-ho. Tot i que algunes guies requereixen convertir el fitxer VHD a ISO, no ho haureu de fer si utilitzeu VirtualBox en qualsevol versió moderna de Linux. Els usuaris de QEMU també tenen una sortida, tot i que implica jugar més.



Haureu d’assegurar-vos que cap de les unitats o particions amb les quals treballareu no sigui la que arrenceu. Acabem d’utilitzar un tros de memòria NAND particionada per a aquest exemple, però és possible que vulgueu utilitzar un DVD d’arrencada en viu o USB si d’una altra manera no ho podríeu fer. Independentment de la forma en què vau arrencar la màquina en qüestió, inicieu el programa de terminal mantenint premudes Ctrl, Alt i T, cercant-les al Ubuntu Dash o obrint-les des dels submenús Eines del sistema a Xfce4 o LXDE.



Mètode 1: utilitzar VBoxManage des del símbol del sistema

Amb molt, la forma més senzilla de fer-ho és mitjançant una instal·lació tradicional de VirtualBox. Assegureu-vos primer que heu fet una còpia de seguretat de totes les dades que us preocupa la pèrdua perquè destruireu qualsevol dada del maquinari físic de la destinació, mentre que també podríeu acabar fent alguna cosa al fitxer VHD o VHDX en el procés. Això val també per a l’altre mètode, així com per a qualsevol cosa que impliqui ordres que siguin destructives.



Un cop estigueu segur que tot és segur i que la unitat de destinació no està muntada, però encara està connectada a la màquina, digueu un disc dur extern que encara heu endollat ​​però que no està muntat o que fins i tot pot estar en brut, ja que ho perdreu tot. en el procés, executeu VBoxManage clonehd freeBSD.VHDX –format RAW freeBSD.RAW mentre substituïu freeBSD.VHDX pel vostre disc dur virtual. Teníem un fitxer de disc dur virtual amb una instal·lació de FreeBSD una mica moderada a efectes de proves, d’aquí el seu nom.

Tan bon punt aquesta ordre s'hagi acabat, executeu sudo dd if = freeBSD.RAW de = / dev / sde , substituint el nom del fitxer RAW pel RAW que acabeu de crear i el dispositiu de bloqueig sde pel dispositiu que realment us interessa. Si no esteu segur, sempre podeu executar-lo sudo fdisk -l per assegurar-vos que coneixeu el nom de partició correcte. Igual que amb l’ús de dd per a qualsevol altra cosa, no voleu escriure al dispositiu equivocat.

És possible que obtingueu un error si no queda espai al dispositiu, com si provés d’escriure un fitxer gran en un dispositiu més petit, però això no va causar problemes a les proves. Sembla que aquest procés afegeix zeros addicionals. En cas contrari, heu pogut copiar el disc virtual a un disc físic en només dos passos amb un mínim de burles.



Mètode 2: amb l'ordre QEMU Disk Network Block Device Device Server

Els usuaris que només tinguin accés al sistema de virtualització Quick Emulator (QEMU) hauran de fer front a un procediment una mica més implicat que els que tenen accés a l’ordre VBoxManage. A l’indicatiu d’ordres, executeu sudo modprobe nbd Seguit per qemu-nbd -r -c / dev / ndb0 -f vpc ourTest.vhd , amb el nom del fitxer canviat per reflectir el nom de fitxer real amb què esteu treballant. És possible que necessiteu sudo per executar qemu-nbd, segons com hàgiu configurat la instal·lació. Si copieu les ordres d’aquí i les enganxeu, assegureu-vos de canviar-les abans d’executar-les. En la majoria dels casos, només teniu aquí el dispositiu ndb0 que us preocupa, de manera que no hi hauríeu cap problema.

Un cop fet, podeu escriure la partició amb qemu-nbd -P 2 -r -c / dev / nbd2 -f vpc ourTest.vhd Seguit per sudo ddrescure -v -f / dev / nbd2 / dev / sde2 , però recordeu que heu de substituir els fitxers del dispositiu pels que realment us interessa utilitzar. Si els copieu i enganxeu al vostre propi terminal, assegureu-vos de substituir aquests noms de fitxers i números de partició pels que esteu intentant escriure. El nostre dispositiu / dev / sde no era més que una targeta SDHC usada que estàvem utilitzant per provar-ho amb seguretat sense danyar res. És possible que necessiteu sudo per executar qemu-nbd, però no ho necessiteu. De la mateixa manera, és possible que hagueu de deixar caure els números de partició en funció de la vostra configuració. Per aquestes raons, el procés QEMU no és tan intuïtiu.

Els usuaris d’Hyper-V poden tenir una imatge VHDX en lloc d’un fitxer VHD. Si és el cas, caldrà executar-lo qemu-nbd -c / dev / nbd0 -f VHDX ourTest.vhd mentre substituïu el nom del fitxer una vegada més. Tot i que aquest format es va afegir a Windows Server 2012 per tal d’afegir una capacitat d’emmagatzematge més gran a les màquines virtualitzades, cada vegada hi ha més usuaris de Linux que s’hi adrecen per escapar del límit de 2 TB que té VHD. En cas contrari, aquestes instruccions haurien de funcionar independentment de la mida real del fitxer en qüestió. L'eina ddrescue de GNU hauria de funcionar com dd, tot i que assegura de copiar primer els millors blocs.

Un cop executat, els usuaris que treballin amb imatges VHDX hauran d'executar-se sudo ddrescue -v -f / dev / nbd2 / dev / sde2 , substituint de nou els fitxers anteriors. En cas contrari, poden utilitzar tothom amb tot tipus d’imatges de VirtualBox qemu-nbd -P 2 -r -c / dev / nbd2 -f vpc ourTest.vhd per muntar la partició en qüestió com si fos un disc vell. Haureu d’utilitzar sudo mount / dev / nbd2 / cdrom o bé sudo mount / dev / nbd2 / mnt per muntar-lo. Assegureu-vos que no teniu res més muntat als directoris / cdrom o / mnt abans de provar-ho.

Mètode 3: desmuntatge i desconnexió del fitxer

Per desmuntar la imatge, només cal utilitzar-la sudo umount / mnt o bé sudo umount / cdrom per deslligar-lo. El nucli Linux, al cap i a la fi, estava ocupat tractant-lo com si fos un altre volum.

Tot i així, haureu de desconnectar-lo del sistema QEMU, però escriviu qemu-ndb -d / dev / nbd2 per desconnectar-lo.

4 minuts de lectura