QEMU
Модератор: Olej
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
QEMU
Сам консольный QEMU используют не очень часто, но:
- часто используемый VirtualBox построен на коде QEMU;
- для QEMU сделано много фронт-эндов: AQEMU, Qemulator, Qemu Launcher ... много их;
- модный KVM на сегодня стал составной частью проекта QEMU;
- QEMU может выполнять VM для доброго десятка поцессорных платформ (ARM, MIPS, PPC, ...).
Некоторые возможности QEMU не попользуешь через его GUI-обёртки.
Вот такие возможности мне снова понадобились для: загрузочный Linux на USB флешке.
И я вспомнил, что 2 года назад, активно работая с ОС MINIX3, я понаделал много разного с QEMU + описал такое расширенное использование QEMU в 2-х больших статьях. Я и вспомнил, что нужно их разыскать, и там есть всё, что мне понадобится. А заодно поместить их (статьи) сюда, чтоб не терялись:
- часто используемый VirtualBox построен на коде QEMU;
- для QEMU сделано много фронт-эндов: AQEMU, Qemulator, Qemu Launcher ... много их;
- модный KVM на сегодня стал составной частью проекта QEMU;
- QEMU может выполнять VM для доброго десятка поцессорных платформ (ARM, MIPS, PPC, ...).
Некоторые возможности QEMU не попользуешь через его GUI-обёртки.
Вот такие возможности мне снова понадобились для: загрузочный Linux на USB флешке.
И я вспомнил, что 2 года назад, активно работая с ОС MINIX3, я понаделал много разного с QEMU + описал такое расширенное использование QEMU в 2-х больших статьях. Я и вспомнил, что нужно их разыскать, и там есть всё, что мне понадобится. А заодно поместить их (статьи) сюда, чтоб не терялись:
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: QEMU
Задача понятна...Olej писал(а): Вот такие возможности мне снова понадобились для: загрузочный Linux на USB флешке.
Доунлодим 2 образа ISO:
- http://narod.ru/disk/53977481001.524650 ... 4.iso.html - это совершенно последняя beta;
- и один из стабильных релизов (вот отсюда: http://uco.puppyrus.org/catalog/1021) ... мне приглянулся : http://uco.puppyrus.org/catalog/item99.html - xLupuRus528_IvannaSE.iso
Хотелось бы:
Идея состоит в том, чтобы:1. download образ XXX.iso ...
2. накатываем его на CD/DVD-R/RW ... (можно, как вариант, создать LiveUSB)
3. загружаемся с этого CD/DVD-R/RW ...
4. рассказываем всякие ответы на вопросы (установка) - указав устанавливать на /dev/sdb;
5. загружаемся c флешки.
Но мне это сильно не нравится для экспериментов с RAM-based Linux из за 3-х шагов, отмеченных bold шрифтом.
Хочу всё сделать не перегружаясь из своего привычного окружения, сидя в своём кресле, а не бегая с бубном вокруг перезагрузок!
Как?
Есть у меня предположение (и опыт некоторый прежний), что всё: от XXX.iso и до проверки загрузки и настройки полученной системы - я могу сделать с помощью классического консольного QEMU.
- загрузиться с XXX.iso, указав QEMU его как CD-ROM ...
- и указать /dev/sdc (USB флешь) как HDD QEMU ...
- после чего в гостевой VM запустить "установить ОС на диск"...
- и всё получится
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: QEMU
Пропуская промежуточные ступени (сначала можно только CD_ROM указать - поверить загрузку, потом HDD добавить, потом сеть...), в конечном итоге команда выглядит так:Olej писал(а):- и всё получится
Код: Выделить всё
[olej@notebook Puppy]$ sudo qemu -m 500M -hda /dev/sdc -cdrom xLupuRus528_IvannaSE.iso -boot d -net nic,vlan=0 -net tap,vlan=0 -smp 2
Could not initialize KVM, will disable KVM support
-------------- tap up -------------
^C-------------- tap down -------------
Код: Выделить всё
[root@notebook B84B-8520]# ls -l /etc/qem*
-rwxr-xr-x 1 olej olej 77 июня 16 2010 /etc/qemu-ifdown
-rwxr-xr-x 1 olej olej 119 нояб. 14 2010 /etc/qemu-ifup
[root@notebook etc]# cat /etc/qemu-ifup
#!/bin/sh
echo -------------- tap up -------------
/sbin/ifconfig $1 192.168.3.6 up
[root@notebook etc]# cat /etc/qemu-ifdown
#!/bin/sh
echo -------------- tap down -------------
/sbin/ifconfig $1 down
(это всё подробно расписано в тех статьях, с которых началась тема).
Именно из-за TAP-интерфейса QEMU придётся запускать от root.
Смотрим, что из всего этого кина получается: На этом этапе:
1. не используется аппаратная виртуализация KVM (см. строку запуска QEMU); почему? не знаю ... раньше у меня (в статьях) KVM использовался, что-то поменялось за 2 года в QEMU - надо разбираться ... и это при всём том:
Код: Выделить всё
[olej@notebook Slax]$ lsmod | grep ^k
kvm_intel 126394 0
kvm 346342 1 kvm_intel
2. из-за отсутствия KVM, показанные экраны GUI ведут себя страшно тягомутно, большие задержки на шёлканье мышкой...
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: QEMU
По такому случаю убиваю X11 и всё, что нужно, делаю в текстовой консоли - здесь никаких ощутимых задержек: настроил интерфейс eth0 на подсеть 192.168.3.Х, пингуется хостовая машина...Olej писал(а):2. из-за отсутствия KVM, показанные экраны GUI ведут себя страшно тягомутно, большие задержки на шёлканье мышкой...
Теперь остаётся:
- пробросить (iptables) NAT подсеть 192.168.3.Х в 192.168.1.Х для выхода на шлюз во внешний интернет (для доустановки пакетов)...
- или объединить 192.168.3.Х и 192.168.1.Х в единый бридж...
- (всё подробнейшим образом расписано во 2-й из показанных в начале статей);
- и установить ОС на /dev/hda
P.S. это очень интересное место:
- USB флешка хостовой машины /dev/sdc
- указанная в команде запуска в опции -hda
- начинает видеться в VM как единственный HDD /dev/sda
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: QEMU
Но ...Olej писал(а): Теперь остаётся:
- пробросить (iptables) NAT подсеть 192.168.3.Х в 192.168.1.Х для выхода на шлюз во внешний интернет (для доустановки пакетов)...
- или объединить 192.168.3.Х и 192.168.1.Х в единый бридж...
- (всё подробнейшим образом расписано во 2-й из показанных в начале статей);
- и установить ОС на /dev/hda
... это всё можно побороть (делал и знаю), но хлопотно. И подумалось следующее:
- визуальный VirtualBox написан на коде виртуализации QEMU ...
- и что можно сделать в QEMU - должно быть можно и в VirtualBox ...
- если его немножко обмануть
1. готовлю USB флешку, которая будет установочным диском:
Код: Выделить всё
[olej@nvidia Puppy]$ sudo fdisk /dev/sdc
Команда (m для справки): p
Диск /dev/sdc: 1009 МБ, 1009778688 байт
6 heads, 9 sectors/track, 36522 cylinders, всего 1972224 секторов
Units = секторы of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x8ef43be3
Устр-во Загр Начало Конец Блоки Id Система
/dev/sdc1 * 2048 1972223 985088 83 Linux
У меня не получилось это шаманство с разделом FAT16 ... но возможно что-то пропустил - это нужно повторить и проверить!
Обязательно! не забыть форматировать новый раздел, я это сделал в ext2:
Код: Выделить всё
[olej@nvidia media]$ sudo mkfs.ext2 /dev/sdc1
mke2fs 1.41.14 (22-Dec-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
61568 inodes, 246272 blocks
12313 blocks (5.00%) reserved for the super user
First data block=0
...
Writing inode tables: done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 25 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
- сам виртуальный диск VDI (главный элемент "нормальной" VM) - нам здесь не нужен, он фикция, пустой ... тупо создаём его по дефаулту.
- а вот USB свой добавляем (в этот раз это тот 3-й, отмеченный птичкой).
и добавим в настройки IO APIC Старт...
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: QEMU
Вот тут и начинается самое интересное:
- устанавливаем ОС на диск: - но диск выбираем не /dev/sda (который у нас пустая VDI болванка виртуального диска VirtualBox), а /dev/sdb (который на самом деле диск /dev/sdc хостовой машины - USB флеш):
- устанавливаем ОС на диск: - но диск выбираем не /dev/sda (который у нас пустая VDI болванка виртуального диска VirtualBox), а /dev/sdb (который на самом деле диск /dev/sdc хостовой машины - USB флеш):
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: QEMU
И последний штрих:
- закончив изготовление bootable USB флешки хотелось бы проверить её загрузку...
- теперь опять перехожу из VirtualBox QEMU (сеть QEMU мне для проверки не нужна):
- здесь не всё нормально, но это ошибка терминальной системы (?), как её предоставляет QEMU Linux-у ... с этим можно разобраться, но система в текстовом режиме загрузилась - дальше в этом терминале можем выполнять команды Linux.
Резюме: мы изготовили USB флешке загрузочный RAM-based Linux + проверили его загрузочность, ни разу не перезагружая компьютер - это то, что я и хотел сделать, чтобы не дёргать помногу из-за "левых" экспериментов рабочие компьютеры.
(ну и дополнительно в "+" то, что нам из .iso файла не потребовалось накатывать LiveCD или LiveUSB промежуточные для загрузки с них)
- закончив изготовление bootable USB флешки хотелось бы проверить её загрузку...
- теперь опять перехожу из VirtualBox QEMU (сеть QEMU мне для проверки не нужна):
Код: Выделить всё
[olej@nvidia media]$ sudo qemu-kvm -m 700M -hda /dev/sdc -boot c -smp 2
...
Резюме: мы изготовили USB флешке загрузочный RAM-based Linux + проверили его загрузочность, ни разу не перезагружая компьютер - это то, что я и хотел сделать, чтобы не дёргать помногу из-за "левых" экспериментов рабочие компьютеры.
(ну и дополнительно в "+" то, что нам из .iso файла не потребовалось накатывать LiveCD или LiveUSB промежуточные для загрузки с них)
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя