Linux/systemd를 사용하여 읽기-쓰기 디스크를 분할하지 않고 FHS 읽기 전용 및 읽기/쓰기 디렉터리를 두 개의 디스크로 분할하는 방법은 무엇입니까?

Linux/systemd를 사용하여 읽기-쓰기 디스크를 분할하지 않고 FHS 읽기 전용 및 읽기/쓰기 디렉터리를 두 개의 디스크로 분할하는 방법은 무엇입니까?

내 목표는 Linux FHS 읽기/쓰기 디렉터리( /home, /srv, /tmp, /var)의 물리적 저장소를 잠재적으로 읽기 전용인 루트 파일 시스템의 나머지 부분이 아닌 다른(논리적 또는 물리적) 디스크에 배치하는 것입니다.

두 번째 디스크에 4개의 파티션을 만들고 각 파티션을 위의 디렉터리 중 하나로 사용할 수 있다는 것을 알고 있습니다 mount. 그러나 나중에 (논리적 또는 물리적) 파티션의 크기를 수정할 수 있더라도 4개의 디렉터리에 필요한 저장 공간을 미리 결정하고 싶지 않습니다.

이것이 가능한가? 달성하는 방법?

답변1

이전에도 비슷한 질문이 있었습니다. 가장 가까운 것 같습니다.동일한 파티션에 여러 디렉터리를 마운트하는 방법은 무엇입니까?어디현재 승인된 답변조언은 두 가지 방법으로 올 수 있습니다.

  • 4개의 _symbolic 링크를 사용하십시오. 루트 파일 시스템에서 두 번째 디스크에 있는 4개의 개별 하위 트리를 가리키며, 이 디스크 자체는 한 번에 4개의 독립적인 마운트 지점에 마운트됩니다.

  • 사용번들 설치(Linux 2.4부터 사용 가능) 두 번째 디스크가 4개의 디렉터리에 대한 별도의 마운트 지점에 먼저 마운트된 후 두 번째 디스크에 있는 4개의 별도 하위 트리를 4개의 디렉터리에 마운트합니다.

동일한 답변에 흥미로운 의견이 있습니다.이 Q&A에서는 장점과 단점에 대해 설명합니다.심볼릭 링크그리고번들 설치. 이를 통해 다음과 같은 결론을 내릴 수 있습니다.심볼릭 링크보기 및 유지 관리가 더 쉽고 기존 소프트웨어에 문제를 일으키지 않으므로 선호되어야 합니다.

그러나 systemd이라는 명시적인 종속성 구성 기능이 있습니다 RequiresMountsFor. 예를 들어, 표준 Debian 8(Jessie)은 이를 사용하여 특정 서비스가 /var해당 서비스에 사용 가능해야 하는 잠재적인 설치를 기다리게 합니다 .

systemdRequiresMountsFor다음 과 함께 만 사용할 수 있습니다.번들 설치;동의하지 않는다심볼릭 링크.

최소한 systemd문제의 Debian 8 서비스 구성 파일이 여기에 있으므로 /lib/systemd수정해서는 안 됩니다. 이는 다음을 나타냅니다.번들 설치systemd이러한 종속성을 도입하는 Linux 배포판을 사용하는 경우 선호됩니다.. Linux 배포판의 구성을 수정하면 systemd시스템 유지 관리가 악몽으로 변할 수 있습니다.

systemd반면에, 그것의 존재 자체가 선택에 대한 이유나 반대 이유를 구성하지 않습니다.심볼릭 링크그리고번들 설치.

답변2

한 가지 옵션은 merge 와 함께 배포판을 사용하는 것입니다 . 그런 다음 RO 및 나머지 RW를 /usr마운트하고 대부분의 RO 관련 항목을 가질 수 있습니다. 그러나 이것은 아마도 당신이 원하는 것을 /usr포착하지 못합니다 . /etc완전한 해결책은 아니고 해결 방법에 가깝습니다.

또 다른 접근 방식은 원하는 모든 마운트에 대한 하위 볼륨이 있는 BTRFS 볼륨을 생성한 다음 를 사용하는 것입니다 -osubvol=<whatever>. 이러한 마운트에는 개별 마운트 옵션이 있을 수 있지만 기본 구성(할당량 설정 없음)에서는 모두 공간적으로 계산됩니다. 전체 BTRFS 볼륨에 공간이 남아 있는 한 원하는 곳에 새 데이터를 배치할 수 있습니다.

관련 정보