vmlinuz-*와 initrd.img-*를 어느 파티션에 배치해야 합니까?

vmlinuz-*와 initrd.img-*를 어느 파티션에 배치해야 합니까?

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를 저장하는 위치를 명확히 했습니다.

관련 정보