패키지 dpkg
(및 궁극적으로 apt-get 등을 사용 하는 패키지)를 사용하여 패키지를 업그레이드하거나 다시 설치하면 교체하기 전에 파일에 대한 하드 링크를 만들어 기존 파일을 백업합니다. 이렇게하면 압축 풀기가 실패하면 기존 파일을 쉽게 되돌릴 수 있습니다. Bad Things ™에서 운영 체제를 보호하기 때문에 훌륭합니다.
파일 시스템이 하드 링크를 지원하는 경우 에만 작동 합니다 . FAT 파일 시스템과 같은 모든 파일 시스템이 아닙니다.
특정 임베디드 ARM 플랫폼 용 데비안 배포판을 작업 중이며 부트 환경에서는 특정 파일 (커널 포함)이 FAT 파일 시스템에 있어야 부트 코드가 파일을 찾아로드 할 수 있습니다.
커널 패키지 (또는 해당 FAT 파티션에 파일이있는 다른 패키지)를 업그레이드하면 설치가 실패합니다.
dpkg: error processing archive linux-image3.18.11+_3.18.11.2.armadillian_armhf.deb (--install):
unable to make backup link of `./boot/vmlinuz-3.18.11+' before installing new version: Operation not permitted
그리고 전체 업그레이드가 실패합니다.
웹을 검색 한 결과 특정 업그레이드를 수행 할 때 특정 문제가있는 특정 사람들 만 찾을 수 있습니다. 일반적으로 "삭제 / 부팅 /vmlinuz-3.18.11+ 및 다시 시도"라는 대답이 있습니다. 특정 문제를 해결합니다.
그러나 그것은 저에게 답이 아닙니다. 저는 OS 사용자가 아닌 OS 배포자이므로 업그레이드를 수행하기 전에 최종 사용자가 커널 파일을 수동으로 삭제하지 않는 문제를 해결할 수있는 방법이 필요합니다. dpkg에게 / boot에있는 파일 (또는 업그레이드 작업이 다소 느려질 수 있지만 내가 관심을 갖는 모든 파일에 대해 "하드 링크가 아니라 복사") 또는 "하드 링크가 실패하면 불평하지 말고 대신 복사하십시오. "
나는 --force-unsafe-io
및 심지어 --force-all
플래그 와 같은 것을 시도 dpkg
했지만 아무 효과가 없습니다.