8/23/2016

[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/test squashfs ro,defaults 0 0

Reference

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


HAHWUL

Security engineer, Gopher and H4cker!

Share: | Coffee Me:

0 개의 댓글:

Post a Comment