تكنولوجيا

كيفية تركيب صورة القرص الافتراضي QEMU – CloudSavvy IT

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

يمكنك تثبيت FreeDOS وتشغيله باستخدام الجهاز الظاهري QEMU وفقًا لإرشاداتنا. ومع ذلك ، بعد تثبيت FreeDOS ، كيف يتم تثبيت الإصدار القديم من البرنامج وتشغيله في QEMU؟

يمكنك استخدام طريقتين أساسيتين لتركيب صورة قرص QEMU: استخدم الإزاحة لتركيب الصورة مباشرة ، أو استخدم libguestfs-equipment صفقة.

بافتراض أن Linux يعرف موضع بدء قسم محرك الأقراص C: على القرص الظاهري ، يمكن لـ Linux تحميل تنسيق صورة القرص الأصلي لـ QEMU. يمكن أن يحتوي القرص الظاهري على أقسام متعددة ، ولكن بالنسبة لمعظم عمليات تثبيت أنظمة التشغيل التقليدية (مثل DOS) ، قد يكون لديك قسم واحد فقط. هذا هو محرك الأقراص C:.

لنلقِ نظرة على ناتج Linux fdisk برنامج.استعمال -l سيقوم الخيار بسرد الأقسام الموجودة على القرص الافتراضي:

$ fdisk -l image.img 
Disk picture.img: 100 MiB, 104857600 bytes, 204800 sectors
Models: sectors of 1 * 512 = 512 bytes
Sector dimensions (rational/bodily): 512 bytes / 512 bytes
I/O sizing (bare minimum/ideal): 512 bytes / 512 bytes
Disklabel sort: dos
Disk identifier: 0x00000000

Device     Boot Start out    End Sectors  Dimensions Id Kind
picture.img1 *       63 204623  204561 99.9M  6 Body fat16

هنا ، محرك الأقراص C: هو القسم الأول والوحيد على محرك الأقراص الظاهري ، المدرج باسم impression.img1 لتحديد إزاحة محرك الأقراص C: ، تحتاج إلى معرفة قطاع بدء القسم.الإخراج من fdisk يُعرض في صورة 63.

لحساب الإزاحة ، تحتاج أيضًا إلى معرفة حجم القطاع. قطاع صورة القرص الظاهري 512 بايت. يمكنك حساب الإزاحة على أنها حاصل ضرب الإزاحة وحجم القطاع: 63 × 512 = 32256.

استخدم قيمة الإزاحة هذه لتحميل محرك الأقراص الظاهري C: من Linux:

$ mkdir /tmp/dos
$ sudo mount -o loop,offset=32256 image.img /tmp/dos
$ ls /tmp/dos
AUTOEXEC.BAT  COMMAND.COM  FDCONFIG.SYS  FDOS  KERNEL.SYS
$ sudo umount /tmp/dos

يمكنك استخدام البرامج النصية Bash لأتمتة العمليات الحسابية. يحتاج البرنامج النصي أولاً إلى جمع القيم بتنسيق سهل التحليل.على نظام Linux الخاص بي ، أستخدم ملفات -o مع الخيارات fdisk حدد الأعمدة المراد طباعتها.نظرًا لأنني بحاجة فقط لمطابقة القسم (الجهاز) وقيمة البداية ، فقد اعتدت fdisk يسرد الأمر الأعمدة التي أحتاجها:

$ fdisk -l -o Gadget,Start out image.img 
Disk graphic.img: 100 MiB, 104857600 bytes, 204800 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (sensible/bodily): 512 bytes / 512 bytes
I/O dimension (minimum amount/optimum): 512 bytes / 512 bytes
Disklabel form: dos
Disk identifier: 0x00000000

Machine     Start off
impression.img1    63

يمكن أن يستخدم سكربت Bash Gawk لتحليل الإخراج لحساب الإزاحة من تلقاء نفسه:

#!/bin/bash
# utilization: qemu-mount imagefile
# 1st argument: QEMU raw picture file

if [ $# -ne 1 ]  then
  echo 'usage: qemu-mount imagefile'
  echo 'Mounts a QEMU uncooked picture file to /tmp/dos'
  exit 1
fi

start out=$( fdisk -l -o Product,Begin $1 | grep "^$11" | gawk 'print $2' )
sectors=$( fdisk -l $1 | grep '^Models: sectors of' | gawk 'print $(NF-1)' )
offset=$(( $begin * $sectors ))

[ -d /tmp/dos ] || mkdir /tmp/dos
sudo mount -o loop,offset=$offset $1 /tmp/dos

قم بتركيب صورة القرص الظاهري QEMU على /tmp/dos نقطة التحميل المؤقتة ، يمكنك قراءة البيانات وكتابتها على محرك الأقراص الظاهري C:. هذه طريقة مناسبة لنسخ مثبت البرنامج القديم إلى أو من الجهاز الظاهري. ومع ذلك ، يجب تحميل صورة القرص الظاهري فقط عندما لا يكون QEMU قيد التشغيل. إذا حاولت تركيبه أثناء استخدام صورة قرص QEMU ، فقد تتلف القرص الظاهري.

بعد الوصول إلى صورة القرص الظاهري من Linux ، لا تنس إلغاء تحميل الصورة باستخدام الأمر التالي: umount أمر.

من libguestfs-instruments توفر حزمة البرامج مجموعة من الأدوات للوصول إلى صور قرص الجهاز الظاهري.الطقم يشمل guestmount ، مما يجعل من السهل جدًا تحميل صور قرص QEMU من Linux. إذا كانت توزيعتك لا تتضمن هذه الحزمة افتراضيًا ، فقد تحتاج إلى تثبيت برنامج libguestfs بشكل منفصل.ومع ذلك ، توفر العديد من توزيعات Linux (بما في ذلك Fedora و Crimson Hat Company Linux و Debian و Ubuntu) libguestfs-tools يمكنك تثبيت الحزمة من خلال مدير الحزم.

هناك خياران guestmount كيفية الوصول إلى صورة قرص QEMU.من --add imagefile يحدد الخيار صورة القرص الظاهري المراد استخدامها ، و --mount unit اقول الخيار guestmount أي قسم يجب استخدامه من صورة القرص.تحتاج إلى استخدام مسارات Linux القياسية للإشارة إلى الجهاز ، على سبيل المثال /dev/sda1 القسم الأول في صورة القرص الظاهري.

باستخدام هذين الخيارين ، يكون تركيب صورة قرص افتراضي من Linux أمرًا من سطر واحد:

guestmount --incorporate impression.img --mount /dev/sda1 /tmp/dos

بعد فترة ، سيؤدي هذا إلى تحميل محرك الأقراص الظاهري C: إلى نقطة التحميل المؤقتة / tmp / dos.يمكنك الوصول إلى الملفات الموجودة على صورة القرص الظاهري /tmp/dos استخدم أدوات Linux القياسية ، مثل cp مع mvلنسخ البيانات إلى أو من قرص افتراضي. لاحظ أنه يجب تثبيت صورة القرص فقط في حالة عدم تشغيل QEMU ، وإلا فقد يتلف القرص الظاهري.

بعد إكمال محرك الأقراص الظاهري C: يمكنك استخدام الأمر التالي لإلغاء تحميل نظام الملفات: guestunmount أمر.

مقالات ذات صلة

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

زر الذهاب إلى الأعلى