![diff에서 ext4 img 생성](https://linux55.com/image/189001/diff%EC%97%90%EC%84%9C%20ext4%20img%20%EC%83%9D%EC%84%B1.png)
변경된 파일만 포함해야 하는 ext4 파일 시스템에서 업데이트 이미지를 생성하려고 합니다. 그래서 기본적으로 저는 ext4 루트 파일 시스템을 갖춘 데비안 배포판을 가지고 있습니다. 기본 이미지 A를 생성한 다음 업데이트(예: apt 업데이트)를 설치하고 싶습니다. 업데이트한 후 다른 이미지를 만들고 싶습니다. B. 항상 전체 이미지 B를 복사할 필요가 없도록 이미지 A와 이미지 B의 변화를 비교하여 "차이 이미지"를 만드는 방법이 있습니까? 그 이유는 최종 이미지를 다른 장치에 설치하고 모든 변경 사항을 복사해야 하기 때문입니다(첫 번째 장치에서 업데이트한 변경 사항을 두 번째 장치에 업데이트하는 것으로 생각하세요).
답변1
나는 "diff 이미지"가 당신이 원하는 것처럼 파일 시스템 수준에서 작동하지 않을 것이라고 생각합니다. 파일/디렉터리, 메타데이터 체크섬(최신 시스템의 경우), 로그 블록 등의 배치에 변수가 너무 많아 한 파일 시스템에서 블록 수준 차이를 가져와 다른 파일 시스템에 적용하는 것이 불가능합니다.두 파일 시스템이 처음에 동일하더라도. 혹시라도어느일반적인 사용 중에 두 번째 파일 시스템을 수정한 후 적용합니다.블록 레벨diff는 두 번째 파일 시스템을 손상시킵니다. 어떤 경우에는 손상이 경미할 수 있습니다(예: 슈퍼블록 또는 그룹 설명자의 사용 가능한 블록/inode 수 불일치). 다른 경우에는 심각한 손상이 발생할 수 있습니다(예: 잘못된 비트맵, 로그 블록 등).
더욱 실용적으로 사용할 수 있어요파일 수준diff는 본질적으로 "rsync"(또는 병렬 버전)이며 ext4에만 국한되지 않습니다. 업그레이드 중에 파일 시스템에서 fsnotify 감시자를 사용하여 수정된 모든 파일 목록을 생성함으로써 rsync 프로세스 속도를 높일 수 있으므로 전체 파일 시스템 검사가 필요하지 않습니다.