Windows 호스트의 Virtualbox에서 기존 Archlinux 설치를 시작하려고합니다. Linux는 자체 EFI 부트 로더 인 EFISTUB, Windows를 사용합니다.
-/ dev / sda1 -EFI 파티션이며 호스트에서 Linux 용 / boot로 마운트됩니다. vmlinuz-linux 및 initramfs를 포함합니다. Windows 부팅 관리자도 있습니다.
-/ dev / sda2- 리눅스 파티션
-/ dev / sda3 -Windows 파티션
파티션 sda1 및 sda2를 나타내는 .vmdk 파일을 만든 다음 관리자 권한으로 Vbox를 시작했습니다. .vmdk를 VM에 연결했습니다. 그런 다음 VM 내부의 라이브 DVD iso에서 부팅하여 실행
# efibootmgr -d /dev/sda -p 1 -c -L "Arch Linux" -l /vmlinuz-linux -u "root=/dev/sda2 rw initrd=/initramfs-linux.img"
(Vbox가 VM을 닫은 후 모든 EFI 변수를 지우므로 최선의 아이디어는 아닙니다. / sda1에 부트 로더가 설치되어 있지 않습니다)
Efi 부팅 옵션이 성공적으로 생성되었습니다. 그러나 그것은 원인
Waiting 10 secs for device /dev/sda2 ...
ERROR: device '/dev/sda2' not found. Skipping fsck.
ERROR: Unable to find root device '/dev/sda2'.
You are being dropped to a recovery shell
이 경우 EFISTUB 구성에 성공한 사람이 있습니까? 아니면 grub-efi를 시도해야합니까?
@ Rod-Smith 가설에 감사드립니다. EFI 부팅 항목을 만드는 동안 / dev / sda / 대신 PARTUUID를 사용하여 확인했습니다. 이전과는 조금 다른 결과를 얻었습니다- 오류 : 루트 장치 / dev / disk / by-partuuid / MY_PARTUUID를 찾을 수 없습니다. 가상화 환경 내부의 PARTUUID는 실제 하드웨어와 동일합니다. live-dvd의 시스템은 VM 내부의 모든 파티션을 볼 수 있지만 sda1 및 sda2에만 읽고 쓸 수 있습니다.
—
MichaelZelenoborskyLong
/dev/sda2
을 가상화 된 것에 매핑하지 않는 것처럼 보이/dev/sda2
므로 문제가됩니다. OTOH, 저는 VirtualBox에 "실제"디스크 장치에 대한 액세스 권한을 부여하는 전문가가 아니므로 여기에서 무언가를 잘못 해석 할 수 있습니다 ....