읽기 / 쓰기에서 squashfs 파일 시스템 마운트 약간 수정하고

USB 스틱에 Clonezilla를 설치했으며 운영 체제를 약간 수정하고 싶습니다. 특히, 실행 가능한 스크립트를 삽입하여 /usr/sbin백업을 덜 고통스럽게 만들기 위해 자체 백업 명령을 쉽게 실행할 수 있도록하고 싶습니다.

기본 파일 시스템 /live/filesystem.squashfs은 USB FAT-32 파티션에 있습니다.

파일을 추가 / 제거 / 변경할 수 있도록 Linux 시스템에서이 읽기 / 쓰기를 마운트하려면 어떻게해야합니까? 우분투 12.04 파생 상품을 운영하고 있습니다.



답변

루트로서 filesystem.squashfs빈 디렉토리에 복사하십시오 . 예 :

cp /mnt/clonezilla/live/filesystem.squashfs /path/to/workdir
cd /path/to/workdir

파일의 압축을 푼 다음 다른 곳으로 옮깁니다 (여전히 백업으로 사용).

unsquashfs filesystem.squashfs
mv filesystem.squashfs /path/to/backup/

에 들어가서 squashfs-root취향에 따라 추가 / 수정 한 다음 다시 만드십시오 filesystem.squashfs:

cd /path/to/workdir
mksquashfs squashfs-root filesystem.squashfs -b 1024k -comp xz -Xbcj x86 -e boot

filesystem.squashfsUSB 드라이브의 기존 드라이브 위에 새로 생성 된 사본을 복사하십시오 . 예 :

cp filesystem.squashfs /mnt/clonezilla/live/

그런 다음 LIVE USB를 재부팅하고 사용하십시오.

참고 : 위 명령은의 일부입니다 squashfs-tools.


답변

시스템이 aufs 또는 overlayfs 와 같은 일부 uion 파일 시스템을 지원하는 경우 원래 squashfs 파일을 추출 할 필요가 없습니다.

예를 들어 overlayfs 가 사용됩니다 (커널 옵션으로 활성화) : squashfs.file을 / fm 또는 다른 곳에 마운트 할 수 있습니다 . / to/ temp 와 같이 2 개의 디렉토리가있는 쓰기 가능한 파일 시스템을 준비하십시오 . 병합 된 결과를 위해 다른 쓰기 가능한 디렉토리 / fin 을 준비 하십시오. 시스템에 오버레이로 함께 마운트하십시오 —

mount -t overlay -o lowerdir=/fm,upperdir=/to,workdir=/temp overlay /fin

이제 / fin에 파일을 추가 / 수정할 수 있습니다 . 모든 것이 끝나면 mksquashfs / fin 을 새로운 squashfs 파일로 만들 수 있습니다 .

mksquashfs /fin newfile; umount /fin

그런 다음 사용 된 다른 모든 디렉토리를 지우거나 마운트 해제하십시오.

SquashFS는 일부 unionfs는 일반적으로 사용되는 라이브 CD .


답변

여기 에 다른 답변이 있습니다.

bash# mount dir.sqsh /mnt/dir -t squashfs -o loop


답변

그림과 같이 overlayfs를 사용하는 것이 의사 “squashfs rw”를 갖는 가장 좋은 방법입니다. 그러나> 4.x 커널 (또는 ubuntu> 14.x trusty)에서 실행해야합니다.

overlayfs / aufs / unionfs없이 구형 라이브 CD에 앉아있을 때 대체 솔루션은 squashfs 자체 기능을 사용하는 것입니다

중대한:

 without unsquashfs, so this can be done on low storage system

예:

squashfs의 “usr”디렉토리 수정

1    mount squashfs_file /mnt

2    cp -a /mnt/usr $HOME  ##modify whatever $HOME/usr as needed

3    mksquashfs /mnt new_squashfs_file -wildcards -e usr

4    mksquashfs $HOME/usr new_squashfs_file -keep-as-directory

5    umount /mnt  # cleanup

3 행은 olddir_usr을 제외하고 일시적으로 squashfsfile을 빌드합니다.

4 행은 modified-usr-dir을 new_squashfsfile에 추가합니다.

여기 참조
squashfs squashfs 파일 내의 하위 디렉토리에 추가


답변