Rating@Mail.ru

Форум сайта "Виртуальная энциклопедия "Linux по-русски"


Текущее время: 26 апр 2017, 01:16

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 65 ]  На страницу Пред.  1 ... 3, 4, 5, 6, 7  След.
Автор Сообщение
 Заголовок сообщения: Re: QEMU
Непрочитанное сообщениеДобавлено: 24 дек 2012, 00:23 
Не в сети
Писатель

Зарегистрирован: 14 июн 2012, 06:01
Сообщения: 248
Как в консольной QEMU задать размер диска на который производится установка?


Вернуться к началу
 Профиль Отправить личное сообщение  
 
 Заголовок сообщения: Re: QEMU
Непрочитанное сообщениеДобавлено: 24 дек 2012, 00:59 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 24 сен 2011, 14:22
Сообщения: 9192
Откуда: Харьков
cema писал(а):
Как в консольной QEMU задать размер диска на который производится установка?


Как я помню, команда запуска VM выглядит примерно так (по крайней мере команда 1-го запуска, когда предполагается загрузить с CD образа .iso и установить на виртуальный диск):
Код:
$ qemu -hda <img.file> -cdrom ....iso -boot d

(сама утилита может быть и не qemu: qemu-system-i386, qemu-kvm и т.д. в зависимости и от версии QEMU).

<img.file> - это должен быть сырой неразмеченный образ диска, на котором дальше будет делаться разбивка на разделы, форматирование и т.д. Могут быть самые разные форматы, с образами, форматами и их преобразованием работает утилита: qemu-img. Наберите команду, и в последних строках вывода вы увидите то великое множество форматов, которое поддерживает QEMU:
Код:
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:
Код:
$ dd if=/dev/zero of=<img.file> bs=1024 count=1000000

Так вы получите 1Gb диск. Но здесь у вас образ будет занимать место его заказанного размера.

Большинство других форматов - сжатые: 10Gb образ диска может занимать несколько десятков Kb пока этот диск пустой, а по мере заполнения файл будет расти. Создать образ диска сжатого формата можете:
1. разобравшись с утилитой qemu-img (команда create);
2. создать в VirtualBox заготовку образа в формате .vdi, .vmdk и др., а потом её использовать в QEMU (они совместимы).
Кроме того, qemu-img умеет изменять размер образа диска (команда resize).


Вернуться к началу
 Профиль Отправить личное сообщение  
 
 Заголовок сообщения: Re: QEMU
Непрочитанное сообщениеДобавлено: 24 дек 2012, 01:06 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 24 сен 2011, 14:22
Сообщения: 9192
Откуда: Харьков
cema писал(а):
Как в консольной QEMU задать размер диска на который производится установка?


Для QEMU, кстати, есть много GUI обёрток, они очень приличного качества, я опробывал не менее 4-х в разное время, по мере того, как вспомню, может, допишу сюда:
1. AQemu
2. Qemu Launcher
...


Вернуться к началу
 Профиль Отправить личное сообщение  
 
 Заголовок сообщения: Re: QEMU
Непрочитанное сообщениеДобавлено: 24 дек 2012, 01:12 
Не в сети
Писатель

Зарегистрирован: 14 июн 2012, 06:01
Сообщения: 248
понял, буду разбираться


Вернуться к началу
 Профиль Отправить личное сообщение  
 
 Заголовок сообщения: Re: QEMU
Непрочитанное сообщениеДобавлено: 24 дек 2012, 12:27 
Не в сети
Писатель

Зарегистрирован: 14 июн 2012, 06:01
Сообщения: 248
Что-то у меня не взлетает. Насоздавал образов дисков и 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


Вернуться к началу
 Профиль Отправить личное сообщение  
 
 Заголовок сообщения: Re: QEMU
Непрочитанное сообщениеДобавлено: 24 дек 2012, 12:53 
Не в сети
Писатель

Зарегистрирован: 14 июн 2012, 06:01
Сообщения: 248
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


Кажется взлетел :-)
Просто записал образ на диск, вставил в CD-ROM и запустил все командой:

Код:
$ qemu -hda qvd.img -L ./ -cdrom /dev/cdrom


Вернуться к началу
 Профиль Отправить личное сообщение  
 
 Заголовок сообщения: Re: QEMU
Непрочитанное сообщениеДобавлено: 18 ноя 2013, 15:11 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 24 сен 2011, 14:22
Сообщения: 9192
Откуда: Харьков
cema писал(а):
Кажется взлетел :-)
Просто записал образ на диск, вставил в CD-ROM и запустил все командой:
Код:
$ qemu -hda qvd.img -L ./ -cdrom /dev/cdrom


Один из самых хлопотных моментов при запуске, установке, испытании и т.д. нового дистрибутива (Linux и не только) под QEMU - это раскрутка сети для VM (многие дистрибутивы потребуют сеть ещё на этапе инсталляции-запуска для доступа к репозитариям).
И нужно решать это в 2-х аспектах:
1. организовать связь VM с хост-машиной (без этого следующий пункт не решить);
2. организовать транзит трафика из VM сквозь хост-машину на дефаултный шлюз LAN и далее в интернет;

п.1. решается управлением таблицы маршрутизации (добавлением дефаултного маршрута на хост, route add ...).

п.2. имеет 2 варианта решения:

- Использованием TAP интерфейса для VM + NAT фильтрацией из TAP подсети в реальную LAN;

- Организацией бриджа (моста) на хосте для связи с LAN (взамен реального интерфейса eth0) + утилитой brctl добавить к этому бриджу а). реальный интерфейс в LAN (eth0) и TAP интерфейс к VM. Этот способ может потребовать дополнительно установить пакет bridge-utils:
Код:
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


Вернуться к началу
 Профиль Отправить личное сообщение  
 
 Заголовок сообщения: Re: QEMU
Непрочитанное сообщениеДобавлено: 18 ноя 2013, 15:29 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 24 сен 2011, 14:22
Сообщения: 9192
Откуда: Харьков
Olej писал(а):
- Использованием TAP интерфейса для VM + NAT фильтрацией из TAP подсети в реальную LAN;

Например:

Есть LAN: 192.168.1.0/24, дефаултный шлюз 192.168.1.1, хост 192.168.1.20, на нём работает кэширующий DNS, DNS работает ещё на маршрутизаторе в WAN (ADSL 192.168.1.1) и резервный DNS Google 8.8.8.8

Требуется: запустить VM в QEMU с локальной виртуальной сетью 10.0.200.0/8 (любой, отличной от 192.168.1.0/24: 10.*, 172.*, 192.168.*) + настроить выход из сети VM в WAN.

1. запускать QEMU будем с созданием (автоматическим) интерфейса TAP...

2. для этого создаём скрипты запуска и останова TAP интерфейса (и устанавливаем этим файлам флаг исполнимости x):
Код:
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


3. Проверяем (на всякий случай) включенность IP4 форвардинга на хосте ... и включаем его:
Код:
olej@notebook:~/2013_WORK/HISTORY/11.2013/15$ /sbin/sysctl -a | grep forward
...

Подправляем (на 1) 2 строки /etc/sysctl.conf:
Код:
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

Приводим их в действие (при следующих перезагрузках это будет происходить автоматом, если не правим /etc/sysctl.conf):
Код:
olej@notebook:~/2013_WORK/HISTORY/11.2013/15$ sudo /sbin/sysctl -p
net.ipv4.ip_forward = 1
net.ipv6.conf.all.forwarding = 1


4. Теперь всё готово для запуска QEMU (обязательно с правами root) с поднятием TAP интерфейса и установкой NAT-фильтрации (всё в одном флаконе ;-) ):
Код:
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 -------------------
...

После такого старта должно быть (проверяем!!!):
- интерфейс tap0 поднят и ему присвоен IP:
Код:
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

- правило NAT-фильтра установлено:
Код:
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           

Всё!
Настройка и запуск со стороны хоста QEMU сделана.
Остаётся настройка встречной стороны на запущенной VM.


Вернуться к началу
 Профиль Отправить личное сообщение  
 
 Заголовок сообщения: Re: QEMU
Непрочитанное сообщениеДобавлено: 18 ноя 2013, 15:44 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 24 сен 2011, 14:22
Сообщения: 9192
Откуда: Харьков
Olej писал(а):
Настройка и запуск со стороны хоста QEMU сделана.
Остаётся настройка встречной стороны на запущенной VM.

Вложение:
slacko02.png
slacko02.png [ 153.22 КБ | Просмотров: 4486 ]


5. Установить IP VM из той же подсети, что и tap0 хоста:
Код:
# ifconfig eth0 10.0.200.15 up

P.S. После этого маршрут 10.0.200.0/8 должен автоматически добавиться к таблице роутинга, если нет - добавьте вручную (по аналогии с п.6).

6. Установить маршрут по умолчанию на хост:
Код:
# route add -net default gw 10.0.200.1


7. Добавить DNS-сервера для VM, например, прописав /etc/resolv.conf (если запрещён DHCP который будет файл портить при рестартах):
Код:
# cat /etc/resolv.conf
nameserver 10.0.200.1
nameserver 192.168.1.1
nameserver 8.8.8.8


Наслаждайтесь ;-)


Вернуться к началу
 Профиль Отправить личное сообщение  
 
 Заголовок сообщения: Re: QEMU
Непрочитанное сообщениеДобавлено: 18 ноя 2013, 15:53 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 24 сен 2011, 14:22
Сообщения: 9192
Откуда: Харьков
Olej писал(а):
Наслаждайтесь ;-)


8. Контролировать всё ли правильно происходит, так как предполагали, и не напартачили ли с командами ;-) - можете на хосте командой по типу:
Код:
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
...


Этого достаточно для полного контроля происходящего.


Вернуться к началу
 Профиль Отправить личное сообщение  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 65 ]  На страницу Пред.  1 ... 3, 4, 5, 6, 7  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB
[ Time : 0.035s | 19 Queries | GZIP : On ]