Ubuntu 14.04에서 킥스타트 서버를 생성하는 단계

Ubuntu 14.04에서 킥스타트 서버를 생성하는 단계

Ubuntu 14.04 LTS에서 킥스타트 서버를 생성하려면 단계별 절차가 필요합니다.

답변1

이것은 좋은 단계별 가이드입니다

TL;DR; 사용자 정의 iso를 다시 포장한 후 isohybrid를 사용하십시오.

이 USB를 만들기 위해 Ubuntu 14.04가 설치된 가상 머신을 사용했습니다. 여기서 목표는 키보드 레이아웃, 언어 등과 같은 항목을 선택할 필요가 없는 부팅 가능한 USB를 만드는 것입니다. 우리는 Ubuntu 서버의 자동 설치를 원합니다.

설치를 위해 사용자 정의할 우분투 이미지를 가져와야 합니다.

wget http://releases.ubuntu.com/14.04/ubuntu-14.04.2-server-amd64.iso

압축을 푼 iso 파일을 마운트할 장소가 필요합니다.

sudo mkdir -p /mnt/iso

마운트 지점을 생성한 후에는 이제 마운트해야 합니다. 그러면 ISO 내부에 보관된 파일이 노출됩니다. 안타깝게도 파일은 읽기 전용입니다.

. sudo mount -o 루프 ubuntu-14.04.2-server-amd64.iso /mnt/iso

파일을 수정하려면 파일을 수정할 수 있는 디렉토리에 복사해야 하므로 디렉토리를 생성한 다음 파일을 여기에 복사하겠습니다.

sudo mkdir -p /opt/ubuntuiso
sudo cp -rT /mnt/iso /opt/ubuntuiso

새로운 작업 디렉토리는 /opt/ubuntuiso입니다.

cd /opt/ubuntuiso

설치 과정에서 언어를 선택하라는 메시지가 표시되지 않도록 하려면 사용할 언어를 알려줘야 합니다. 이 경우에는 제가 영어를 하기 때문에 en을 사용하고 있습니다.

echo en | sudo tee isolinux/lang

이제 실제로 system-config-kickstart라는 프로그램을 사용하여 kickstart 파일을 빌드하겠습니다. 그래서 우리는 그것이 설치되었는지 확인한 다음 실행합니다.

sudo apt-get install system-config-kickstart
system-config-kickstart

그런 다음 GUI의 파일을 /opt/ubuntuiso/. 그러면 ks.cfg라는 파일이 저장됩니다. 내 ks.cfg는 다음과 같습니다

#Generated by Kickstart Configurator
#platform=AMD64 or Intel EM64T
#System language
lang en_US
#Language modules to install
langsupport en_US
#System keyboard
keyboard us
#System mouse
mouse
#System timezone
timezone America/Denver
#Root password
rootpw --disabled
#Initial user
user ubuntu --fullname "ubuntu" --iscrypted --password $1$MQ0zGB4W$pwjX8nolgr2RJch2Omamt.
#Reboot after installation
reboot
#Use text mode install
text
#Install OS instead of upgrade
install
#Use CDROM installation media
cdrom
#System bootloader configuration
bootloader --location=mbr
#Clear the Master Boot Record
zerombr yes
#Partition clearing information
clearpart --all --initlabel
#Disk partitioning information
part /boot --fstype ext2 --size 100 --asprimary
part swap --recommended
part / --fstype ext4 --size 1 --grow
#System authorization infomation
auth --useshadow --enablemd5
#Network information
network --bootproto=dhcp --device=eth0
#Firewall configuration
firewall --disabled
#Do not configure the X Window System
skipx
%post
#!/bin/bash
exec < /dev/tty6 > /dev/tty6
chvt 6
echo 'Acquire::http { Proxy "http://10.2.4.27"; };' > /etc/apt/apt.conf.d/02proxy
apt-get update
apt-get -y upgrade
apt-get -y dist-upgrade
apt-get install -y git ansible openssh-server vim
chvt 1

포스트스크립트(이후의 모든 내용)에는 약간의 하이재킹이 수행되었습니다 %post. exec로 시작하는 줄과 다음 줄( chvt 6)은 설치 프로그램이 그 이후에 실행되는 명령의 출력을 표시하도록 합니다. 그 이유는 설치 중에 로딩 바가 움직이지 않아 마치 설치 프로그램이 정지된 것처럼 보일 수 있기 때문입니다. 프록시를 수행하는 다음 줄은 로컬 네트워크의 apt-cache에 대한 것입니다. 마지막 줄( chvt 1)은 출력을 기본 설치 프로그램으로 되돌립니다.

이제 다른 질문을 피하기 위해 미리 설정 파일을 추가해야 합니다.

echo 'd-i partman/confirm_write_new_label boolean true d-i partman/choose_partition \ select Finish partitioning and write changes to disk d-i partman/confirm boolean true' | sudo tee ks.preseed

이제 방금 저장한 파일에 대해 설치 프로그램에 알려야 하므로 isolinux/txt.cfg를 수정해야 합니다. 먼저 파일을 쓰기 가능하게 만들어야 합니다.

sudo chmod +w isolinux/txt.cfg

그런 다음 다음 섹션의 추가 줄을 바꿔야 합니다.

label install
menu label ^Install Ubuntu Server
kernel /install/vmlinuz
append file=/cdrom/preseed/ubuntu-server.seed vga=788 initrd=/install/initrd.gz quiet --

추가 줄을 다음으로 바꾸십시오.

append file=/cdrom/preseed/ubuntu-server.seed initrd=/install/initrd.gz ks=cdrom:/ks.cfg preseed/file=/cdrom/ks.preseed --

파일을 저장하고 종료합니다. 또한 파일을 원래 상태로 되돌려야 하므로 쓰기 권한을 제거해야 합니다.

sudo chmod -w isolinux/txt.cfg

이제 부팅 가능한 USB를 만드는 데 사용할 새 iso 파일을 만듭니다.

sudo mkisofs -D -r -V "ATTENDLESS_UBUNTU" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o /opt/autoinstall.iso /opt/ubuntuiso

USB의 부팅 가능한 ISO를 완성하려면 이를 하이브리드화해야 합니다.

sudo isohybrid /opt/autoinstall.iso

하이브리드화한 후 USB 드라이브에 푸시할 수 있습니다. 내 가상 머신의 USB 드라이브가 에 표시되지만 /dev/sdb올바른 레이블을 사용해야 하므로 이에 따라 X를 교체하십시오. USB 드라이브가 마운트 해제되었는지 확인하세요.

sudo umount /dev/sdX

마지막으로 ISO를 USB 드라이브에 밀어 넣습니다. (**이렇게 하면 대상 장치의 데이터가 파괴됩니다. 수행 중인 작업이 무엇인지 확인하십시오.)

sudo dd if=/opt/autoinstall.iso of=/dev/sdX

이제 USB 드라이브를 설치할 준비가 되었습니다!

답변2

완벽한 솔루션:

CD를 리마스터합니다. 즉, 그래픽이 아닌 Ubuntu 설치 ISO(서버 또는 대체 설치 CD)를 다운로드하여 마운트합니다. 이 경우 Ubuntu 14 ISO입니다.

sudo mkdir -p /mnt/iso
sudo mount -o loop ubuntu.iso /mnt/iso

관련 파일을 다른 디렉터리에 복사하세요.

sudo mkdir -p /opt/ubuntuiso
sudo cp -rT /mnt/iso /opt/ubuntuiso

언어 선택 메뉴가 나타나지 않도록 방지

cd /opt/ubuntuiso
echo en | sudo tee isolinux/lang

GUI 프로그램을 사용하여 다음 이름의 kickstart 파일을 추가하십시오.ks.cfg

sudo apt-get install system-config-kickstart
system-config-kickstart # save file to ks.cfg

설치용 패키지를 추가하려면 킥스타트 파일 %package에 섹션 을 추가하고 다음과 같이 파일 ks.cfg끝에 추가하십시오 .ks.cfg

%packages
@ ubuntu-server
openssh-server
ftp
build-essential

그러면 ubuntu-server "번들"이 설치되고 , openssh-serverftp패키지 가 추가됩니다 build-essential.

다른 질문을 표시하지 않으려면 미리 설정 파일을 추가하세요.

echo 'd-i partman/confirm_write_new_label boolean true
d-i partman/choose_partition \
select Finish partitioning and write changes to disk
d-i partman/confirm boolean true' | sudo tee ks.preseed

kickstart 및 미리 설정 파일을 사용하도록 부팅 명령줄 설정

sudo nano isolinux/txt.cfg

검색

label install
  menu label ^Install Ubuntu Server
  kernel /install/vmlinuz
  append  file=/cdrom/preseed/ubuntu-server.seed vga=788 initrd=/install/initrd.gz quiet --

추가 줄에 ks=cdrom:/ks.cfg및를 추가합니다 . 및 단어를 preseed/file=/cdrom/ks.preseed제거할 수 있습니다 . 그것은 다음과 같아야합니다quietvga=788

append file=/cdrom/preseed/ubuntu-server.seed initrd=/install/initrd.gz ks=cdrom:/ks.cfg preseed/file=/cdrom/ks.preseed --

이제 새로운 iso를 생성하세요

sudo mkisofs -D -r -V "ATTENDLESS_UBUNTU" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o /opt/autoinstall.iso /opt/ubuntuiso

그게 다야. Ubuntu 시스템에서 부팅하면 입력 없이 Ubuntu 시스템을 설치할 수 있는 CD가 제공됩니다.

필요에 따라 ks.cfg 및 미리 설정 파일을 조정합니다.

관련 정보