저는 Linux 배포판을 설계 중이며 읽기 전용 파일 시스템과 병합되고 UnionFS 마운트 지점을 통해 램디스크 아래에 스택되는 사전 패키지된 압축 파일 시스템 비트를 생성하는 것을 고려하고 있습니다. 어떤 의미에서 이러한 비트는 설치되는 대신 RAM에 있는 파일 시스템의 일부로 설치되고 읽힌다는 점을 제외하면 패키지와 같습니다.곧장읽기 전용 디스크에서(메모리에 복사하는 것과 비교).
마운트 지점을 많이 생성하지 않고, 불필요한 항목을 RAM에 복사하지 않고, 작은 파일 시스템을 여러 개 쌓아서 많은 오버헤드를 생성하지 않고 이 작업을 수행하는 방법을 알고 싶습니다.
...혹은 그게 가능하다면요.
나는 그것을 사용하고 있다유니온FS-FUSE그리고클롭.
답변1
제안된 대로 squashfs(압축용)와 AUFS(파일 시스템 레이어를 함께 쌓고 병합하기 위해)의 조합을 사용할 수 있습니다. AUFS는 또 다른 유니온 파일 시스템(Another Union File System)을 의미합니다. 그러나 그것은 어떻게 달성됩니까? 여기에서는 squashfs/aufs를 구현하는 간단한 예제 스크립트를 제공합니다...
하지만 먼저 데비안 커널은 aufs를 지원하지만 우분투는 그렇지 않다는 것을 알았습니다. :-( 배포판이 데비안 기반이라면 계속해서 몇 가지 기본 도구를 설치할 수 있습니다.
apt-get install squashfs-tools aufs-tools
이제 명령이 내려옵니다. mksquashfs 명령은 디렉토리를 압축 모듈로 압축합니다. 해당 파일에 액세스할 수 있도록 두 개의 squashfs 모듈이 생성되어 여기에 설치됩니다. 그런 다음 쓰기 가능한 브랜치 하나와 읽기 전용 브랜치 두 개(즉, squashfs)로 aufs를 생성합니다. mount 명령에 제공된 옵션은 분기를 지정합니다(man aufs 참조). 마지막으로 파일 변경 사항이 실제로 쓰기 가능한 레이어에 기록되는지 테스트하기 위한 파일을 생성합니다.
그래서 이것이 도움이 되기를 바랍니다.
#!/bin/bash
# apt-get install squashfs-tools aufs-tools
# The aim:- to create an aufs/squashfs that merges the file contents of /etc and /sbin
mkdir -p temp/{ro1,ro2,changes-dir,aufs-dir} && cd temp
# compress the files of etc and sbin into squashfs modules
# using /etc and /sbin only becos they are handy
mksquashfs /etc etc.sqsh -b 65536
mksquashfs /sbin sbin.sqsh -b 65536
# now mount the squashfs modules to make their files accessible
mount -o ro,loop etc.sqsh ro1
mount -o ro,loop sbin.sqsh ro2
# AUFS is the acronym for Another Union FileSystem
# mount aufs with 3 branches - a writable branch, and two readonly branchs
mount -t aufs -o br:$PWD/changes-dir=rw,br:$PWD/ro1=ro,br:$PWD/ro2=ro none $PWD/aufs-dir
cd aufs-dir
echo " make some file changes here, to prove the aufs filesystem is writable"
touch rofl
cd -
umount aufs-dir
umount ro1
umount ro2
# and finally we look into changes-dir, to see the stored file changes
ls changes-dir
답변2
꼭 시도해 봐야 해오브, 로 서술 된"완전히 재설계되고 재구현된 Unionfs". 내가 아는 한, 많은 "살아있는"배포판에서는 그것을 사용합니다대상과 마찬가지로 다중 부분 메모리 파일 시스템의 경우.