Android와 Ubuntu의 이중 부팅을 설정하려고합니다. 부트로더는 GRUB입니다. GRUB은 안드로이드 파티션에 설치됩니다.
GRUB이 시작되면 Android 메뉴가 작동하고 Android가 올바르게 실행됩니다.
부팅하기 위해 Ubuntu를 선택하면 오류가 발생합니다.Error 15: File not found.
스왑을 가리키는 다른 값 으로 root (hd0,2)
변경 "파티션을 마운트할 수 없습니다" 오류가 발생합니다. 따라서 나는 이 root
매개변수가 정확하다고 믿을 만한 이유가 있습니다 .
내 질문은 다음과 같습니다.
Ubuntu vmlinuz-*
initrd.img-*
파일은 Ubuntu 파티션 경로에 있습니다 /boot/
. Grub이 Android 파티션에 있으므로 이 파일도 Android 파티션에 넣어야 합니까?
따라서 제가 아는 한 현재 마운트된 파티션이 없기 때문에 GRUB이 실제로 이미지 파일에 어떻게 접근해야 하는지 이해가 되지 않습니다.
감사해요.
이 내 꺼야 menu.lst
:
default=0
timeout=60
splashimage=/grub/android-x86.xpm.gz
title Android-x86 4.4-r2
kernel /android-4.4-r2/kernel quiet root=/dev/ram0 androidboot.hardware=android_x86 SRC=/android-4.4-r2
initrd /android-4.4-r2/initrd.img
title Ubuntu 14.04 Hd0,2
root (hd0,2)
kernel /boot/vmlinuz-3.16.0-30-generic root=UUID=69c67260-525d-4f53-b924-e6489dc22942 ro quiet splash
initrd /boot/initrd.img-3.16.0-30-generic
답변1
Ubuntu의 /boot 파티션에 설치하면 가장 쉽습니다. Android 파티션에 설치하더라도 GRUB는 작동하고 Ubuntu를 부팅하지만 일부 Ubuntu 스크립트는 손실됩니다. 또 다른 해결책은 커널과 initrd를 Android의 /boot에 유지하고 Android의 /boot를 Ubuntu의 /boot에 심볼릭 링크하는 것입니다. 둘 다 유효합니다.
일반적으로 커널과 initrd는 GRUB에 액세스할 수 있는 모든 파티션에 위치할 수 있습니다. GRUB는 이를 메모리로 읽고, root=UUID=xxxxxxxxx
명령줄을 커널에 전달하고 , 루트 디렉토리가 어디에 있는지 알려주면, 커널은 거기에서 해당 디렉토리를 가져옵니다. GRUB는 대부분의 파일 시스템을 읽을 수 있지만 일부는 모듈 사전 로드 형태로 조정이 필요할 수 있습니다. 가장 먼저 떠오르는 것은 LVM 또는 전체 디스크 암호화(LUKS)입니다.아치스 위키이것은 GRUB 구성(대부분의 다른 GNU/Linux와 마찬가지로)에 대한 매우 유용한 기사입니다.
편집하다:
편집 내용을 확인하세요. GRUB2가 아닌 GRUB Legacy를 실행 중인 것 같습니다. 이 경우 위키 페이지는 다음과 같습니다.이것.
편집 2: 두 번째 제안 솔루션이 실제로 커널/initrd를 저장하는 위치를 명확히 했습니다.