[DEBIAN] SquashFS - compressed read-only file system for Linux

서버 PC에 리눅스를 재설치 해야할 일이 생겨 unetbootin으로 굽던 중 일시적인 딜레이로 인해 잠깐 멈춰있었습니다. 그 중 눈에들어온 것이 하나 있는데요. 바로 “SquashFS” 입니다.

(아마 copy 과정 중 제일 오래걸렸던 것 같습니다.)

SquashFS란?

SquashFS(스쿼시FS)는 고압축 파일시스템입니다. 여러 파일시스템 종류 중 하나이고 아주 소형화된 Linux device에서 사용되는 파일시스템이죠.

이런 소형화된 시스템에선 용량에 대해 아주 민감합니다. 그래서 고압축 파일시스템인 SquashFS를 사용하지요.

대표적인 특징을 보면 아래와 같습니다.

  • Data, i-node 및 directory 에 대해 압축
  • 파일에 대해 최대 2^64 byte를 지원함
  • Big/Little Endian 모두 제공
  • Read-only file system

Install SquashFS on Debian

Debian에서는 apt 패키지 매니저를 통해 쉽게 설치할 수 있습니다. (원래는 커널단 작업이 필요한 노가다..)

apt-get 으로 간단하게 설치해줍니다. squashfs-modules-2.6-486 : 각 커널 버전 별 squashfs module 입니다. squashfs-tools : 편리한 사용을 위한 툴

#> apt-get apt-get install squashfs-modules-2.6-486 squashfs-tools

데비안(우분투) 가 아니라면.. 직접 다운로드 받아서 설치합니다.

Download SquashFS

SquashFS는 sourceforge를 통해 배포되고 있습니다. 아래 링크에서 다운로드 받을 수 있습니다. http://squashfs.sourceforge.net/

최신버전을 다운로드 받은 후 SquashFS를 사용하기 위해 커널단의 지원이 필요합니다.

Preparing a SquashFS-capable kernel

먼저 SquashFS를 지원하는 커널 패치를 다운로드 후 패치합니다.

#> cd /usr/src/squashfs #> cp linux-2.x.z/squashfs-patch /usr/src/linux #> cd /usr/src/linux #> patch -p1 < squafs-patch

이후 kernel을 컴파일 합니다(패치를 적용해야지요)

#> make #> make menuconfig #> make dep #> make bzImage #> make modules

컴파일이 완료되면 커널을 설치합니다.

#> cp arch/i386/boot/bzImage /boot/bzImage-sqsh #> make modules_install #> cat /proc/filesystems

insmod를 이용하여 squashfs 모듈을 올리고 확인해봅니다.

#> insmod squashfs #> cat /proc/filesystems

Install SquashFS tool

debian의 경우 위에서와 같이 apt로 설치해주시면 되고, 직접 설치 시 make 해주시면 됩니다.

#> cd /usr/src/squashfs/squashfs-tools #> make #> cp mksquashfs /usr/bin #> cp unsquashfs /usr/bin

mksquashfs를 이용하여 squashfs 만들기

mksquashfs는 아까 squashfs-tools에 포함된 툴이며 명령어로 squashfs를 만들 수 있습니다. 실행 정보는 아래와 같습니다.

mksquashfs source1 source2 … destination [options]

#> mksquashfs /var/test /var/test.sqsh #> mkdir /mnt/tmp #> mount /var/test.sqsh /mnt/tmp -t squashfs -o loop #> ls /mnt/tmp /var/test.sqsh/var/testsquashfsro,defaults0 0

Reference

https://en.wikipedia.org/wiki/SquashFS http://www.tldp.org/HOWTO/html_single/SquashFS-HOWTO/ http://squashfs.sourceforge.net/