임베디드 시스템 파티션 변경 처리

임베디드 시스템 파티션 변경 처리

일부 오래된 임베디드 시스템을 업데이트해야 합니다. 그러나 RAUC 업데이트에는 4개의 파티션이 포함되어 있지만 이전 시스템에는 3개의 파티션만 있었습니다.

추가 파티션이 디스크 시작 부분에 있는데 외부 어댑터를 사용하여 장치를 플래시할 수 없습니다.

내가 가진 것은 장치의 기존 Linux에 대한 SSH 액세스입니다.

실행 중인 시스템에서 파티션 테이블을 변경하여 시스템 파티션을 이동할 수 있습니까?

아니면 dd전체 디스크를 새 이미지로 덮어쓸 수 있나요?

나는 이것을 알아낼 수 없으며 여기에 좋은 해결책이 없는지 확실하지 않습니다.

답변1

나는 임베디드 시스템에서 비슷한 일을 했습니다. 저를 구한 것은 새 디스크(및 모든 파티션)의 압축 이미지가 메모리에 들어갈 만큼 작다는 것입니다.

내가 한 일은 사용자 정의 스크립트를 포함하도록 initramfs를 패치하는 것이었습니다. 부팅 시 무엇이든 설치하기 전에 (압축된) 디스크 이미지를 ramfs 파일 시스템에 복사하고 압축을 풀어 dd of=/dev/<disk>완전히 덮어씁니다.모든 것, 새 파티션을 포함합니다.

(일부 파일을 유지하는 데 약간의 어려움을 겪었습니다. 결국 유지하고 싶은 것을 타르볼링하고 tmpfs에 넣은 다음 새 파일 시스템에 압축을 풀었습니다. 잘 작동했습니다.)

더 좋은 솔루션이 있다고 확신하지만 이것이 저에게 효과적입니다.

[추가하도록 편집됨:]

또 다른 옵션은 네트워크를 통해 디스크 이미지를 가져오는 작은 스크립트를 initramfs에 추가하는 것입니다. 완전한 시스템의 도움 없이 IP 설정 등을 파악해야 한다는 것은 어색할 수 있습니다. 하지만 스크립트를 initramfs에 넣는 것이 디스크를 마운트하지 않고도 RAM에서 실행할 수 있어 대부분을 다룰 수 있기 때문에 아마도 최선의 선택일 것입니다.

관련 정보