Ubuntu 설치 프로그램의 사전 설정

Ubuntu 설치 프로그램의 사전 설정

Ubuntu를 설치한 후 즉시 일부 명령을 실행하고 싶습니다. 그래서 프리팹 개념을 활용해보자고 생각했어요. 내 iso를 추출하고 preseed 폴더의 custom.seed 파일에 다음 줄을 추가했습니다.

대상 mkdir /home/abc의 di preseed/late_command 문자열

이제 iso를 다시 패키지하고 이를 사용하여 우분투를 설치했습니다. 그러나 아무것도 변경되지 않았습니다. 여기서 내가 뭘 잘못하고 있는 걸까요?

답변1

무엇이 문제인지 말씀드릴 수는 없지만, 수많은 시행착오 끝에 제가 어떻게 작동하게 되었는지는 말씀드릴 수 있습니다.

내 요구 사항은 새 파일과 교체 파일을 ISO로 패키지하고 설치 후 스크립트를 실행하는 것입니다.

프로필:

d-i preseed/late_command string /bin/sh -c "$(cat /setup.sh); exit 0"

의심할 바 없이 스크립트를 실행하는 이상한 방법이지만 작동합니다.

installer.sh:

# [ hardware/hosting detection, other customizations ]
# set PackageList string
in-target --pass-stdout /bin/sh -c \
  "apt-get update &&
   apt-get install -y $PackageList &&
   apt-get dist-upgrade -y
  "

스크립트는 재부팅 후 손실되는 설치 프로그램 환경에서 실행됩니다. in-target설치된 환경에서 실행하려면 이 명령을 사용해야 합니다 .

여기에서 ISO에 대한 기존 프로세스를 풀어보세요.

initrd에 압축된 파일

initrd부팅 및 설치 프로그램이 실행되는 환경에서 확장되는 파일 시스템 아카이브입니다. setup.sh제 경우에는 파일을 이 아카이브에 복사해야 합니다.

확장 initrd파일

cd $ExpandedISO/install
mkdir initrd
cd initrd
gzip -dc ../initrd.gz | cpio -id --no-absolute-filenames

복사새 파일은 확장 initrd디렉터리로 이동됩니다.

재건 initrd파일:

# in $ExpandedISO/install/initrd/
find . | cpio -o -H newc | gzip > ../initrd.gz
# expanded dir can now be deleted to not take up space in ISO
rm -rf $ExpandedISO/install/initrd/

ISO를 다시 패키징하는 기존 프로세스는 여기에 있습니다.

관련 정보