Virtual Machine options

Booting and installing sidux to a KVM Virtual Machine

KVM is a full virtualisation solution for Linux on x86 hardware containing virtualisation extensions (Intel VT or AMD-V).

Prerequisites

To ascertain whether your hardware supports KVM, ensure that KVM is enabled in the BIOS (in some cases on an Intel VT or AMD-V system it may not evident as to where the switch is, therefore assume that it is in a KVM state). The way to check is in a console run:

cat /proc/cpuinfo | egrep --color=always 'vmx|smx'

If you see smx or vmx in the cpu flags field, your system supports KVM. (Otherwise go back to the BIOS if you believe it is supported and check again, else search the internet as to where in the BIOS menus KVM 'enable' could be hiding).

Should your BIOS not support KVM refer to Virtualbox or QEMU

To install and run KVM, firstly ensure that Virtualbox modules are not loaded, (--purge them is the best option), then depending on your chipset:

For vmx:

apt-get install qemu-kvm
modprobe kvm_intel

For smx:

apt-get install qemu-kvm
modprobe kvm_amd

Another option is reboot as the qemu-kvm initscripts will take care of loading the modules.

Using KVM to boot a sidux-*.iso

As user:

$ kvm -net nic,model=virtio -net user -soundhw ac97 -m 512 -monitor stdio -cdrom <sidux.iso>
Installing a sidux-*.iso to a KVM image

First create a hard disk image, (this image will be minimal and only grow as required due to qcow2 compression ratios):

$ qemu-img create -f qcow2 sidux-2010-*-.img 12G

Boot the sidux-*.iso with the following parameters to enable KVM to recognise that there is an QEMU hard disk image available:

$ kvm -net nic,model=virtio -net user -soundhw ac97 -m 512 -monitor stdio -cdrom </path/to/sidux.iso> -boot d </path/to/sidux-20xx-*-.img>

Once the cdrom has booted up click on the sidux installer icon to activate the installer, (or use the menu), click on the Partitioning tab and you should see on the left hand side a box that has a disk ready for partitioning and formatting, most likely noted as /dev/sda. Underneath that are the options for partitioning, choose gparted.

gparted kvm hard disk naming

In the Gparted menu you can confirm that Gparted sees the image with View>Device Information which should state it is a ATA QEMU Harddisk and most likely noted as /dev/sda,(in this example), as this will be crucial when moving back to the installer and choosing where to put Grub, as it needs to go to /dev/sda.

Next, in the Partition menu choose Device>Create Partiton Table and create the partition table.

Then format the partition table with ext4 and also include a swap of 2 gig. The formatting will take time so be patient.

After formatting has completed, click OK to be returned to the installer and proceed as if you are performing a standard install, (again, be patient). Note: Install the Grub to /dev/sda.

You now have a sidux-*-VM ready for use:

$ kvm -net nic,model=virtio -net user -soundhw ac97 -m 512 -monitor stdio -drive if=virtio,boot=on,file=<absolute/path/to/sidux-20xx-*.img>

If the guest does not support virtio, or you do not specify an absolute path, use:

$ kvm -net nic,model=virtio -net user -soundhw ac97 -m 512 -monitor stdio -hda </path/to/sidux-20xx-*.img>

See also:

$ man kvm
Managing your KVM virtual machine installations
apt-get install aqemu

When using AQEMU ensure that you choose the KVM mode from the drop down box for 'Emulator Type' in the 'General' tab. (Documentation for AQEMU is basically non existent, therefore a few 'trials by error' will be required to figure out the easy to use GUI, however a good start is to use first use the 'VM' menu followed by the 'General' tab.

Booting and installing sidux to a VirtualBox Virtual Machine

Passos:

Requisitos:

RAM recomendada: 1 GB ; idealmente, 512 MB para o guest e 512 MB para o host (pode ser rodado com menos memória, porém não espere bom desempenho).

Espaço no HD: Enquanto o VirtualBox em si é magro (uma instalação típica ocupa apenas 30 MB de espaço), as máquinas virtuais necessitarão de grandes arquivos no disco para representar seus próprios HDs. Assim, para instalar o MS Windows XP (TM), por exemplo, você vai precisar de um arquivo que facilmente crescerá por diversos GB em tamanho. Para não se apertar, vai ser preciso que você aloque uma imagem de 5 GB e mais a swap.

Instalação:

apt-get update
apt-get install virtualbox-ose-qt virtualbox-ose-source dmakms module-assistant

Então prepare o módulo:

m-a prepare
m-a a-i virtualbox-ose-source

Daí ative o Dynamic Module-Assistant Kernel Module Support (dmakms) para o Virtualbox, de forma que, na próxima vez que o kernel for atualizado, um módulo do Virtualbox também seja preparado para ele, sem intervenção manual. Para fazer isso, adicione virtualbox-ose-source ao arquivo de configuração /etc/default/dmakms .

mcedit /etc/default/dmakms
virtualbox-ose-source

Em seguida, reinicie sua máquina.

Leitura essencial sobre o dmakms

Como instalar o sidux na máquina virtual

Use o assistente do virtualbox para criar uma nova máquina virtual para o sidux, depois é só seguir as instruções de uma instalação normal.

O VirtualBox tem uma boa Ajuda em PDF, que você pode baixar aqui.

Booting and installing sidux to a QEMU Virtual Machine

Existe uma interface gráfica em QT para ajudá-lo a fazer a configuração:

apt-get install qtemu

Como criar a imagem do HD

Para rodar o QEMU, você provavelmente irá precisar de uma imagem do HD. Trata-se de um arquivo que armazena o conteúdo do HD emulado.

Use este comando:

qemu-img create -f qcow sidux.qcow 3G

Isso cria o arquivo de imagem "sidux.qcow". O parâmetro "3G" especifica o tamanho do disco - no caso, 3 GB. Você pode usar o sufixo M para megabytes (por exemplo, "256M"). Não se preocupe muito com o tamanho do disco - o formato qcow comprime a imagem, de forma que o espaço vago não é adicionado ao tamanho do arquivo.

Como instalar o sistema operacional

Esta é a primeira vez que você vai precisar de abrir o emulador. Atenção: quando você clica dentro da janela do qemu, o ponteiro do mouse fica preso. Para soltá-lo, pressione:

Ctrl+Alt

Se for preciso dar o boot a partir de um disquete, rode o Qemu com:

qemu -floppy sidux.iso -net nic -net user -m 512 -boot d sidux.qcow

...e se for a partir de um CD:

qemu -cdrom sidux.iso -net nic -net user -m 512 -boot d sidux.qcow

Agora instale o sidux como se fosse em um HD de verdade.

Como rodar o sistema

Para rodar o sistema, digite:

qemu [hd_image]

Uma boa ideia é usar imagens sobrepostas. Dessa forma, você pode criar a imagem do HD uma vez e dizer ao qemu para armazenar as mudanças em um arquivo externo. Você se livra de toda possível instabilidade, porque é facílimo reverter o sistema para o estado original.

Para criar uma imagem sobreposta ("overlay"), digite:

qemu-img create -b [[base''image]] -f qcow [[overlay''image]]

Isso substitui a imagem do HD para base_image (no caso, sidux.qcow). Depois, é só rodar o qemu assim:

qemu [overlay_image]

A imagem original permanece intocada. Um probleminha: a imagem base não poderá ser renomeada ou movida. A sobreposição (overlay) lembra o caminho completo da base.

Como usar qualquer partição real como a partição primária de uma imagem do HD

Pode acontecer de você desejar usar uma de suas partições de dentro do qemu (por exemplo, dar o boot tanto em sua máquina real quanto no qemu, usando uma partição como root). Isso pode ser feito utilizando software RAID no modo linear (é necessário o driver linear.ko) e um dispositivo loopback: o truque é preceder dinamicamente uma MBR à partição real que você deseja embutir em uma imagem de HD bruta (raw) no qemu.

Suponha que você tenha uma partição desmontada /dev/sdaN com alguns arquivos do sistema que você deseja que façam parte de uma imagem de HD do qemu. Primeiro, crie um pequeno arquivo para guardar a MBR:

dd if=/dev/zero of=/caminho/para/mbr count=32

Com isso, um arquivo de 16 KB (32 * 512 bytes) é criado. É importante não fazê-lo muito pequeno (ainda que a MBR precise de apenas um bloco de 512 bytes), pois quanto menor ele for, menor terá de ser o tamanho do software RAID, o que pode impactar no desempenho. Agora, você configura um dispositivo loopback para a MBR:

losetup -f /caminho/para/mbr

Assumamos que o dispositivo resultante seja /dev/loop0, pois até agora não usamos nenhum outro loopback. O próximo passo é criar a imagem do HD resultante da fusão MBR + /dev/sdaN usando software RAID:

 modprobe linear
 mdadm --build --verbose /dev/md0 --chunk=16 --level=linear --raid-devices=2 /dev/loop0 /dev/sdaN

O /dev/md0 resultante é o que você usará como imagem bruta do disco no qemu (não se esqueça de ajustar as permissões para que o emulador possa acessá-la). O último passo é fixar a configuração do disco (geometria do disco e tabela de partições) de forma que o ponto inicial da partição primária na MBR seja igual ao do /dev/sdaN dentro de /dev/md0 (exatamente 16 * 512 = 16384 bytes neste exemplo). Para isso, use o fdisk na máquina hospedeira, não no emulador: a rotina padrão de detecção de imagem bruta (raw) do qemu muitas vezes dá resultados não arredondáveis em kilobytes (como 31.5 KB na seção anterior), impossíveis de serem gerenciados pelo código do RAID. Portanto, no hospedeiro:

 fdisk /dev/md0

Lá, crie uma partição primária correspondente a /dev/sdaN e experimente com o comando 's'ector no menu 'x'pert até que o primeiro cilindro (onde está a primeira partição) tenha tamanho igual ao da MBR. Finalmente, use 'w'rite para escrever o resultado no arquivo e... acabou! Agora você tem uma partição que pode ser montada direto da máquina hospedeira e que também é parte da imagem de disco do qemu:

 qemu -hdc /dev/md0 [...]

Naturalmente, você pode configurar qualquer carregador de boot na imagem usando o qemu, desde que a partição /boot/sdaN contenha as ferramentas necessárias.

Como usar o Módulo de Aceleração do QEMU

Os desenvolvedores do qemu criaram um módulo opcional para o kernel, de forma a acelerar o qemu às vezes até a níveis de operação nativos. Ele pode ser carregado com a opção:

major=0

... para automatizar a criação do necessário dispositivo /dev/kqemu. Já este comando:

echo "options kqemu major=0" >> /etc/modprobe.conf

corrige o modprobe.conf para assegurar que a opção do módulo seja adicionada sempre que ele é carregado.

qemu [...] -kernel-kqemu

Isto habilita total virtualização, o que melhora a velocidade consideravelmente.

Para ativar o qemu:

qemu -cdrom /tmp/pkg/sidux-debug.iso -net nic -net user -m 512

Documentação oficial do Projeto QEMU

Parte do que está escrito sobre o QEMU neste Manual do sidux foi conseguido acessando-se este site, sob a GNU Free Documentation License 1.2 e modificada para este manual.

Page last revised 13/04/2010 1450 UTC