압축을 풀고 파일을 편집한 후 다시 압축하여 펌웨어 파일을 수정하려고 합니다. 하지만 내 장치에는 squashfs 유형이 다르기 때문에 파일을 허용하지 않는 문제가 있습니다(제가 생각한 대로). 내 개발 상자의 출력은 다음과 같습니다.
원본 파일:
user@ubuntuVM:~$ unsquashfs -s main-fs.5_0
Reading a different endian SQUASHFS filesystem on main-fs.5_0
Found a valid big endian SQUASHFS 3:0 superblock on main-fs.5_0.
Creation or last append time Thu Aug 21 20:56:15 2008
Filesystem size 9653.75 Kbytes (9.43 Mbytes)
Block size 65536
Filesystem is not exportable via NFS
Inodes are compressed
Data is compressed
Fragments are compressed
Always_use_fragments option is not specified
Check data is not present in the filesystem
Duplicates are removed
Number of fragments 105
Number of inodes 1667
Number of uids 2
Number of gids 1
수정된 파일:
( mksquashfs squashfs-root main-fs.test -b 64K -no-exports -no-xattrs -no-sparse -force-gid 0 -force-uid 0
루트로 사용됨)
user@ubuntuVM:~$ unsquashfs -s main-fs.mod
Found a valid SQUASHFS 4:0 superblock on main-fs.mod.
Creation or last append time Mon Dec 3 14:46:07 2012
Filesystem size 9654.48 Kbytes (9.43 Mbytes)
Compression gzip
Block size 65536
Filesystem is not exportable via NFS
Inodes are compressed
Data is compressed
Fragments are compressed
Always_use_fragments option is not specified
Xattrs are not stored
Duplicates are removed
Number of fragments 105
Number of inodes 1667
Number of ids 1
문제는 슈퍼블록 및/또는 SQUASHFS 버전에 있는 것 같습니다. 나는 이것이 우리에게 가능하다는 것을 알았지 mksquashfs -2.0
만 인수가 제거되었고 버전 3이 필요하기 때문에 그다지 도움이 되지 않을 것입니다.
그래서 내 질문은: 수정된 파일을 이전과 똑같이 다시 패키지하려면 어떻게 해야 합니까? 또한 수정된 파일 상태 compression: gzip
이지만 원본 파일에는 압축에 대한 내용이 없습니다. 어쩌면 이것도 문제일지도 모르지만, 위보다 더 많은 정보를 얻는 방법을 모르겠습니다. :-(
답변1
2.6.29 이전의 Linux 커널은 SquashFS 버전 4 파일 시스템(여기를 읽어보세요). 이것이 장치가 부팅되지 않는 이유일 수 있습니다.
SquashFS v3 이미지를 빌드하려면 이전 버전의 패키지가 필요합니다 squashfs-tools
. 이 버전을 포함하여 지원되는 최신 Ubuntu 버전은 사용 가능한 패키지가 포함된 이전 Hardy 8.04 버전입니다.여기. 이 패키지는 최신 버전의 Ubuntu에 설치할 수 있다고 생각합니다. 고대 Hardy 버전을 설치하기 전에 먼저 사용해 보세요.
나는 Ubuntu가 이 비순방향 및 비역방향 호환 업그레이드를 통해 방금 업그레이드되었다는 사실에 매우 놀랐습니다. 저장소에서 버전 3 및 버전 4 패키지를 보고 싶습니다.