!! QEMUの使い方 ! Sample ## ################### qemu-system-x86_64 -name "freebsd-001" \ -m 2048 \ -smp 1 \ -drive file=vm00.img,if=virtio,index=0,media=disk,format=qcow2 \ -drive file=vm01.img,if=virtio,index=2,media=disk,format=qcow2 \ -boot c \ -monitor telnet::4448,server,nowait \ -vnc :4 -daemonize \ -net nic,model=e1000,macaddr=00:02:00:2f:93:12 \ -net tap,ifname=tap4 ### -vnc :4 -daemonize \ ### -m 512 \ ---- !Diskの追加 [[FB-tips]] > /sbin/gpart create -s GPT vtbd1 > /sbin/gpart add -t freebsd-ufs -s 230G vtbd1 # > /sbin/gpart set -a active -i 1 vtbd1 # > /sbin/gpart create -s BSD -n 20 vtbd1s1 # > /sbin/gpart add -t freebsd-ufs -s 225G vtbd1s1 # > /sbin/gpart add -t freebsd-swap -s 4G vtbd1s1 # ## # ## /sbin/gpart add -s 512M -t freebsd-ufs da0 # ## /sbin/gpart add -s 15G -t freebsd-ufs -a 4k da0 # ## # ## /sbin/gpart show vtbd1 # ## /sbin/gpart show vtbd1s1 # ## /sbin/gpart delete -i 2 vtbd1s1 # > # > newfs vtbd1s1a bewfs vtbd1p1 ## Edit /etc/fstab ---- http://www.h7.dion.ne.jp/~qemu-win/qemu-doc-ja.html から使いそうな物を転載。。 ! 使い方: qemu [options] [disk_image] disk_image は IDEハードディスク0として使うraw ハードディスクイメージです。 一般 的なオプション: `-M machine' エミュレーションするマシンを選択します。(リストを得るには、-M ?) `-fda file' `-fdb file' フロッピーディスク0/1イメージとしてfile を使います。 ファイルネームとしてホストのフロッピーを `/dev/fd0' で使うことができます。 `-hda file' `-hdb file' `-hdc file' `-hdd file' ハードディスクイメージ0,1,2,3として file を使います. `-cdrom file' CD-ROMイメージとして file を使います。( `-hdc' と `-cdrom' を同時に使うことはできません。)ホストのCD-ROMは、`/dev/cdrom' をファイルの名前として使えます。 `-boot [a|c|d]' フロッピー (a, b), ハードディスク (c) CD-ROM (d) から起動します。ハードディスクがデフォルトです。 `-snapshot' ディスクイメージファイルのかわりに一時ファイルに保存します。この場合、使っているrawハードディスクイメージには書き込まれません。しかし @keys{C-a s} を押すことで書き戻すことができます。(See section 3.6 ディスクイメージ). `-m megs' 仮想RAMサイズを megs メガバイトにします。デフォルトは128MBです。 `-smp n' n個のCPUのSMPシステムをシミュレートします。255までのCPUをサポートしてします。 `-nographic' 通常は、QEMUはVGAの出力としてSDLを使います。このオプションによってすべてのグラフィックの出力を止めることができます。これで、QEMUは簡単なコマンドラインアプリケーションになります。エミュレートされるシリアルポートはコンソールにリダイレクトされます。これにより、QEMUを使ってシリアルコンソール内でLinuxカーネルをデバッグすることができます。 `-k language' キーボードレイアウト language を使います。(たとえば、フランス語には、 fr 。) このオプションは、PCキーコードが簡単に得られないときに使われます。(たとえば、MacやX11サーバーで)。 PC/LinuxやPC/Windowsホストでは、必要ありません。 利用可能なレイアウトは: 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 デフォルトは、 en-usです。 `-localtime' リアルタイムクロックをローカルに設定します(デフォルトはUTCです)。このオプションは、MS-DOSもしくはWindowsで正しい日時を設定するのに必要です。 `-full-screen' フルスクリーンモードで起動します。 `-pidfile file' QEMUのプロセスIDを fileに書き込みます。QEMUをスクリプトから起動するのに便利です。 USBオプション:(動作未確認) `-usb' USBドライバーを使用可能にします。 `-usbdevice devname' USB デバイス devnameを付けます。情報は、モニターのコマンドusb_addを見てください。 ネットワークオプション: `-net nic[,vlan=n][,macaddr=addr]' 新しいネットワークインターフェースカードを作成し、VLAN n (n = 0がデフォルトです。)に接続します。NIC(ネットワークインターフェースカード)は、現在PCターゲットでは、NE200です。オプションで、MACアドレスが変更可能です。もし、`-net'オプションが1つもなければ、NICが1つ作られます。 `-net user[,vlan=n]' ユーザーモードのネットワークスタックが使われます。使用するのに管理者権限が必要ありません。-netオプションが1つも使われないとき、これがデフォルトになります。 `-net tap[,vlan=n][,fd=h][,ifname=name][,script=file]' ホストのTAPインターフェースに接続します。名前はnameで、VLAN番号n、ネットワークスクリプトfileです。デフォルトのスクリプトは、`/etc/qemu-ifup'です。もし、nameが指定されないとき、OSは、自動的に1つを作成します。オプション fd=h は、既にオープンされているTAPインターフェースを指定するのに使います。 qemu linux.img -net nic -net tap もっと複雑な例(2つのNIC、それぞれがTAPデバイスに接続)は、 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]' TCPソケットによる接続を通して、VLAN n をもう1つのQEMU仮想マシンに接続します。もし、listenが指定されると、port番号で、QEMUは接続を待ち受けます。hostはオプションです。connectは、listenを使用しているもう1つのQEMUに接続するのに使われます。fd=hオプションは、すでにオープンされているTCPソケットを指定します。 例: # 最初のQEMUを起動 qemu linux.img -net nic,macaddr=52:54:00:12:34:56 -net socket,listen=:1234 # VLAN 0 を最初のQEMUのVLAN 0に接続 qemu linux.img -net nic,macaddr=52:54:00:12:34:57 -net socket,connect=127.0.0.1:1234 `-net socket[,vlan=n][,fd=h][,mcast=maddr:port]' UDPマルチキャストソケットを通じてVLAN nをもう1つのQEMUと分け合います。効率的に同じマルチキャストアドレスmaddrとポートportで、すべてのQEMUが同じバスを共有します。 注意: 1. いくつかのQEMUが、異なったホスト上で同じバスを共有することができます。(ホストがマルチキャストを適切に設定しているならば) 2. mcastサポートはUser Mode Linuxと互換性があります。(引数 `ethN=mcast')こちらを見てください。 http://user-mode-linux.sf.net. 3. `fd=h' をすでにオープンしているUDPマルチキャストソケットに使ってください。 例: # QEMUを1つ起動します。 qemu linux.img -net nic,macaddr=52:54:00:12:34:56 -net socket,mcast=230.0.0.1:1234 # 同じ”バス”でもう1つQEMUを起動します。 qemu linux.img -net nic,macaddr=52:54:00:12:34:57 -net socket,mcast=230.0.0.1:1234 # 同じ”バス”でさらに1つQEMUを起動します。 qemu linux.img -net nic,macaddr=52:54:00:12:34:58 -net socket,mcast=230.0.0.1:1234 例(User Mode Linux互換): # QEMUを起動します。(選んでいるmcastアドレスは、UMLのデフォルトのアドレスです。) qemu linux.img -net nic,macaddr=52:54:00:12:34:56 -net socket,mcast=239.192.168.1:1102 # UMLを起動します。 /path/to/linux ubd0=/path/to/root_fs eth0=mcast `-net none' ネットワークデバイスを1つも使わないことを指定します。`-net'を使用しないときのデフォルトを書き換えるのに使います。 `-tftp prefix' ユーザーモードでのネットワークを使用しているとき、装備されているTFTPサーバを有効にします。名前がprefixで始まるすべてのファイルがホストからゲストへTFTPクライアントを用いてダウンロード可能です。ゲスト上のTFTPクライアントは、バイナリモードでなくてはなりません。(UnixのTFTPクライアントではbinコマンドを使います。)ゲスト上でのホストのIPアドレスは、通常10.0.2.2です。 `-smb dir' ユーザーモードでネットワークを使用しているとき、装備されているSMBサーバを有効にします。Windows OSは`dir'を使ってホストのファイルにアクセスできます。 ゲストのWindows OSでは、次の行: 10.0.2.4 smbserver を、`C:\WINDOWS\LMHOSTS'というファイルに加えなければなりません。 (windows 9x/Meに対して) もしくは、`C:\WINNT\SYSTEM32\DRIVERS\ETC\LMHOSTS' (Windows NT/2000)。 そして、`dir' が、`\\smbserver\qemu'内で、使えます。. SAMBAサーバがホストOSの`/usr/sbin/smbd'にインストールされていなければならないことにに注意してください。QEMUは、Red Hat 9のバージョン2.2.7aとFedora Core 3のバージョン3.0.10-1.fc3のsmbdでのテストは成功しました。 `-redir [tcp|udp]:host-port:[guest-host]:guest-port' ユーザーモードでネットワークを使用しているとき、入ってくるTCPもしくはUDPの接続をホストのポートhost-portからゲストのポートguest-portにリダイレクトします。もし、guest-hostが指定されない場合は、その値は10.0.2.15(装備されたDHCPサーバのデフォルトのアドレス)になります。 たとえば、ホストのX11コネクションをスクリーン1からゲストのスクリーン0へリダイレクトするには、次のようにします。: # on the host qemu -redir tcp:6001::6000 [...] # this host xterm should open in the guest X11 server xterm -display :1 telnetのホストのポート5555からのコネクションをゲストのtelnetのポートにリダイレクトするには、次のようにします。: # on the host qemu -redir tcp:5555::23 [...] telnet localhost 5555 これで、ホストで、telnet localhost 5555を使うと、ゲストのtelnetサーバに接続することができます。 !qemu-img の使い方。。 #参考 http://opensuse-man-ja.berlios.de/opensuse-html/cha.qemu.guest_inst.html#cha.qemu.guest_inst.qemu-kvm qemu-img create -f qcow2 vm00.qcow 10G qemu-img create -f raw ./rvm00.img 10G qemu-img snapshot -l ./rvm00.qcow qemu-img convert -O qcow2 rvm00.img rvm00.qcow qemu-img convert -O raw rvm00.qcow rvm00.img qemu-img snapshot -l ./rvm00.qcow qemu-img snapshot -c 20120830init ./rvm00.qcow qemu-img snapshot -l ./rvm00.qcow qemu-img snapshot -c 201208301855 ./rvm00.qcow qemu-img snapshot -l > qemu-img snapshot -a 5 ./rvm00.qcow2 ## 5番目にロールバック