Obtendo uma partição do Android x86 já instalada para executar no KVM

2

(Originalmente postado no SuperUser aqui , mas postado aqui devido à falta de respostas.

Eu tenho o Android instalado em sda3 e ele é inicializado bem quando carregado do Grub com os seguintes comandos:

set root='(hd0,3)'
search --no-floppy --fs-uuid --set=root 977083a6-5762-4064-b860-39429b9e0cf8
linux /kernel root=UUID=977083a6-5762-4064-b860-39429b9e0cf8 
initrd /initrd.img

Eu tentei carregá-lo no KVM usando o seguinte:

#Mount the Android partition as read-only so KVM can read its kernel and initrd
sudo mkdir /media/android
sudo mount -o ro /dev/sda3 /media/android

#Command to start the vm
sudo kvm -kernel /media/android/kernel -initrd /media/android/initrd.img /dev/sda3

Em ambas as circunstâncias, um ambiente de linha de comando aparece e configura várias opções rapidamente, mas ao inicializar do Grub, o sistema operacional Android aparece, enquanto ao tentar inicializá-lo como um vm usando o KVM ele simplesmente carrega em uma interface de terminal. Existe alguma opção que eu preciso adicionar ao comando KVM para que isso funcione corretamente (talvez usando o parâmetro -append)

(p.. certeza de que eu deveria postar isso em SuperUser ou Unix & Linux)

Usando o Ubuntu 14.10 com um Intel i5-4690K.



Atualização:
Eu tentei adicionar a opção -append root=/dev/sda , sem sucesso. Alguns dos processos de inicialização ainda são visíveis e incluem linhas como:

sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
sd 0:0:0:0: Attached scsi generic sy0 type 0
sda: unknown partition table
sd 0:0:0:0: [sda] Attached SCSI disk
Detecting Android-x86... found at /dev/sda

Quando tento usar operações como "mkdir" do cli, recebo a mensagem mkdir failed, Read-only file system .



Atualização 2:
Eu consegui fazê-lo para executar no VirtualBox no Windows instalado em um disco rígido separado, usando uma imagem de disco bruto de todo o disco rígido físico Android está instalado (o mesmo que minha partição Ubuntu está em). Tentar criar uma imagem de disco bruta apenas da partição Android, tanto no Windows quanto no Ubuntu, cria uma VM que não inicializa (mesmo quando se usa um ISO GRUB 2 personalizado que exclui as partições inacessíveis). Quando eu executo fdisk -l no Ubuntu, recebo um aviso de que "a partição 3 [onde o Android está instalado] não está alinhada ao limite do setor lógico" (ou algo parecido). Poderia ser essa a causa raiz?

A partição Android não tem dados ou aplicativos nela, além do que foi instalado por padrão, então tentarei excluir a partição e reinstalá-la e relatar aqui.

    
por R160K 13.11.2014 / 17:45

1 resposta

1

Parece-me que não é possível montar o rootfs e a interface do terminal que você vê é o programa init desistindo e apenas executando um shell. Você provavelmente precisará adicionar um parâmetro de root= kernel como você tem em sua configuração do grub (note que o dispositivo pode aparecer de forma diferente) provavelmente algo como -append root=/dev/sda (note que a partição aparece como um disco MBR a menos e é < em> não sda3 ).

Você também pode tentar montá-lo manualmente a partir do cli que você recebe, se você não vê o dispositivo em /dev/ ou não pode montá-lo, provavelmente porque o [host] linux não está permitindo qemu acessar o raw partição porque já está montada ou o qemu não está rodando como root.

    
por 13.11.2014 / 19:44