부팅 시작 실패 처리(Debian)

부팅 시작 실패 처리(Debian)

512MB의 RAM과 4GB의 내부 저장 장치를 갖춘 내장형 장치가 있습니다. (라즈베리 파이나 비글본을 생각해 보세요)

3개의 파티션이 있는 외부 SD 카드가 있습니다.

mmcblk0디스크이고 mmcblk0p1그 위에 3개의 파티션이 mmcblk0p2있습니다 .mmcblk0p3

mmcblk0p2또한 mmcblk0p3각 파티션에는 Debian 운영 체제가 있습니다.

mmcblk0p2활성 파티션과 mmcblk0p3동시에 백업 파티션으로 사용됩니다.

나는 u boot가 첫 번째 파티션의 동작을 선호한다는 것을 알았습니다. 파티션에서 uEnv.txt를 읽고 그에 따라 시작합니다.

따라서 파티션에는 mmcblk0p1uboot 구성이 있습니다. ( uEnv.txt및 시작하는 데 필요한 기타 파일)

변경 시작 구성을 사용하고 있습니다 uEnv.txt. 즉, 부팅하려는 경우 다음을 mmcblk0p3제공할 수 있습니다.

mmcargs=setenv bootargs console=tty0 console=${console} ${optargs} ${cape_disable} ${cape_enable} root=/dev/mmcblk0p3 rootfstype=${mmcrootfstype} ${cmdline}

내부에uEnv.txt

uEnv.txt결함으로 인해 파티션이 손상되거나 파티션이 손상된 경우 장치는 파티션 중 하나에서 부팅할 수 없습니다. (예: 운영 체제)

uEnv.txt활성 파티션이 손상된 경우 재부팅 시 다른 파티션에서 어떻게 부팅할 수 있습니까? 이 주제와 관련된 사용 가능한 링크나 리소스를 공유할 수 있다면 좋을 것입니다. 즉, 이 상황을 어떻게 처리해야 합니까?

답변1

자체 OTA를 처음부터 구현하는 경우에는 그렇습니다. 다른 기존 OTA 메커니즘이 이를 어떻게 처리하는지 이해해야 할 것입니다. 일반적으로 업데이트가 있는지, 그리고 시도했는지 확인하기 위해 플래그 조합을 사용하기 때문입니다. 그것을 업데이트합니다.

관련 정보