저는 제가 담당하고 있는 임베디드 Linux 장치용 업데이트 유틸리티를 작성 중입니다.
업데이트가 스테이징 파티션에 적용된 다음 부트로더가 스테이징 파티션으로 전환하여 기본 파티션을 새 스테이징 파티션으로 변경하는 기본 병렬 설정을 만들고 있습니다.
그러나 임베디드 장치는 CF 카드를 사용하는데, CF 카드가 가끔 데이터를 순서대로 쓰지 않는 경우가 있는 것으로 알려져 있습니다. 따라서 파일 시스템을 읽기/쓰기로 마운트하면 손상될 가능성이 있습니다. 따라서 새 파티션을 가리키도록 부트로더 파티션 RW를 마운트할 수 없습니다.
단일 바이트를 쓰는 것이 안전한 디스크 위치가 있습니까?, 여기서 바이트는 첫 번째 파티션의 경우 0을 나타내고 두 번째 파티션의 경우 1을 나타냅니다. CF 카드라도 단일 바이트 쓰기를 망칠 수는 없습니다. 이는 원자적으로 발생해야 합니다.
일반 DOS MBR 형식 디스크를 사용하고 있습니다.
답변1
데이터를 보관할 세 번째 작은 파티션을 만듭니다. 파일 시스템을 실제로 사용할 수 없는 경우 디스크의 다른 위치로 인해 조만간 문제가 발생할 수 있습니다.
때로는 디스크의 마지막 몇 개의 클러스터를 FAT 항목에서 주소 지정할 수 없는 경우도 있습니다. 이는 옵션일 수 있지만 장치의 정확한 크기에 따라 크게 달라집니다.
임베디드 CPU/장치에 EEPROM이 있습니까? 이는 단일 바이트에 이상적인 위치입니다.