KVM에서 실행할 설치된 Android x86 파티션 가져오기

KVM에서 실행할 설치된 Android x86 파티션 가져오기

(원래 슈퍼유저에 게시됨)여기, 답변이 부족하여 여기에 게시했습니다. )

sda3에 Android를 설치했는데 다음을 사용하여 Grub에서 로드하면 정상적으로 부팅됩니다.

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

다음 명령을 사용하여 KVM에 로드해 보았습니다.

#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

두 경우 모두 명령줄 환경이 나타나고 많은 옵션을 빠르게 구성하지만 Grub에서 부팅할 때는 올바른 Android OS가 나타나는 반면, KVM을 사용하여 가상 머신으로 부팅하려고 하면 터미널 인터페이스로 로드됩니다. 제대로 작동하려면 KVM 명령에 옵션을 추가해야 합니까(아마도 -append 매개변수 사용)

(이 글을 SuperUser에 게시해야 할지 Unix 및 Linux에 게시해야 할지 잘 모르겠습니다.)

Ubuntu 14.10 및 Intel i5-4690K를 사용합니다.



고쳐 쓰다:
해당 옵션을 추가해 보았 -append root=/dev/sda으나 소용이 없었습니다. 다음 줄을 포함하여 일부 초기화 프로세스가 계속 표시됩니다.

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

cli에서 "mkdir"과 같은 것을 사용하려고 하면 mkdir failed, Read-only file system.



업데이트 2:
Android가 설치된 전체 실제 하드 드라이브(Ubuntu 파티션이 있는 것과 동일한 하드 드라이브)의 원시 디스크 이미지를 사용하여 별도의 하드 드라이브에 설치된 Windows의 VirtualBox에서 실행할 수 있었습니다. Windows 및 Ubuntu에서 Android 파티션의 원시 디스크 이미지를 생성하려고 시도하면 부팅할 수 없는 VM이 ​​생성됩니다(액세스할 수 없는 파티션을 포함하지 않는 사용자 지정 GRUB 2 ISO를 사용하는 경우에도 마찬가지). Ubuntu에서 실행 하면 fdisk -l"파티션 3(Android가 설치된 곳)이 논리 섹터 경계와 일치하지 않습니다."(또는 이와 유사한 것)라는 경고가 표시됩니다. 이것이 근본 원인이 될 수 있습니까?

안드로이드 파티션에는 기본적으로 설치되어 있는 것 외에는 데이터나 앱이 없기 때문에 파티션을 삭제하고 다시 설치해 보고 여기에 다시 보고하도록 하겠습니다.

답변1

내가 보기엔 rootfs 마운트에 실패한 것 같고, 보이는 터미널 인터페이스는 init 프로그램이 포기하고 쉘을 실행하는 것뿐인 것 같습니다. root=grub 구성에서 했던 것처럼 커널 매개변수를 추가해야 할 수도 있습니다 (장치가 다르게 표시될 수 있음에 유의). 아마도 다음과 같을 것 -append root=/dev/sda입니다(파티션은 MBR이 없는 디스크로 표시되므로아니요 sda3).

또한 받은 cli에서 수동으로 설치를 시도할 수도 있습니다. 장치가 표시되지 않거나 /dev/설치할 수 없는 경우 [호스트] Linux가 qemu가 원시 파티션에 액세스하는 것을 허용하지 않는 것일 수 있습니다. 이미 설치되었거나 qemu가 루트로 실행되고 있지 않습니다.

관련 정보