كيفية استخدام أمر DD لنسخ ملفات VHD إلى القرص الثابت المادي



جرب أداة القضاء على المشاكل

ملفات القرص الصلب الظاهري (VHD) هي ملفات عملاقة تحاكي استخدام الوسائط الفعلية على VirtualBox وبعض محاكيات x86 / x86_64 الافتراضية الأخرى. يتيح لك ذلك تشغيل Windows أو OS X أو MS-DOS أو FreeBSD أو OpenBSD أو OS / 2 أو حتى إصدارات أخرى من Linux داخل توزيعة Linux الخاصة بك. لا تسمح لك هذه الملفات بكتابة محتوياتها مباشرة على قرص فعلي عبر الأمر dd الذي يتيح لك فعل الشيء نفسه مع ملف ISO ، ولكن هناك طريقة للقيام بذلك. بينما تطلب منك بعض الأدلة تحويل ملف VHD إلى ISO ، فلن تضطر إلى القيام بذلك إذا كنت تقوم بتشغيل VirtualBox على أي إصدار حديث من Linux. لدى مستخدمي QEMU أيضًا مخرج ، على الرغم من أنه يتضمن المزيد من اللعب.



ستحتاج إلى التأكد من عدم وجود أي من محركات الأقراص أو الأقسام التي ستعمل معها هي التي تقوم بالتمهيد منها. لقد استخدمنا للتو جزءًا من ذاكرة NAND المقسمة لهذا المثال ، ولكن قد ترغب في استخدام قرص DVD مباشر أو قرص USB إذا لم تكن قادرًا على القيام بذلك. بغض النظر عن الطريقة التي تم بها تشغيل الجهاز المعني ، ابدأ برنامجك الطرفي إما بالضغط باستمرار على Ctrl و Alt و T ، أو البحث عنه على Ubuntu Dash أو فتحه من القائمة الفرعية System Tools في Xfce4 أو LXDE.



الطريقة الأولى: استخدام برنامج VBoxManage من موجه الأوامر

أسهل طريقة للقيام بذلك هي استخدام تثبيت VirtualBox التقليدي. تأكد أولاً من أنك قمت بعمل نسخة احتياطية من جميع البيانات التي تقلق بشأن فقدها لأنك ستدمر أي بيانات على الأجهزة المادية للوجهة بينما قد ينتهي بك الأمر أيضًا إلى القيام بشيء ما لملف VHD أو VHDX في هذه العملية. هذا ينطبق على الطريقة الأخرى أيضًا ، بالإضافة إلى أي شيء يتضمن أوامر مدمرة.



بمجرد أن تتأكد من أن كل شيء آمن وأن محرك الأقراص الوجهة غير مثبت ولكنه لا يزال متصلًا بالجهاز ، قل قرصًا ثابتًا خارجيًا ما زلت متصلاً به ولكن لم يتم تركيبه أو قد يكون خامًا لأنك ستفقد كل شيء عليه في هذه العملية ، قم بتشغيل VBoxManage clonehd freeBSD.VHDX –format RAW freeBSD.RAW أثناء استبدال freeBSD.VHDX بالقرص الثابت الافتراضي. كان لدينا ملف قرص ثابت افتراضي بتثبيت معتدل إلى حد ما لـ FreeBSD لأغراض الاختبار ، ومن هنا جاء الاسم.

بمجرد الانتهاء من هذا الأمر ، قم بتشغيل sudo dd if = freeBSD.RAW من = / dev / sde ، مع استبدال اسم ملف RAW بـ RAW الذي أنشأته للتو وجهاز sde block بالجهاز الذي تهتم به بالفعل. إذا لم تكن متأكدًا ، فيمكنك دائمًا تشغيل sudo fdisk -l للتأكد من أنك تعرف اسم القسم الصحيح. تمامًا مثل استخدام dd لأي شيء آخر ، فأنت لا تريد الكتابة على الجهاز الخطأ.

قد تحصل على خطأ حول عدم وجود مساحة متبقية على الجهاز ، تمامًا كما لو حاولت كتابة ملف كبير على جهاز أصغر ، لكن هذا لم يسبب مشاكل في الاختبارات. يبدو أن هذه العملية تضيف أصفارًا إضافية. بخلاف ذلك ، كنت قادرًا على نسخ القرص الافتراضي إلى قرص فعلي في خطوتين فقط بأقل قدر من العبث.



الطريقة 2: باستخدام أمر خادم جهاز كتلة شبكة قرص QEMU

سيتعين على المستخدمين الذين لديهم حق الوصول إلى نظام المحاكاة الافتراضية Quick Emulator (QEMU) التعامل مع إجراء أكثر تعقيدًا من أولئك الذين لديهم حق الوصول إلى أمر VBoxManage. في موجه الأوامر ، قم بتشغيل sudo modprobe nbd تليها qemu-nbd -r -c / dev / ndb0 -f vpc ourTest.vhd ، مع تغيير اسم الملف ليعكس اسم الملف الفعلي الذي تعمل به. قد تحتاج إلى sudo لتشغيل qemu-nbd ، اعتمادًا على كيفية تكوين التثبيت. إذا كنت تنسخ الأوامر من هنا وتلصقها ، فتأكد من تغييرها قبل تشغيلها. في معظم الحالات ، لن يكون لديك سوى الجهاز ndb0 الذي تقلق بشأنه هنا ، لذا لن تواجهك أية مشكلات هناك.

بمجرد الانتهاء من ذلك ، يمكنك كتابة القسم باستخدام qemu-nbd -P 2 -r -c / dev / nbd2 -f vpc ourTest.vhd تليها sudo ddrescure -v -f / dev / nbd2 / dev / sde2 ، ولكن تذكر استبدال ملفات الجهاز بالملفات التي تهتم بالفعل باستخدامها. إذا كنت تنسخ هذه الملفات وتلصقها في المحطة الطرفية الخاصة بك ، فتأكد من استبدال أسماء الملفات وأرقام الأقسام تلك بأسماء الملفات التي تحاول الكتابة إليها. كان جهاز / dev / sde مجرد بطاقة SDHC مستخدمة كنا نستخدمها لاختبار هذا بأمان دون الإضرار بأي شيء. قد تحتاج إلى sudo لتشغيل qemu-nbd ، لكن لا يجب أن تحتاجه. وبالمثل ، قد تضطر إلى إسقاط أرقام الأقسام بناءً على التكوين الخاص بك. إن عملية QEMU ليست بديهية تقريبًا لهذه الأسباب.

قد يكون لدى مستخدمي Hyper-V صورة VHDX بدلاً من ملف VHD. إذا كانت هذه هي الحالة ، فستحتاج بدلاً من ذلك إلى الجري qemu-nbd -c / dev / nbd0 -f VHDX ourTest.vhd أثناء استبدال اسم الملف مرة أخرى. في حين أن هذا التنسيق كان إضافة إلى Windows Server 2012 من أجل إضافة سعة تخزين أكبر للأجهزة الافتراضية ، فإن المزيد والمزيد من مستخدمي Linux يتجهون إليه من أجل الهروب من حد 2 تيرابايت لـ VHD. خلافًا لذلك ، يجب أن تعمل هذه الإرشادات بغض النظر عن حجم الملف الفعلي المعني. يجب أن تعمل أداة GNU ddrescue مثل dd ، على الرغم من أنها تتأكد من نسخ أفضل الكتل أولاً.

بمجرد تشغيل هذا ، سيحتاج المستخدمون الذين يعملون مع صور VHDX إلى التشغيل sudo ddrescue -v -f / dev / nbd2 / dev / sde2 ، مرة أخرى لتحل محل الملفات أعلاه. خلاف ذلك ، يمكن لأي شخص لديه جميع أنواع صور VirtualBox استخدامها qemu-nbd -P 2 -r -c / dev / nbd2 -f vpc ourTest.vhd لتركيب القسم المعني كما لو كان أي قرص قديم. سوف تحتاج إلى استخدام sudo mount / dev / nbd2 / cdrom أو sudo mount / dev / nbd2 / mnt لتثبيته. تأكد من عدم حصولك على أي شيء آخر مثبت في الدلائل / cdrom أو / mnt قبل تجربته.

الطريقة الثالثة: إلغاء التثبيت ثم فصل الملف

لإلغاء تحميل الصورة ، ما عليك سوى استخدام sudo umount / mnt أو sudo umount / قرص مدمج لفصله. بعد كل شيء ، كانت نواة Linux نفسها منشغلة في التعامل معها كما لو كانت أي مجلد آخر.

ستظل بحاجة إلى فصله عن نظام QEMU ، لذا اكتب qemu-ndb -d / dev / nbd2.0 لفصله.

4 دقائق للقراءة