Angstrom을 실행하는 Atmel SAM9X 시스템이 있습니다. 사용자가 부팅 중에 버튼을 누르고 있으면 복구 파티션이 부팅되도록 복구 파티션을 만들려고 합니다.
부팅 시 버튼을 누르고 있으면 대체 Linux 커널이 로드되도록 부트로더를 수정했습니다. 내가 원하는 것은 일반 기본 파티션 대신 복구 부팅 파티션에서 대체 Linux 커널을 로드하는 것입니다.
가능합니까? 아니면 두 개의 코어를 사용하지 않고 복구 파티션을 마운트할 수 있나요?
이 작업을 수행하려는 이유는 기본 부팅 가능한 파티션이 손상되면 복구 파티션이 기본 파티션(복구 파티션이 있는 Dell 또는 HP Windows 시스템과 유사)에 자체적으로 복사되고 기본 부팅 가능한 파티션이 복원되기 때문입니다.
편집하다:
Giles의 제안이 성공했습니다. 부트로더가 커널 명령줄 매개변수를 설정하고 있습니다. 방금 추가했는데 root=/dev/mmcblk0p3
(세 번째 SD 파티션에서 부팅) 원하는 파티션에서 부팅됩니다!
답변1
커널에는 컴파일 시 결정된 기본 루트 파티션 설정이 포함되어 있습니다(명령을 사용하여 바이너리 이미지에서 이를 변경할 수 있음 rdev
). 커널 명령줄에 인수를 전달하여 부팅 시 이 기본값을 재정의할 수 있습니다. 예를 들어 root=/dev/mmcblk9p42
기본값 대신 MMC 장치 9 파티션 42에서 부팅하도록 할 수 있습니다. 명령줄은 부트로더에 의해 커널로 전달되므로 부트로더 구성을 변경해야 합니다.
initrd 또는 initramfs가 있는 경우 부트로더가 컴파일하거나 전달한 루트 파티션을 덮어쓸 수 있습니다.