다양한 Linux 구성 간에 전환하는 방법은 무엇입니까?

다양한 Linux 구성 간에 전환하는 방법은 무엇입니까?

내 Raspberry Pi 3에는 몇 가지 다른 사용 사례가 있습니다. 현재 미디어 센터, 오디오 스트리밍, 해킹 목적, 사무실 작업장 등으로 구성했습니다. 모든 구성은 기본 Raspbian 배포판을 기반으로 합니다.

이러한 구성에는 다른 (시스템) 서비스가 필요합니다그리고다양한 /etc서비스 프로필. 예: 내 사무실의 경우 필요한 WiFi 네트워크 비밀번호로 네트워크 관리자를 구성하고, 해커 스테이션의 경우 네트워크 관리자를 비활성화하고 순환 MAC 주소 및 고정 IP를 구성하고 싶습니다. 때로는 Pi 헤드리스가 마음에 들 때도 있고 때로는 GUI가 필요할 때도 있습니다. 등.

요점은 서비스가 다를 뿐만 아니라 목적에 따라 서비스 프로필도 다르다는 것입니다.

내 질문은: 동일한 Linux 환경에서 구성(서비스 + 프로필) 간에 "전환"하는 방법은 무엇입니까? 이상적으로는 다른 "모드"로 전환하기 위해 (터미널) 명령을 실행하고 싶습니다.

이미 시도했습니다:

  • 멀티부팅 그럽을 사용한 다양한 파티션: 많은 공간/오버헤드를 차지합니다. 쉬운 전환에는 적합하지 않습니다.
  • 런레벨을 사용하여 차별화하세요. 다른 구성 파일을 수용하지 마세요.
  • 서비스를 중지하고 구성 파일을 복사/전환하고 서비스를 (다시) 시작하기 위해 자체 "스위치 스크립트"를 만들었습니다. 닫았지만 바퀴를 다시 발명하는 것처럼 느껴집니다.

"즉시 사용 가능한" 솔루션에 대한 제안 사항이 있습니까? 나는 이런 욕구를 가진 최초의 사람이거나 유일한 사람이라고는 상상할 수 없습니다.

답변1

systemd에서 대상을 생성하고 아마도 git에 /etc/를 저장하면 원하는 것과 비슷한 것이 생성되는 것처럼 들립니다. 대상을 변경하고, git 브랜치를 전환하고, 모든 것을 전환하기 전에 대부분의 서비스를 비활성화하는 중간 대상을 원할 수 있습니다.

답변2

다음과 같은 폴더로 마운트된 "config" 파티션은 어떻습니까?

/mnt/config/setup1/etc
/mnt/config/setup2/etc
/mnt/config/setup3/etc
/mnt/config/etc -> /mnt/config/setup1/etc

그런 다음 systemd 서비스를 만들고 시작 프로세스 초기에 /mnt/config/etc를 /etc에 복사합니다. /mnt/config/.../etc 폴더에 다른 것을 넣으세요. 설정을 변경하고 재부팅하려면 심볼릭 링크를 업데이트하세요.

관련 정보