AUFS: 디렉토리 트리의 일부에 대해서만 읽기/쓰기 분기를 만드는 방법은 무엇입니까?

AUFS: 디렉토리 트리의 일부에 대해서만 읽기/쓰기 분기를 만드는 방법은 무엇입니까?

AuFS(또 다른 통합 파일 시스템)를 사용하면 두 트리가 겹치는 경우에도 두 트리를 하나로 병합할 수 있습니다. 그런 다음 병합된 트리에 대한 쓰기를 분기 중 하나로 지시하고 다른 분기로 읽을 수 있습니다.

이것의 전형적인 사용은 다음과 같은 플래시 파일 시스템과 램 디스크를 사용하는 것입니다.이것(참조 1) Linux를 손상시키지 않는 읽기 전용 루트 파일 시스템을 생성합니다. 모든 파일 쓰기는 RAM으로 이동합니다. 재부팅 후 시스템은 출고 당시의 구성으로 복원됩니다.

  • /dir1= 읽기 전용
  • /dir2= 읽기/쓰기
  • /aufs/dir1= 및 의 병합/dir2

/aufs--move그런 다음 그것을 만들기 위해 다시 마운트됩니다 /(루트)

간단히 말하면 (참조 1)의 예는 다음과 같습니다.

mount -t aufs br=/dir2:/dir1 /aufs
mount --move /aufs /

/dir2하지만 쓰기 가능한( )이 램디스크가 아닌 실제 디스크에 있도록 사용하고 싶습니다 . 이렇게 하면 재부팅 후에도 데이터가 유지됩니다.

/dir1하지만 dir2의 특정 파일이 보존되지 않고 ( ) 기본값 으로 복원되도록 해야 합니다 . 이렇게 하면 향후 부팅 시 항상 배송된 파일을 사용할 수 있습니다. 사용자 및 로깅 데이터를 잃지 않고.

/etc예를 들어 , /bin, 에서 변경된 파일은 /boot재부팅 /usr후에도 유지되지 않아야 합니다.

그만큼AUFS 웹페이지(참조 2)에는 예가 거의 없습니다.

질문: AuFS를 사용하여 이를 수행하는 올바른 방법은 무엇입니까?

나는 다음을 생각할 수 있다:

  1. 어떤 방식으로든 첫 번째 마운트 명령을 수정합니다.
  2. 두 번째 마운트 전에 aufs add/del을 사용하여 더 많은 마운트 명령을 추가하세요.
  3. /dir2부팅 시 보존하지 말아야 할 트리를 삭제하기만 하면 됩니다.
  4. 부분 트리( etc, bin, boot, lib, etc)tmpfs

참고 1:https://help.ubuntu.com/community/aufsRootFileSystemOnUsbFlash
참고 2:http://aufs.sourceforge.net/aufs.html

답변1

옵션 1: auFS그 자체로는 그러한 마운트 옵션을 지원하지 않으므로 옵션 #1은 종료되었습니다. 이 문제를 해결해야 합니다.

옵션 #3: 물론, 부팅할 때마다 해당 디렉터리를 간단히 삭제할 수 있습니다. 내가 여기서 보는 가장 간단한 방법일 수도 있습니다.

옵션 #2: tmpfs. 먼저 tmpfs크기가 500MB라고 가정해 보겠습니다.

mount -t tmpfs -o rw,size=500M tmpfs /tmpfs

우리는 지금:

  • /dir1: 읽기 전용
  • /dir2: 읽기/쓰기
  • /tmpfs: RAM에서 읽기/쓰기
  • /aufs/dir1: 및 의 오버레이/dir2

내부에서 /tmpfs보존하려는 디렉토리를 생성합니다.

mkdir -p /tmpfs/{etc,usr,boot,bin}

우리는 이미 두 디렉토리를 병합할 때 그렇게 합니다. 따라서 디렉터리 트리가 /aufs이미 존재하는 경우입니다. 그러나 이제 보존해야 하는 디렉터리당 하나의 aufs 마운트를 수행합니다.

mount -t aufs -o dirs=/tmpfs/etc=rw:/dir2/etc=ro none /aufs/etc
mount -t aufs -o dirs=/tmpfs/usr=rw:/dir2/usr=ro none /aufs/usr
mount -t aufs -o dirs=/tmpfs/boot=rw:/dir2/boot=ro none /aufs/boot
mount -t aufs -o dirs=/tmpfs/bin=rw:/dir2/bin=ro none /aufs/bin

이제 어디에서나 파일을 쓸 수 있는 디렉터리 트리가 있지만 예를 /aufs들어 파일을 쓰면 RAM에 있는 /etc에 기록되므로 /tmpfs/etc재부팅 후에도 유지되지 않습니다. 예를 들어 의 다른 파일은 읽기/쓰기 가능한 파일 시스템인 /home에 기록되므로 /dir2/home재부팅 후에도 유지됩니다.

또 다른 솔루션: 저는 오버레이 파일 시스템과 보존된 사용자 데이터를 사용하는 클라이언트 시스템도 사용합니다. 제가 해결한 방법은 다음과 같습니다. 간단히 읽기 전용 파일 시스템과 그 위에 마운트된 tmpfs입니다. 나중에 사용자가 로그인하면 읽기/쓰기 가능한 삼바 서버에서 그의 홈 디렉토리를 마운트합니다. 따라서 그의 모든 사용자 데이터는 에 저장 및 보존되며 /home나머지는 재부팅 후에도 유지되지 않습니다. 귀하의 경우에는 읽기-쓰기가 가능한 /home다른 물리적 파티션에 넣고 나중에 /aufs/home.

관련 정보