كيفية تركيب صورة القرص الافتراضي 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
أمر.