Comment utiliser la commande DD pour copier des fichiers VHD sur un disque dur physique



Essayez Notre Instrument Pour Éliminer Les Problèmes

Les fichiers de disque dur virtuel (VHD) sont des fichiers géants qui émulent l'utilisation de supports physiques sur VirtualBox et certains autres émulateurs virtuels x86 / x86_64. Cela vous permet d'exécuter Windows, OS X, MS-DOS, FreeBSD, OpenBSD, OS / 2 ou même d'autres versions de Linux dans votre distribution Linux. Ces fichiers ne vous permettent pas d'écrire directement leur contenu sur un disque physique via la commande dd qui vous permet de faire de même avec une image ISO, mais il existe un moyen de le faire. Bien que certains guides vous demandent de convertir le fichier VHD en ISO, vous n’avez pas à le faire si vous exécutez VirtualBox sur une version moderne de Linux. Les utilisateurs de QEMU ont également un moyen de sortir, bien que cela implique davantage de jouer.



Vous devez vous assurer qu’aucun des disques ou partitions avec lesquels vous allez travailler n’est celui à partir duquel vous démarrez. Nous venons d'utiliser un morceau de mémoire NAND partitionnée pour cet exemple, mais vous pouvez utiliser un DVD en direct ou un démarrage USB si vous ne parveniez pas à le faire autrement. Quelle que soit la manière dont vous avez démarré la machine en question, démarrez votre programme de terminal en maintenant les touches Ctrl, Alt et T enfoncées, en le recherchant sur Ubuntu Dash ou en l'ouvrant à partir des sous-menus Outils système dans Xfce4 ou LXDE.



Méthode 1: Utilisation de VBoxManage à partir de l'invite de commandes

Le moyen de loin le plus simple de le faire est d'utiliser une installation VirtualBox traditionnelle. Assurez-vous d'abord que vous avez sauvegardé toutes les données que vous craignez de perdre, car vous allez détruire toutes les données sur le matériel physique de la destination alors que vous pourriez également finir par faire quelque chose sur le fichier VHD ou VHDX dans le processus. Cela vaut également pour l'autre méthode, ainsi que pour tout ce qui implique des commandes aussi destructrices.



Une fois que vous êtes sûr que tout est en sécurité et que le lecteur de destination est démonté mais toujours connecté à la machine, disons un disque dur externe que vous avez toujours branché mais qui n'est pas monté ou peut même être brut car vous perdrez tout ce qu'il contient dans le processus, exécutez VBoxManage clonehd freeBSD.VHDX - format RAW freeBSD.RAW tout en remplaçant freeBSD.VHDX par votre disque dur virtuel. Nous avions un fichier de disque dur virtuel avec une installation quelque peu modérée de FreeBSD à des fins de test, d'où le nom.

Dès que cette commande est terminée, exécutez sudo dd if = freeBSD.RAW sur = / dev / sde , en remplaçant le nom du fichier RAW par le RAW que vous venez de créer et l'appareil de blocage sde par l'appareil qui vous intéresse réellement. Si vous n'êtes pas sûr, vous pouvez toujours exécuter sudo fdisk -l pour vous assurer que vous connaissez le bon nom de partition. Tout comme avec dd pour autre chose, vous ne voulez pas écrire sur le mauvais appareil.

Vous pouvez recevoir une erreur indiquant qu'il ne reste plus d'espace sur l'appareil, comme si vous tentiez d'écrire un fichier volumineux sur un appareil plus petit, mais cela n'a pas posé de problèmes lors des tests. Il semble que ce processus ajoute des zéros supplémentaires. Sinon, vous avez pu copier le disque virtuel sur un disque physique en seulement deux étapes avec un minimum de tromperie.



Méthode 2: avec la commande QEMU Disk Network Block Device Server

Les utilisateurs qui n'ont accès qu'au système de virtualisation Quick Emulator (QEMU) devront faire face à une procédure légèrement plus complexe que ceux qui ont accès à la commande VBoxManage. À l'invite de commande, exécutez sudo modprobe nbd suivi par qemu-nbd -r -c / dev / ndb0 -f vpc ourTest.vhd , avec le nom de fichier modifié pour refléter le nom de fichier réel avec lequel vous travaillez. Vous devrez peut-être sudo pour exécuter qemu-nbd, selon la façon dont vous avez configuré votre installation. Si vous copiez les commandes d'ici et que vous les collez, assurez-vous de les modifier avant de les exécuter. Dans la plupart des cas, vous n'aurez à vous soucier que de l'appareil ndb0 ici, vous ne devriez donc pas avoir de problèmes.

Une fois cela fait, vous pouvez écrire la partition avec qemu-nbd -P 2 -r -c / dev / nbd2 -f vpc ourTest.vhd suivi par sudo ddrescure -v -f / dev / nbd2 / dev / sde2 , mais n'oubliez pas de remplacer les fichiers de l'appareil par ceux qui vous intéressent réellement. Si vous copiez et collez ces derniers dans votre propre terminal, assurez-vous de remplacer ces noms de fichiers et numéros de partition par ceux sur lesquels vous essayez d'écrire. Notre périphérique / dev / sde était simplement une carte SDHC utilisée que nous utilisions pour tester cela en toute sécurité sans endommager quoi que ce soit. Vous aurez peut-être besoin de sudo pour exécuter qemu-nbd, mais vous ne devriez pas en avoir besoin. De même, vous devrez peut-être supprimer les numéros de partition en fonction de votre configuration. Le processus QEMU n’est pas aussi intuitif pour ces raisons.

Les utilisateurs Hyper-V peuvent avoir une image VHDX au lieu d'un fichier VHD. Si tel est le cas, vous devrez à la place exécuter qemu-nbd -c / dev / nbd0 -f VHDX ourTest.vhd tout en remplaçant à nouveau le nom du fichier. Alors que ce format était un ajout à Windows Server 2012 afin d'ajouter une plus grande capacité de stockage aux machines virtualisées, de plus en plus d'utilisateurs Linux se tournent vers lui pour échapper à la limite de 2 To de VHD. Sinon, ces instructions devraient fonctionner quelle que soit la taille réelle du fichier en question. L'outil GNU ddrescue devrait fonctionner comme dd, bien qu'il s'assure de copier d'abord les meilleurs blocs.

Une fois que cela est exécuté, les utilisateurs travaillant avec des images VHDX devront exécuter sudo ddrescue -v -f / dev / nbd2 / dev / sde2 , en remplaçant à nouveau les fichiers ci-dessus. Sinon, tout le monde avec tous les types d'images VirtualBox peut utiliser qemu-nbd -P 2 -r -c / dev / nbd2 -f vpc ourTest.vhd pour monter la partition en question comme s'il s'agissait d'un ancien disque. Vous devrez utiliser montage sudo / dev / nbd2 / cdrom ou montage sudo / dev / nbd2 / mnt pour le monter. Assurez-vous que rien d’autre n’a été monté dans les répertoires / cdrom ou / mnt avant de l’essayer.

Méthode 3: démontage puis déconnexion du fichier

Pour démonter l'image, il vous suffit d'utiliser sudo umount / mnt ou sudo umount / cdrom pour le détacher. Le noyau Linux lui-même, après tout, était occupé à le traiter comme s'il s'agissait d'un autre volume.

Cependant, vous devrez toujours le déconnecter du système QEMU, alors tapez qemu-ndb -d / dev / nbd2 pour le déconnecter.

4 minutes de lecture