PDA

View Full Version : Qemu شبییه ساز ماشین PC



rezaTavak
دوشنبه 21 آذر 1384, 02:00 صبح
شما فکر میکنید نباید ویندوز را ترک کنید؟
آیا دوست دارید بدون ترک ویندوز لینوکس را هم تجربه کنید؟
خب این مقاله را دنبال کنید تا بتوانید در کنار ویندوز لینوکس را هم داشته باشید!


استفاده از QEMU شبیه ساز و ماشین مجازی برای سیستم عامل
به چه چیزهایی نیازمندیم؟ :
1- کامپیوتر با سی پی یو حداقل 2Gb
2- Ram 256 بهتر است دارای 512 مگابایت باشید.
3- یک سی دی دیسک زنده لینوکس Knoppix (من از نگارش 3.7 استفاده کردم)
4- یک خط اینترنت برای دانلود QEMU و KQEMU
5- سیستم عامل ویندوز و ترجیحا ویندوز 2000
6- حداقل 700 Mbyte فضایی دیسک سخت.
7- نرم افزاری که با آن از روی سی دی ISO بسازید. (من MagicISO را انتخاب کردم)
8- winrar برای کار با فایلهای gz , tar.
9- کارت گرافیکی با رزولوشن 1024x768

(اگر کامپیوتر شما دارای این مشخصات نیست نگران نباشید کامپیوتر من PIII800 و رم 256 بود و بد نبود)

چرا من Knoppix را پیشنهاد دادم؟ چون احتیاج به نصب ندارد.



حالا آماده تمرین هستید!
ابتدا به سایت زیر رفته و برنامه QEMU برای ویندوز و KQEMU را دانلود کنید. رویهم رفته 2.5 مگابایت.

http://www.oszoo.org/download.php

لازم به ذکر است این یک شبیه ساز مانند VMWare است که برای اجرای یک سیستم عامل در یک سیستم عامل دیگر بکار میرود.

از سی دی زنده خود یک ISO بسازید. من آن را در درایو H با نام knoppix.iso ذخیره کردم.

QemuInstall-20051127.exe را اجرا کنید و آنرا نصب کنید.

kqemu-0.7.2.tar.gz را با winrar از حالت فشرده خارج کنید و در یک فولدر ذخیره کنید. و روی kqemu.inf کلیک راست کنید و Install را انتخاب کنید تا نصب شود.

(kqemu شتابدهنده است بدون هم ما می توانیم کار کنیم اما بسیار کند خواهد بود. این شتابدهند عملکرد را به میزان قابل قبولی افزایش میدهد!)

من qemu را در E:\Program Files\Qemu نصب کردم. شما هم نسبت به جایی که نصب کرده اید باید تغییرات لازم را بدهید.

یک فایل دسته ای می سازیم (کلیک راست روی دسکتاپ و انتخاب new و text Document و تغییر نام به knoppix.bat سپس دوباره کلیلک راست و Edit) در آن اینها را تایپ کنید (دوباره یادآوری کنم مسیرهای خودتان را قرار دهید)

net start kqemu
pause
e:
cd "E:\Program Files\Qemu"
qemu -L .\bios -cdrom h:\knoppix.iso -boot d -enable-audio
و فایل را ذخیره و خارج شوید.
اما معانی هر خط
1- سرویس kqemu را راه اندازی می کند.
2- تا فشردن یک کلید از طرف کاربر صبر میکند.
3- داریو را عوض کرده
4- به مسیر برنامه qemu می رود.
5- qemu برنامه را اجرا میکند و -L .\bios مسیر شبیه ساز bios را نشان می دهند -cdrom h:\knoppix.iso مسیر فایلی که در آن لینوکس قرار دارد را نشان می دهد. -boot با گزینه های a دیسکت c هارد و d سی دی قابل انتخاب است. -enable-audio هم کارت صدا را فعال میکند. (بقیه گزینه ها هم در ادامه توضیح خواهم داد.)

حالا با کلیلک روی این فایل شما باید عبارت:

The KQEMU virtualisation module for QEMU service was started successfully.

ببینید اگر ندیدید فایل KQEMU به درستی نصب نشده است آنرا دوباره نصب کنید. و برای ادامه کلیدی فشار دهید. شکل زیر را خواهید دید:





حالا با زدن کلید F2 و F3 گزینه هایی را می توانید انتخاب کنید. اما بهتر است فعلا با زدن کلید Enter بگذارید بطور معمول بوت انجام شود. و سپس شکل زیر را خواهید دید:





شما تا اینجا لینوکس را در ویندوز اجرا کرده اید.

این کلیدها را در نظر داشته باشید:

در مدتی که شبیه ساز شما اجرا میشود:
Ctrl-Alt-f
شما لینوکس را به تمام صفحه خواهید برد
Ctrl-Alt-n
شما در کنسول شما n لینوکس خواهید بود مثلا
1
در کنسول اصلی
2
مانیتور کردن qemu و دادن برخی فرمانها مانند eject-cd و...
3
پورت سریال
Ctrl-Alt
بافشردن این کلید (سمت چپ) ماوس شما مال ویندوز یا لینوکس خواهد شد!
شما همچنین با Ctrl-Up, Ctrl-Down, Ctrl-PageUp and Ctrl-PageDown می توانید اسکرول کنید. (مانند اسکرول ماوس)
همچنین در حالت غیر گرافیکی:
Ctrl-a h
راهنمایینان میکند
Ctrl-a x
از شبیه ساز خارج میشود
Ctrl-a s
Save disk data back to file (if -snapshot)
Ctrl-a b
Send break (magic sysrq in Linux)
Ctrl-a c
Switch between console and monitor
Ctrl-a Ctrl-a
Send Ctrl-a


اگر فرمانهای لینوکس را بلدید یک Konsole باز کنید و کار کنید. و از لینوکس در ویندوز لذت ببرید.

برخی از گزینه های qemu :


usage: qemu [options] [disk_image]
disk_image is a raw hard disk image for IDE hard disk 0.
General options:
`-M machine'
Select the emulated machine (-M ? for list)
ماشین مجازی را انتخاب می کند (فشردن ? نام ماشین ها را نشان میدهد)
`-fda file'
`-fdb file'
Use file as floppy disk 0/1 image (See section Disk Images). You can use the host floppy by using `/dev/fd0' as filename.
با دو گزینه بالا شما فایل تهیه شده دیسکت را به آن معرفی میکنید. دقت داشته باشید در لینوکس هر افزار به یک فایل مرتبط است اما ویندوز اینچنین نیست مثلا اگر این شبیه ساز در لینوکس بکار رود /dev/fd0 به دیسکت شماره 0 اشاره می کند.
`-hda file'
`-hdb file'
`-hdc file'
`-hdd file'
Use file as hard disk 0, 1, 2 or 3 image (See section Disk Images).
دیسک مجازی که تهیه کرده ایدبا این گزینه ها دسترسی دارید مثلا اگر یک فایل در درایو سی به اسم image.img ساخته باشید با -hda c:\image.img به آن دسترسی دارید. اما اگر این شبیه ساز در لینوکس به کار رود می توان به سخت افزار واقعی دست داشت.
`-cdrom file'
Use file as CD-ROM image (you cannot use `-hdc' and and `-cdrom' at the same time). You can use the host CD-ROM by using `/dev/cdrom' as filename.
برای استفاده از سی دی درایو فایل ISO شبیه سازی شده از این گزینه استفاده کنید.
`-boot [a|c|d]'
Boot on floppy (a), hard disk (c) or CD-ROM (d). Hard disk boot is the default.
نشان می دهد از روی کدام درایو بوت شود. پیش فرض هارد است.
`-snapshot'
Write to temporary files instead of disk image files. In this case, the raw disk image you use is not written back. You can however force the write back by pressing C-a s (See section Disk Images).
`-m megs'
Set virtual RAM size to megs megabytes. Default is 128 MB.
حافظه ای که در اختیارش قرار میگیرد. پیش فرض 128 مگابایت است.
`-nographic'
Normally, QEMU uses SDL to display the VGA output. With this option, you can totally disable graphical output so that QEMU is a simple command line application. The emulated serial port is redirected on the console. Therefore, you can still use QEMU to debug a Linux kernel with a serial console.
اگر بخواهید در حالت غیر گرافیکی از این نرم افزار استفاده کنید.
`-k language'
Use keyboard layout language (for example fr for French). This option is only needed where it is not easy to get raw PC keycodes (e.g. on Macs or with some X11 servers). You don't need to use it on PC/Linux or PC/Windows hosts.
The available layouts are:

ar de-ch es fo fr-ca hu ja mk no pt-br sv
da en-gb et fr fr-ch is lt nl pl ru th
de en-us fi fr-be hr it lv nl-be pt sl tr
The default is en-us.
کیبرد پیش فرض چه باشد؟
`-enable-audio'
Will enable audio and all the sound hardware QEMU was built with.
کارت صدا فعال باشد. البته به شرطی که داشته باشید و نصب نرم افزاری هم باشد.
`-audio-help'
Will show the audio subsystem help: list of drivers, tunable parameters.
`-soundhw card1,card2,...'
Enable audio and selected sound hardware. Use ? to print all available sound hardware.

qemu -soundhw sb16,adlib hda
qemu -soundhw es1370 hda
qemu -soundhw ?
`-localtime'
Set the real time clock to local time (the default is to UTC time). This option is needed to have correct date in MS-DOS or Windows.
`-full-screen'
Start in full screen.
اجرا در حالت تمام صفحه
`-pidfile file'
Store the QEMU process PID in file. It is useful if you launch QEMU from a script.
`-win2k-hack'
Use it when installing Windows 2000 to avoid a disk full bug. After Windows 2000 is installed, you no longer need this option (this option slows down the IDE transfers).
اگر بخواهید ویندوز 2000 را شبیه سازی کنید در هنگام نصب باید این گزینه را بکار برید تا خطای دیسک پر شده را دریافت نکنید بعد از نصب ویندوز 2000 نیازی نیست چراکه سرعت را خیلی کم خواهد کرد.
USB options:
`-usb'
Enable the USB driver (will be the default soon)
`-usbdevice devname'
Add the USB device devname. See the monitor command usb_add to have more information.
Network options:
`-net nic[,vlan=n][,macaddr=addr]'
Create a new Network Interface Card and connect it to VLAN n (n = 0 is the default). The NIC is currently an NE2000 on the PC target. Optionally, the MAC address can be changed. If no `-net' option is specified, a single NIC is created.
`-net user[,vlan=n]'
Use the user mode network stack which requires no administrator priviledge to run. This is the default if no `-net' option is specified.
`-net tap[,vlan=n][,fd=h][,ifname=name][,script=file]'
Connect the host TAP network interface name to VLAN n and use the network script file to configure it. The default network script is `/etc/qemu-ifup'. If name is not provided, the OS automatically provides one. `fd=h' can be used to specify the handle of an already opened host TAP interface. Example:

qemu linux.img -net nic -net tap
More complicated example (two NICs, each one connected to a TAP device)

qemu linux.img -net nic,vlan=0 -net tap,vlan=0,ifname=tap0 \
-net nic,vlan=1 -net tap,vlan=1,ifname=tap1
`-net socket[,vlan=n][,fd=h][,listen=[host]:port][,connect=host:port]'
Connect the VLAN n to a remote VLAN in another QEMU virtual machine using a TCP socket connection. If `listen' is specified, QEMU waits for incoming connections on port (host is optional). `connect' is used to connect to another QEMU instance using the `listen' option. `fd=h' specifies an already opened socket.
Example:

# launch a first QEMU instance
qemu linux.img -net nic,macaddr=52:54:00:12:34:56 -net socket,listen=:1234
# connect the VLAN 0 of this instance to the VLAN 0 of the first instance
qemu linux.img -net nic,macaddr=52:54:00:12:34:57 -net socket,connect=127.0.0.1:1234
`-net none'
Indicate that no network devices should be configured. It is used to override the default configuration which is activated if no `-net' options are provided.
`-tftp prefix'
When using the user mode network stack, activate a built-in TFTP server. All filenames beginning with prefix can be downloaded from the host to the guest using a TFTP client. The TFTP client on the guest must be configured in binary mode (use the command bin of the Unix TFTP client). The host IP address on the guest is as usual 10.0.2.2.
`-smb dir'
When using the user mode network stack, activate a built-in SMB server so that Windows OSes can access to the host files in `dir' transparently.
In the guest Windows OS, the line:

10.0.2.4 smbserver
must be added in the file `C:\WINDOWS\LMHOSTS' (for windows 9x/Me) or `C:\WINNT\SYSTEM32\DRIVERS\ETC\LMHOSTS' (Windows NT/2000).
Then `dir' can be accessed in `\\smbserver\qemu'.
Note that a SAMBA server must be installed on the host OS in `/usr/sbin/smbd'. QEMU was tested succesfully with smbd version 2.2.7a from the Red Hat 9 and version 3.0.10-1.fc3 from Fedora Core 3.
`-redir [tcp|udp]:host-port:[guest-host]:guest-port'
When using the user mode network stack, redirect incoming TCP or UDP connections to the host port host-port to the guest guest-host on guest port guest-port. If guest-host is not specified, its value is 10.0.2.15 (default address given by the built-in DHCP server).
For example, to redirect host X11 connection from screen 1 to guest screen 0, use the following:

# on the host
qemu -redir tcp:6001::6000 [...]
# this host xterm should open in the guest X11 server
xterm -display :1
To redirect telnet connections from host port 5555 to telnet port on the guest, use the following:

# on the host
qemu -redir tcp:5555::23 [...]
telnet localhost 5555
Then when you use on the host telnet localhost 5555, you connect to the guest telnet server.
Linux boot specific: When using these options, you can use a given Linux kernel without installing it in the disk image. It can be useful for easier testing of various kernels.
`-kernel bzImage'
Use bzImage as kernel image.
`-append cmdline'
Use cmdline as kernel command line
`-initrd file'
Use file as initial ram disk.
Debug/Expert options:
`-serial dev'
Redirect the virtual serial port to host device dev. Available devices are:
vc
Virtual console
pty
[Linux only] Pseudo TTY (a new PTY is automatically allocated)
null
void device
/dev/XXX
[Linux only] Use host tty, e.g. `/dev/ttyS0'. The host serial port parameters are set according to the emulated ones.
/dev/parportN
[Linux only, parallel port only] Use host parallel port N. Currently only SPP parallel port features can be used.
file:filename
Write output to filename. No character can be read.
stdio
[Unix only] standard input/output
pipe:filename
[Unix only] name pipe filename
The default device is vc in graphical mode and stdio in non graphical mode.
This option can be used several times to simulate up to 4 serials ports.
`-parallel dev'
Redirect the virtual parallel port to host device dev (same devices as the serial port). On Linux hosts, `/dev/parportN' can be used to use hardware devices connected on the corresponding host parallel port.
This option can be used several times to simulate up to 3 parallel ports.
`-monitor dev'
Redirect the monitor to host device dev (same devices as the serial port). The default device is vc in graphical mode and stdio in non graphical mode.
`-s'
Wait gdb connection to port 1234 (See section GDB usage).
`-p port'
Change gdb connection port.
`-S'
Do not start CPU at startup (you must type 'c' in the monitor).
`-d'
Output log in /tmp/qemu.log
`-hdachs c,h,s,[,t]'
Force hard disk 0 physical geometry (1 <= c <= 16383, 1 <= h <= 16, 1 <= s <= 63) and optionally force the BIOS translation mode (t=none, lba or auto). Usually QEMU can guess all thoses parameters. This option is useful for old MS-DOS disk images.
`-std-vga'
Simulate a standard VGA card with Bochs VBE extensions (default is Cirrus Logic GD5446 PCI VGA)
`-loadvm file'
Start right away with a saved state (loadvm in monitor)
لازم به ذکر است این شبیه ساز را می توان برای تمام سیستم عاملها بکار برد.


چگونگی ساخت فایل برای hda و... :

qemu-img create myimage.img mysize
مثال:

Qemu-img create c:\win2000.img 2G
در حجم دیسک از M برای مگا و G برای گیگا استفاده کنید.


کنسول فرمان QEMU:

شمابا گرفتن ALT+CTRL+2 وارد یک محیطی می شوید که دارای خط دستور است. در اینجا می توانید دستور تایپ کنید اما اینها همه دستورات Qemu هستند.
Help: کلیه فرمانهای قابل استفاده را به شما نشان می دهد.
INFO: اطلاعاتی در مورد تجیهزات و... نشان میدهد.
Quit: از شبیه ساز خارج میشود.
Eject: رسانه را از داخل درایو بیرون میدهد.
Stop: شبیه سازی را متوقف میکند.
Cont: شبیه سازی را ادامه می دهد.
و...

koli
جمعه 16 دی 1384, 03:24 صبح
لطفا لینک تصاویر را اصلاح کنید.
متشکرم

rezaTavak
جمعه 16 دی 1384, 21:09 عصر
سلام

فایل pdf

koli
شنبه 17 دی 1384, 01:52 صبح
متشکرم از توجه‌تان
اگر مقاله را مبسوط‌تر بنویسید، بسیار مفیدتر خواهد بود. در واقع یک راهنمای پله به پله

rezaTavak
شنبه 17 دی 1384, 07:45 صبح
سلام

سعی می کنم در مقالات بعدی رعایت کنم.

koli
شنبه 17 دی 1384, 22:56 عصر
باز هم متشکرم و مشتاق و منتظر

koli
شنبه 17 دی 1384, 22:58 عصر
باز هم متشکرم و مشتاق و منتظر

koli
یک شنبه 18 دی 1384, 17:34 عصر
VMware Workstation یا QEMU یا Microsoft Virtual PC؛ کدام یک از هر لحاظ بر آن دو رجحان دارد؟ یا شاید این سوال اساساً بی‌ربط است؟
و نیز از لحاظ اختصاص منابع سخت افزاری،‌کدامیک بهینه تر عمل میکند؟

آیا میتوان ازمحیط مجازی Capture Screen تهیه کرد؟ آیا QEMU این قابلیت را داراست یا باید از نرم افزار دیگری کمک گرفت؟ اگر پاسخ مثبت است؛ با کدام کلید میانبر؟
متشکرم

hosseinzadeh
دوشنبه 19 دی 1384, 13:17 عصر
به خاطر این مقاله ی زیبا سپاسگذازم.

rezaTavak
دوشنبه 19 دی 1384, 17:04 عصر
سلام

خواهش می کنم شاگرد شما هستم دیگه.

rezaTavak
دوشنبه 19 دی 1384, 17:23 عصر
VMware Workstation یا QEMU یا Microsoft Virtual PC؛ کدام یک از هر لحاظ بر آن دو رجحان دارد؟ یا شاید این سوال اساساً بی‌ربط است؟
و نیز از لحاظ اختصاص منابع سخت افزاری،‌کدامیک بهینه تر عمل میکند؟

آیا میتوان ازمحیط مجازی Capture Screen تهیه کرد؟ آیا QEMU این قابلیت را داراست یا باید از نرم افزار دیگری کمک گرفت؟ اگر پاسخ مثبت است؛ با کدام کلید میانبر؟
متشکرم

من فقط همین را تجربه کردم و دلیلش هم این است که opensource است. البته اون دوتای دیگه اوپن نیستند. و دلیل دیگه اینکه روی لینوکس خیلی خوب جواب میده حتی می تونید هارد واقعی را آدرس بدید. مثلا فایل شما میشه /dev/hda که سیستم عاملهایی که نصب کرده اید را می تونید استفاده کیند.


بله میشه از صفحه نمایش عکس گرفت. و همون کلیدی است که در سیستم عامل استفاده میشه مثلا در ویندوز PrintScreen و لینوکس همه بسته به این که در kde یا گنوم یا ... باشید فرق داره.

البته توی لینوکس میشه صفحه کلید را تعریف کرد.


منظورم هم سیستم عاملی است که کامپیوتر با آن بوت شده.

darklove
پنج شنبه 16 شهریور 1385, 11:26 صبح
مقاله خوبی بود
موفق باشی

tux-world
سه شنبه 23 آبان 1385, 10:15 صبح
یک سئوال
من از +CPU:AMD 2600 استفاده می کنم با رم 512 ولی سرعت استفاده پایینه و یه کم طول میکشه تا راحت بشه کار کرد

tux-world
جمعه 07 اردیبهشت 1386, 12:56 عصر
میشه اینو نصبشو تو لینوکس هم آموزش بدید آقای توکل !!