사전 빌드된 Debian 설치 프로그램에 ZFS 추가

사전 빌드된 Debian 설치 프로그램에 ZFS 추가

나는 일반적인 파티션 설정을 통하지 않고(자동이든 아니든) 사용 가능한 모든 HD에서 루트 zpool을 자동으로 생성하는 사전 구축된 데비안(확장) 설치 프로그램(법적 이유로 내부)을 만들려고 합니다.

ZFS 루트에서 본 대부분의 조언(아마도,더욱 권위 있는 가이드)에는 debian을 설치한 다음 수동으로 LiveCD로 부팅하고 해당 LiveCD에 ZFS를 설치하고 ZFS를 설정한 다음 chroot새 ZFS 루트로 이동하여 모든 것을 다시 설치해야 합니다. 이것은 오류가 발생하기 쉽고 지루한 것 같습니다. 그래도 이해합니다.법적 이유데비안 설치 프로그램에는 ZFS가 내장 옵션으로 포함되지 않을 수 있습니다.

내 연구에서 여러 사람이 관리자에게 비슷한 질문을 했지만 항상 법적인 설명으로 바뀌었고 질문에 대한 답변이 없는 일부 메일링 목록 스레드를 발견했습니다. (만약 다시 찾을 수 있다면 공유하겠지만 읽는 것은 대부분 시간 낭비).

보세요안정적인 샘플 프로필, 다음과 같은 흥미로운 줄을 볼 수 있습니다.

### Apt setup
# You can choose to install non-free and contrib software.
#d-i apt-setup/non-free boolean true
#d-i apt-setup/contrib boolean true

조금 더 아래로:

# Individual additional packages to install
#d-i pkgsel/include string openssh-server build-essential

실제로 ZFS 설치를 요청할 수 있으므로 이는 유망해 보입니다.

d-i apt-setup/contrib boolean true
d-i pkgsel/include string zfs-dkms zfsutils-linux zfs-initramfs

하지만 파티셔닝 단계 이후에 적절한 설정과 패키지 설치가 이루어지기 때문에 너무 늦을 수 있습니다.

내가 찾았어이 가이드이는 설치 프로세스에 무료가 아닌 패키지를 추가하는 또 다른 방법을 설명합니다(tl;dr deb를 다운로드하여 dpkg-deb -xinitrd에 넣은 다음 iso를 다시 만듭니다). 이것은 (내 생각에) 파티셔닝 단계 전에 사용할 수 있다는 장점이 있습니다. ZFS를 설치하는 것과 유사한 작업을 수행하는 것이 가능할 것 같습니다(단, initrd에 채우기 전에 먼저 컴파일해야 합니다). 여기서 까다로운 부분은 분할 단계를 ZFS 풀을 생성하는 스크립트로 대체하기 위한 후크가 필요하다는 것입니다.@FerencWágner의 댓글에서partman의 일부 LVM 항목 변경에 대한 SE Unix 스레드유망해 보이지만 이를 달성하는 방법에 대한 구체적인 세부 정보는 없습니다(그리고 인정된 답변에 따르면 partman은 그러한 사용자 정의 작업을 수행할 수 없다는 것을 암시합니다).

이걸 고려하세요:

  1. d-i apt-setup/contrib루트 fs를 생성할 때 ZFS를 사용하기에는 정말 너무 늦었나요 d-i pkgsel/include?
  2. 위의 내용이 맞다면 파티셔닝 단계에서 ZFS를 사용할 수 있게 만드는 올바른 방법이 initrd에 패키지를 포함하는 것입니까?
  3. (1)이 올바른지 여부에 관계없이 partman 단계를 사용자 정의 ZFS 루트 풀 생성으로 어떻게 바꿀 수 있습니까?

답변1

ZFS 루트를 원하기 때문에 Debian-Installer에 ZFS 지원을 추가해야 하는데 pkgsel/include이는 도움이 되지 않습니다. 올바른 방법은 이미데비안 시작저자: 프란스 포프:

partman 이전 메뉴에 포함된 사용자 정의 udeb(즉, 3500에서 4000 사이의 번호가 매겨진 메뉴 항목)를 생성해야 하며, partman의 모든 기본 기능을 수행하고 partman과 동일한 의사 패키지를 제공해야 합니다.

partman의 기본 기능은 다음과 같습니다.

  • /target 디렉토리 생성
  • 파티션 생성
  • /target/etc/fstab 생성
  • /target에 파티션을 마운트합니다.

사용자 정의 udeb 생성에 대한 기본 정보는 다음을 참조하세요.데비안 설치 프로그램 내부.

(이전 링크를 현재 링크로 대체했습니다.)

실험을 위해 미리 시드하고 anna/choose_modules, partman이 나타날 때 쉘에 로그인하고, 필요한 파일/스크립트를 다운로드 하고 설치 프로그램 환경에서 테스트하여 network-consolepartman 작업을 수동으로 수행하는 것이 좋습니다(partman을 사용하여 마운트 지점을 설정할 수 있음). 그 후에는 udebs를 빌드하거나 단순히 추가 파일을 넣을 수 있습니다.wget/rootinitrd를 입력하세요또는 initrd 오버레이(ext/sys/iso/pxelinux에 의해 로드되는 추가 initrd 이미지)로 들어갑니다.

적절한 partman 통합은 놀라운 성과가 될 수 있지만 이를 달성하는 방법을 실제로 안내할 수는 없습니다. 이것오래된 문서여전히 관련성이 높을 수 있습니다. 다음과 같은 기존 모듈을 사용할 수 있습니다.patman-btrfs영감을 구하세요. 하지만 물어보는 게 좋을 거야데비안 시작이는 중복된 노력을 피하거나 잘못된 길로 가는 것에서 시작됩니다.

관련 정보