1. KickStart란?
- 리눅스 배포판에서 사용되는 자동화된 시스템 설치 도구
- 주로 리눅스 서버 운영체제를 배포하고 설치하는 프로세스를 자동화하는 데 사용
- 사용자는 특정 설정, 사용자 계정, 소프트웨어 패키지, 파일 시스템 및 기타 시스템 구성 요소에 대한 사전 정의된 설정을 담은 텍스트 파일을 작성하여 사용 가능
2. KickStart을 이용한 알마리눅스os 설치 USB 만들기
- 보통 처음에 리눅스를 설치 하게 되면 home디렉토리 안에 anaconda-ks.cfg파일이 설치 된다.
- anaconda-ks.cfg파일은 내가 OS를 설치하면서 설정했던 정보들이 기록되게 된다.
- 파일의 위치는 /root/anaconda-ks.cfg
- Test 환경: 완전 처음 설치된 상태의 알마리눅스8.9
2-1. KickStart 만드는 순서
- OS설치 USB만들기
- Test환경에 USB 마운트하기
- ks.cfg 파일 만들기
- 바이오스에서 USB부팅
- OS 설치
✔ anaconda-ks.cfg 파일의 위치
[root@localhost ~]# ll
total 12
-rw-------. 1 root root 1528 Jan 22 19:19 anaconda-ks.cfg
-rw-r--r--. 1 root root 1946 Jan 22 19:24 initial-setup-ks.cfg
-rw-------. 1 root root 1643 Jan 22 19:19 original-ks.cfg
✔ anaconda-ks.cfg파일의 내용들
[root@localhost ~]# cat anaconda-ks.cfg
해당 내용은 보통 OS정보, 기본설정,
부트로더 옵션, 인증, 방화벽, 선택한 패키지,
키보드 설정, 날짜, 언어, 파티션정보, 네트워크 설정, root패스워드, 등등등..
✔ anaconda-ks.cfg 파일을 이용한 나만에 ks.cfg 파일 만들기
[root@localhost ~]# cat /mnt/usb/my-ks.cfg
# Kickstart 파일 (my-ks.cfg)
# 필요한 설정에 따라 수정해야 합니다.
#version=RHEL8
# Use graphical install
graphical
repo --name="AppStream" --baseurl=file:///run/install/sources/mount-0000-hdd-device/AppStream
%packages
@^graphical-server-environment
kexec-tools
%end
# Keyboard layouts(키보드)
keyboard --xlayouts='us'
# System language(시스템 언어설정)
lang en_US.UTF-8
# Network information (네트워크 정보)
network --bootproto=static --device=enp1s0f0 --gateway=xxx.xxx.xxx.1 --ip=xxx.xxx.xxx.xxx --netmask=255.255.255.0 --ipv6=auto --activate
network --bootproto=dhcp --device=enp1s0f1 --onboot=off --ipv6=auto
network --hostname=localhost.localdomain
# Use hard drive installation media
harddrive --dir= --partition=LABEL=ALMALINUX-8
# Run the Setup Agent on first boot
firstboot --enable
ignoredisk --only-use=sda
# Partition clearing information (파티션닝정보)
clearpart --none --initlabel
# Disk partitioning information
part /var --fstype="xfs" --onpart=sda3
part /usr --fstype="xfs" --onpart=sda2
part swap --fstype="swap" --onpart=sda5
part / --fstype="xfs" --onpart=sda1
part /scr --fstype="xfs" --onpart=sda6
# System timezone (시스템의 시간,지역정보)
timezone America/New_York --isUtc
# Root password (루트 패스워드)
rootpw --iscrypted
%addon com_redhat_kdump --enable --reserve-mb='auto'
%end
%anaconda
pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty
pwpolicy user --minlen=6 --minquality=1 --notstrict --nochanges --emptyok
pwpolicy luks --minlen=6 --minquality=1 --notstrict --nochanges --notempty
%end
✨ anaconda-ks.cfg 파일을 기반으로 my-ks.cfg파일 생성해주고 USB가 마운트 되어있는 디렉터리에 옮겨줍니다.
✔ 부트로더에서 옵션주기
✨ 바이오스에서 USB부팅으로 변경후 USB를 장착후 실행하게되면 위와같이 부트로더 화면이 나타납니다.
'install AlmaLinux 8.9'에 포인트를 가져다 놓고 Tab키(OS마다 다를수있음)를 눌르게 되면 왼쪽 그림 처럼 옵션을 줄수 있는 명령프롬토콜이 생성됩니다. 옵션으로 ks=hd:LABEL=ALMALINUX-8:/my-ks.cfg 을 주고 엔터를 누르면 됩니다.
자동으로 설치가 진행됩니다.
끝 !
3. 부트로더에서 작성하는 내용에 대해서
3-1. ks=hd:LABEL=ALMALINUX-8:/my-ks.cfg
ks=hd:라벨,UUID등 다른것도 가능 : 내가 만든 ks.cfg파일의 절대경로
라벨: USB의 이름
3-2. USB이름을 찾는 방법은 여러 가지 입니다.
1. lsblk 명령어를 이용하기
[root@localhost ~]# lsblk -o NAME,LABEL
NAME LABEL
sda
├─sda1
├─sda2
├─sda3
├─sda4
├─sda5
└─sda6
sdb
└─sdb1 ALMALINUX-8
sdb가 현재 OS설치 USB입니다.
2. 위 오른쪽 그림을 보면 처음에
initrd=initrd.img inst.repo=hd:LABEL=ALMALINUX-8 quiet
이 부분이 있는데 앞 LABEL과 똑같이작성 해주시면 됩니다. (단, KickStart 없이도 기본적으로 설치가 잘되는 USB여야함)
4. ks.cfg를 영구적으로 사용하기
- 만약, 100대의 컴퓨터에 설치를 똑같은 설정으로 설치 해야한다면 매번 부트로더에서 똑같은 옵션을 손으로 치는것은 쉽지 않다. 그래서 영구적으로 옵션을 작성하지 않아도 자동으로 하는 방법이 있다.
✔ isolinux.cfg파일찾기
[root@localhost ~]# ll /mnt/isolinux/isolinux.cfg
-rwxr-xr-x. 1 root root 3039 Jan 22 03:56 /mnt/isolinux/isolinux.cfg
✨ USB를 마운트 하고 isolinux디렉토리에 isolinux.cfg파일이 존재한다.
✔ isolinux.cfg파일수정
[root@localhost ~]# vi /mnt/usb/isolinux/isolinux.cfg
----원본
...
label linux
menu label ^Install AlmaLinux 8.9
kernel vmlinuz
append initrd=initrd.img inst.repo=hd:LABEL=ALMALINUX-8 quiet
...
----수정후
...
label linux
menu label ^Install AlmaLinux 8.9
kernel vmlinuz
append initrd=initrd.img inst.repo=hd:LABEL=ALMALINUX-8 quiet ks=hd:LABEL=ALMALINUX-8:/my-ks.cfg
...
✨ 해당파일에서 보통 label linux라고 되어있는 부분을 찾아서 append부분에 아까 옵션을 추가 해주면 부트로더 자동으로 작성이 된다.(부트로드화면에서 Tab키를 눌러 확인해보면 자동으로 작성이 되어있는걸 볼수 있다.)
'리눅스 > 서버운영' 카테고리의 다른 글
[리눅스] TFTP, VSFTP서버 구성하기 (0) | 2024.01.29 |
---|---|
[리눅스] DHCP서버 구성하기 (0) | 2024.01.29 |
[리눅스] 파티션 복사 실습⑧ (완결편) (0) | 2024.01.19 |
[리눅스]SELinux (0) | 2024.01.10 |
[리눅스] 파티션 복사 실습⑦ (퍼미션 비교해보기) (1) | 2024.01.09 |
댓글