Virtualização do ubuntu já instalado no hd

Iniciado por awmaximus, 07 de Novembro de 2007, 11:34

tópico anterior - próximo tópico

awmaximus

Olá!

Estou com a seguinte dúvida:
Em meu computador possuo dual boot: um com o windows xp e outro com o ubuntu 7.10. Há alguma forma de virtualizar o ubuntu já instalado no hd dentro do windows?
Desta forma eu poderia ter acesso ao ubuntu tanto virtualizado como por boot nele mesmo.
Sei que o Parallels faz isso no MAC e gostaria de fazer o mesmo.

Obrigado.

Markos_BR

Bom,

Pode ser que até tenha...

Mas pensando logicamente, acho que não é possível, pq os programas de virtualização que eu conheço não trabalham com o hardware real da máquina e sim com uma emulação do hardware...

Assim sendo, como o Ubuntu que vc tem foi instalado com base no hardware real, acredito ser impossível vc fazer ele rodar dentro do windows...



awmaximus

Citação de: Markos_BR online 07 de Novembro de 2007, 13:38
Bom,

Pode ser que até tenha...

Mas pensando logicamente, acho que não é possível, pq os programas de virtualização que eu conheço não trabalham com o hardware real da máquina e sim com uma emulação do hardware...

Assim sendo, como o Ubuntu que vc tem foi instalado com base no hardware real, acredito ser impossível vc fazer ele rodar dentro do windows...

Entendo...
Se eu conseguisse seria a glória!
Ficar dando reboot para testar as coisas no ubuntu (e vice-versa) é um saco.
Achei alguma coisa nesses sites mas não tive como testar ainda:

http://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=7181
http://ubuntuforums.org/showthread.php?p=3118462

ChausDevereaux

Num bom programa de virtualização, o hardware emulado é impecavelmente realista. E, como o Ubuntu é dinâmico, é possível que rode, sim, numa máquina virtual. Só vai haver uma perda de desempenho, mas roda. Certifique-se de ter pelo menos 512 MB de RAM, pois o Ubuntu não é fácil, não! E você poderá alocar mais ou menos um quarto dessa memória.

Aliás, eu não sei se no Windows a perda de desempenho é maior, pois eu uso VMware no Linux.

awmaximus

Citação de: awmaximus online 07 de Novembro de 2007, 13:44
Citação de: Markos_BR online 07 de Novembro de 2007, 13:38
Bom,

Pode ser que até tenha...

Mas pensando logicamente, acho que não é possível, pq os programas de virtualização que eu conheço não trabalham com o hardware real da máquina e sim com uma emulação do hardware...

Assim sendo, como o Ubuntu que vc tem foi instalado com base no hardware real, acredito ser impossível vc fazer ele rodar dentro do windows...

Entendo...
Se eu conseguisse seria a glória!
Ficar dando reboot para testar as coisas no ubuntu (e vice-versa) é um saco.
Achei alguma coisa nesses sites mas não tive como testar ainda:

http://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=7181
http://ubuntuforums.org/showthread.php?p=3118462

Consegui fazer como VMWare conforme os links que passei.
Ele mostra o grub, eu escolho dar boot no ubuntu porém ele não consegue subir o X.
Dá erro em alguma configuração do Xorg.conf mas não sei em q.
Talves seja porque ele procura o hardware configurado durante a instalação e não encontra (conforme vc falou).
Mas deve ter alguma solução...

Markos_BR

Pois eh vc tem q ver o log de erro do X pra saber o q ta pegando...


ChausDevereaux

O X tem um driver para a "placa de vídeo" do VMware chamado vmware. Acho que um sudo dpkg-reconfigure -phigh xserver-xorg já autodetecta os componentes e faz o X funcionar. Normalmente, é só isso.

awmaximus

Citação de: ChausDevereaux online 08 de Novembro de 2007, 11:09
O X tem um driver para a "placa de vídeo" do VMware chamado vmware. Acho que um sudo dpkg-reconfigure -phigh xserver-xorg já autodetecta os componentes e faz o X funcionar. Normalmente, é só isso.

Vou testar. Valeu!
No caso, se funcionar, eu teria que executar esse comando sempre que alternasse entre emular ou não.
Outra opção seria eu manter um xorg.conf para cada um dos casos. Ai eu alternaria entre eles.

ChausDevereaux

Acho que você teria, sim. A não ser que se rode um script que, de acordo com um valor passado no boot para o kernel (por exemplo, "real" para a maquina real e "vm" para a máquina virtual) copiasse o xorg.conf correto. Não sei se tem maneira mais fácil, mas isso eu posso providenciar.

awmaximus

Citação de: ChausDevereaux online 08 de Novembro de 2007, 17:52
Acho que você teria, sim. A não ser que se rode um script que, de acordo com um valor passado no boot para o kernel (por exemplo, "real" para a maquina real e "vm" para a máquina virtual) copiasse o xorg.conf correto. Não sei se tem maneira mais fácil, mas isso eu posso providenciar.

Consegui fazer funcionar tanto no vmware quanto por boot.
Fiz um backup do arquivo xorg.conf para xorg.conf.original
Gerei um arquivo xorg.conf através do comando que vc me passou (sudo dpkg-reconfigure -phigh xserver-xorg) quando o ubuntu estava no vmware.
Logo após, subi o X (comando startx) e tudo funcionou.
Em seguida instalei o vmware tools (que também modifica o arquivo xorg.conf)
Copiei o novo arquivo xorg.conf gerado para xorg.conf.vmware

Desta forma, fiquei com 2 arquivos:
    - xorg.conf.original  - contém as configurações para serem usados no boot
    - xorg.conf.vmware - contém as configurações para serem usadas no vmware

Quando vou usar o ubuntu, tanto com o boot, tanto com o wmware, eu copio o arquivo correspondente para xorg.conf
Assim que ele inicia, se ele estiver com o arquivo errado, ele dá erro.
Então eu logo em modo texto e faço a mudança dos arquivos.
Depois é soh subir o X ou dá um reboot no sistema.

ChausDevereaux, se vc me dizer como faço para fazer isso através do parâmetro de boot vai ficar perfeito!
Soh alegria!!!

ChausDevereaux

Esse é o script. Qualquer dúvida, questione-me:

#!/bin/sh
# xorg-switch

# Este é o script que faz as mudanças necessárias no xorg.conf.
# Antes de ativá-lo, você deve rodar o 'sudo dpkg-reconfigure -phigh
# xserver-xorg'
# nas duas máquinas, na virtual e na real. Os arquivos ficarão na pasta
# /etc/X11. Faça tudo como root, usando o sudo ou o sudo -i, para obter um
# shell root. Exemplo:

# Na máquina real:
# sudo dpkg-reconfigure -phigh xserver-xorg
# sudo mv /etc/X11/xorg.conf /etc/X11/xorg.conf.original

# Na máquina virtual:
# sudo dpkg-reconfigure -phigh xserver-xorg
# sudo mv /etc/X11/xorg.conf /etc/X11/xorg.conf.vmware

# Para ativar este script, salve-o como xorg-switch e copie-o para /etc/init.d:
# sudo cp xorg-switch /etc/init.d
# sudo update-rc.d xorg-switch start 99 S . (digite o comando exatamente como está aqui, inclusive
# o espaço e o ponto-final, menos a cerquilha)

# Você também tem que editar o /boot/grub/menu.lst da máquina virtual.
# nano /boot/grub/menu.lst

# Crie uma nova entrada, como esta, por exemplo (adapte à sua config.):
# Não coloque as cerquilhas (#):

# title Ubuntu na VM
# root (hd0,4)
# kernel /boot/vmlinuz-2.6.20-15-generic root=/dev/sda5 ro quiet splash vm-machine
# initrd /boot/initrd-2.6.20-15-generic.img
# savedefault

# Observe que o parâmetro importante é o _vm-machine_. Sem ele, o script não funciona
# direito

# ------------------------------------------------------------

# Chama algumas funções de initscripts presentes no Ubuntu e outras distros
. /lib/lsb/init-functions

# Define a máquina real como padrão. Se quiser é só mudar
LINKTO=/etc/X11/xorg.conf.original
myDesc="máquina real"

# Função para informar ao usuário quando algo não é encontrado
fileNotFound() {
log_warning_msg "Não foi possí­vel encontrar $LINKTO, necessario para a operação na $myDesc."
exit 1
}

# Este comando verifica os parâmetros de boot.
# Caso algum deles seja especificado...
for params in $(cat /proc/cmdline); do
case $params in
real-machine)
LINKTO=/etc/X11/xorg.conf.original
myDesc="máquina real"
;;
vm-machine)
# ...define a maquina atual como virtual
LINKTO=/etc/X11/xorg.conf.vmware
myDesc="máquina virtual"
;;
esac
done

# Verifica se o arquivo existe
[ ! -e $LINKTO ] && fileNotFound

# Remove um link existente, mas somente se for um link
[ -e /etc/X11/xorg.conf -a -L /etc/X11/xorg.conf ] && rm /etc/X11/xorg.conf
log_begin_msg "Adequando o xorg.conf à $myDesc..."

# Cria um novo link para o arquivo correto
ln -s $LINKTO /etc/X11/xorg.conf
log_end_msg $?