QEMU में एक कच्ची डिस्क छवि को बूट करना


25

मेरे पास यहां से एक डिस्क छवि फ़ाइल है ; वह पृष्ठ कहता है कि मैं इस छवि को QEMU और निम्न आदेश के साथ बूट कर सकता हूं:

$ qemu-system-x86_64  -m 4096  -ctrl-grab  -no-reboot  x86-64.img

यह संदेश देता है:

WARNING: Image format was not specified for 'x86-64.img' and probing guessed raw.
     Automatically detecting the format is dangerous for raw images, write operations on block 0 will be restricted.
     Specify the 'raw' format explicitly to remove the restrictions.

एमुलेटर लोड होता है, लेकिन PilOS क्रैश हो जाता है, जिसका मतलब है कि मैंने कुछ गलत किया है:

(शायद इसलिए कि पीआईओएस 0 को ब्लॉक करने के लिए लिखना चाहता है लेकिन नहीं कर सकता)

rawकमांड लाइन तर्क है, जहाँ तक मैं बता सकता हूँ, इस तरह से पारित कर दिया जाना चाहिए:

$ qemu-system-x86_64 -drive format=raw file=x86-64.img 
qemu-system-x86_64: -drive format=raw: drive with bus=0, unit=0 (index=0) exists

यह विफल रहता है (मुझे लगता है) क्योंकि मेरा बूट डिवाइस /dev/sdaबस 0 पर है, इसलिए निम्न में से एक QEMU के मैन पेज के अनुसार काम करना चाहिए (लेकिन नहीं):

$ qemu-system-x86_64 -drive bus=9 format=raw file=x86-64.img 
qemu-system-x86_64: -drive bus=9: Could not open 'format=raw': No such file or directory
$ qemu-system-x86_64 -drive format=raw file=x86-64.img bus=9
qemu-system-x86_64: -drive format=raw: drive with bus=0, unit=0 (index=0) exists

जिस bus=9तर्क -driveको स्वीकार करना चाहिए, उसे या तो एक फ़ाइलनाम के रूप में व्याख्या की गई है, या पूरी तरह से अनदेखा किया गया है।

मैं QEMU में ऐसी कच्ची छवि को कैसे ठीक से बूट करूं?


यह Ubuntu 15.10 है, चल रहा है:

QEMU emulator version 2.3.0 (Debian 1:2.3+dfsg-5ubuntu9.3), Copyright (c) 2003-2008 Fabrice Bellard

छवि के बारे में डेटा:

$ file x86-64.img 
x86-64.img: DOS/MBR boot sector; partition 1 : ID=0x83, active, start-CHS (0x0,1,1), end-CHS (0x82,246,62), startsector 62, 2006072 sectors; partition 2 : ID=0x82, start-CHS (0x83,0,1), end-CHS (0x15,246,62), startsector 2006134, 2006134 sectors

$ fdisk -lu x86-64.img 
Disk x86-64.img: 670 KiB, 686080 bytes, 1340 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x00000000

Device      Boot   Start     End Sectors   Size Id Type
x86-64.img1 *         62 2006133 2006072 979.5M 83 Linux
x86-64.img2      2006134 4012267 2006134 979.6M 82 Linux swap / Solaris

जवाबों:


38

-driveविकल्प ऐसा पैरामीटर लेता है जो इस तरह दिखता है:

qemu-system-x86_64 -drive format=raw,file=x86-64.img 

... आपको इसके "उप"-गोद के बीच कॉमा का उपयोग करने की आवश्यकता है, न कि रिक्त स्थान।

उदाहरण के लिए, यहां एक डेबियन इंस्टॉलर सीडी को बूट करने के लिए मैंने एक परीक्षण किया है:

qemu-system-x86_64 -drive format=raw,media=cdrom,readonly,file=debian-8.2.0-amd64-DVD-1.iso 

qemu-system-x86_64 -fda os.flpचेतावनी से छुटकारा पाने के लिए आप फ्लॉपी ड्राइव के लिए कच्चे विकल्प को कैसे निर्दिष्ट करते हैं ?
उत्साही

1
@ सेंन्टरीकेजेक यह मैन पेज में है- "इसके बजाय -fda, -fdb के लिए, आप उपयोग कर सकते हैं:" देता है -drive file=file,index=0,if=floppy... इसलिए आपको इसे जोड़ने में सक्षम होना चाहिए format=raw
derobert

ठीक मिल गया। qemu-system-x86_64 -drive format=raw,file=os.flp,index=0,if=floppyकाम किया! धन्यवाद।
उत्साही

2
@ Mr.Hyde ने मुझे और ओपी दोनों के लिए काम करने पर विचार किया, यह अजीब है! पूर्ण कमांड लाइन क्या है? शायद यह एक नया सवाल पूछना सबसे अच्छा होगा, आप अपने सवाल में इसे संदर्भित कर सकते हैं।
derobert

1
@ Mr.Hyde आपके पास -driveवहां कोई तर्क नहीं है, इसलिए यह एक अलग सवाल है। सुझाव दें कि आप अपना प्रश्न पूछें।
डेबोर्ट
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.