Re: QEMU
Добавлено: 24 дек 2012, 00:23
Как в консольной QEMU задать размер диска на который производится установка?
Форум по операционной системе GNU/Linux и свободному программному обеспечению
http://linux-ru.ru:80/
Как я помню, команда запуска VM выглядит примерно так (по крайней мере команда 1-го запуска, когда предполагается загрузить с CD образа .iso и установить на виртуальный диск):cema писал(а):Как в консольной QEMU задать размер диска на который производится установка?
Код: Выделить всё
$ qemu -hda <img.file> -cdrom ....iso -boot d
Код: Выделить всё
bash-4.2$ qemu-img --help
qemu-img version 1.0,1, Copyright (c) 2004-2008 Fabrice Bellard
...
Supported formats: vvfat vpc vmdk vdi sheepdog rbd raw host_cdrom host_floppy host_device file qed qcow2 qcow parallels nbd dmg tftp ftps ftp https http cow cloop bochs blkverify blkdebug
Код: Выделить всё
$ dd if=/dev/zero of=<img.file> bs=1024 count=1000000
Для QEMU, кстати, есть много GUI обёрток, они очень приличного качества, я опробывал не менее 4-х в разное время, по мере того, как вспомню, может, допишу сюда:cema писал(а):Как в консольной QEMU задать размер диска на который производится установка?
Код: Выделить всё
$ qemu -hda qvd.img -L ./ /home/dmitry/Загрузки/debian-wheezy-i386-efi-test4.iso
qemu: -L ./: drive with bus=0, unit=0 (index=0) exists
Кажется взлетелcema писал(а):Что-то у меня не взлетает. Насоздавал образов дисков и VM, и с помощью qemu-img, при запуске выходит назад в терминал:
Код: Выделить всё
$ qemu -hda qvd.img -L ./ /home/dmitry/Загрузки/debian-wheezy-i386-efi-test4.iso qemu: -L ./: drive with bus=0, unit=0 (index=0) exists
Код: Выделить всё
$ qemu -hda qvd.img -L ./ -cdrom /dev/cdrom
Один из самых хлопотных моментов при запуске, установке, испытании и т.д. нового дистрибутива (Linux и не только) под QEMU - это раскрутка сети для VM (многие дистрибутивы потребуют сеть ещё на этапе инсталляции-запуска для доступа к репозитариям).cema писал(а): Кажется взлетел
Просто записал образ на диск, вставил в CD-ROM и запустил все командой:Код: Выделить всё
$ qemu -hda qvd.img -L ./ -cdrom /dev/cdrom
Код: Выделить всё
olej@notebook:~$ apt-file find brctl
bash-completion: /usr/share/bash-completion/completions/brctl
bridge-utils: /sbin/brctl
bridge-utils: /usr/share/man/man8/brctl.8.gz
selinux-policy-default: /usr/share/selinux/default/brctl.pp
selinux-policy-dev: /usr/share/selinux/default/include/admin/brctl.if
selinux-policy-dev: /usr/share/selinux/mls/include/admin/brctl.if
selinux-policy-doc: /usr/share/doc/selinux-policy-doc/html/admin_brctl.html
selinux-policy-mls: /usr/share/selinux/mls/brctl.pp
zsh: /usr/share/zsh/functions/Completion/Linux/_brctl
zsh-beta: /usr/share/zsh-beta/functions/Completion/Linux/_brctl
Например:Olej писал(а): - Использованием TAP интерфейса для VM + NAT фильтрацией из TAP подсети в реальную LAN;
Код: Выделить всё
olej@notebook:~/2013_WORK/HISTORY/11.2013/15$ cat /etc/qemu-ifup
#!/bin/sh
echo '---------------- IFUP -------------------'
/sbin/ifconfig $1 10.0.200.1
iptables -t nat -A POSTROUTING -s 10.0.200.0/24 -j MASQUERADE
Код: Выделить всё
olej@notebook:~/2013_WORK/HISTORY/11.2013/15$ cat /etc/qemu-ifdown
#!/bin/sh
echo '--------------- IFDOWN ------------------'
/sbin/ifconfig $1 down
iptables -t nat -D POSTROUTING -s 10.0.200.0/24 -j MASQUERADE
Код: Выделить всё
olej@notebook:~/2013_WORK/HISTORY/11.2013/15$ /sbin/sysctl -a | grep forward
...
Код: Выделить всё
olej@notebook:~/2013_WORK/HISTORY/11.2013/15$ cat /etc/sysctl.conf | grep forward
# Uncomment the next line to enable packet forwarding for IPv4
net.ipv4.ip_forward=1
# Uncomment the next line to enable packet forwarding for IPv6
net.ipv6.conf.all.forwarding=1
Код: Выделить всё
olej@notebook:~/2013_WORK/HISTORY/11.2013/15$ sudo /sbin/sysctl -p
net.ipv4.ip_forward = 1
net.ipv6.conf.all.forwarding = 1
Код: Выделить всё
olej@notebook:~/Загрузки/ISO-Linux/Puppy$ sudo qemu -m 800M -hda /dev/sdb1 -cdrom precise-5.7.1-ru.iso -boot c -enable-kvm -net nic,vlan=0 -net tap,vlan=0 -localtime
---------------- IFUP -------------------
...
Код: Выделить всё
root@notebook:/media# ip addr show dev tap0
15: tap0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 500
link/ether 7a:97:a9:1c:18:db brd ff:ff:ff:ff:ff:ff
inet 10.0.200.1/8 brd 10.255.255.255 scope global tap0
inet6 fe80::7897:a9ff:fe1c:18db/64 scope link
valid_lft forever preferred_lft forever
Код: Выделить всё
root@notebook:/media# iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
MASQUERADE all -- 10.0.200.0/24 anywhere
5. Установить IP VM из той же подсети, что и tap0 хоста:Olej писал(а):Настройка и запуск со стороны хоста QEMU сделана.
Остаётся настройка встречной стороны на запущенной VM.
Код: Выделить всё
# ifconfig eth0 10.0.200.15 up
Код: Выделить всё
# route add -net default gw 10.0.200.1
Код: Выделить всё
# cat /etc/resolv.conf
nameserver 10.0.200.1
nameserver 192.168.1.1
nameserver 8.8.8.8
8. Контролировать всё ли правильно происходит, так как предполагали, и не напартачили ли с командами - можете на хосте командой по типу:Olej писал(а):Наслаждайтесь
Код: Выделить всё
olej@notebook:~$ sudo /usr/sbin/tcpdump -n -i any ip proto \\icmp
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on any, link-type LINUX_SLL (Linux cooked), capture size 65535 bytes
...
20:43:40.481733 IP 10.0.200.15 > 192.168.1.1: ICMP echo request, id 55878, seq 0, length 64
20:43:40.481798 IP 192.168.1.20 > 192.168.1.1: ICMP echo request, id 55878, seq 0, length 64
20:43:40.482726 IP 192.168.1.1 > 192.168.1.20: ICMP echo reply, id 55878, seq 0, length 64
20:43:40.487412 IP 192.168.1.1 > 10.0.200.15: ICMP echo reply, id 55878, seq 0, length 64
20:43:41.500391 IP 10.0.200.15 > 192.168.1.1: ICMP echo request, id 55878, seq 1, length 64
20:43:41.500432 IP 192.168.1.20 > 192.168.1.1: ICMP echo request, id 55878, seq 1, length 64
20:43:41.501260 IP 192.168.1.1 > 192.168.1.20: ICMP echo reply, id 55878, seq 1, length 64
20:43:41.501272 IP 192.168.1.1 > 10.0.200.15: ICMP echo reply, id 55878, seq 1, length 64
20:43:42.501750 IP 10.0.200.15 > 192.168.1.1: ICMP echo request, id 55878, seq 2, length 64
20:43:42.501793 IP 192.168.1.20 > 192.168.1.1: ICMP echo request, id 55878, seq 2, length 64
20:43:42.502618 IP 192.168.1.1 > 192.168.1.20: ICMP echo reply, id 55878, seq 2, length 64
20:43:42.502636 IP 192.168.1.1 > 10.0.200.15: ICMP echo reply, id 55878, seq 2, length 64
...