개요
회사 입사후 Window 서버와 RockyLinux 서버의 Multi OS 설치 이후 두번째로 받은 과제이다. 먼저 OS 부팅에 관련해서 BIOS, UEFI에 대해 공부하고 그리고 GPT와 MBR에 대해서 공부를 했다. 그리고 받은 과제가 PXE 였는데, 구글링할 때 힌트 키워드로는 CentOS8, RockyLinux, kickstart, 네트워크, 자동 설치를 주셨다.
Trouble Shooting(1)
첫번째로 블로그를 보고 따라하던 중 생긴 문제는 블로그에서는 VMware나 Virtual Box를 이용한 가상 머신들을 사용하여서 로컬 시스템에서 사용하는 나와는 조금은 다른 환경이였다. 가상 머신에서는 OS를 설치할 때 iso 파일을 사용하지만 난 이전에 Rufus를 활용하여 OS를 설치하여서 마운트하는 방식이 조금 달랐다. 직접 Rocky Linux를 설치하며 포스팅한 글이다. https://estar987.tistory.com/21
USB 마운트는 아래의 글을 참고하여 마운트하였다.
https://krujy.tistory.com/entry/Linux-%EB%A6%AC%EB%88%85%EC%8A%A4-usb-%EB%A7%88%EC%9A%B4%ED%8A%B8-%EC%8B%9C%ED%82%A4%EB%8A%94-%EB%B0%A9%EB%B2%95
Trouble Shooting (2)
방화벽 포트를 추가 하지 않아서 생긴 문제라고 판단하여 포트를 추가하였다. (이건 문제가 아니였다는 것을 알게되었다.)
Trouble Shooting (3)
DHCP는 처음부터 제대로 작동하였고, ftp에서 오류가 발생하였는데 ftp 설정 파일을 건들여서 해결하였다.(/etc/vsftpd/vsftpd.conf)
> 원래 anonymous_enable=YES만 수정했다가 내 벨로그에 있는 ftp 설정을 써서 문제를 해결하였다.
https://velog.io/@yoondonggyu/%EC%9B%90%EA%B2%A9-%EC%A0%91%EC%86%8D
(이것도 문제가 아니였다는 것을 알게되었다.)
Trouble Shooting(4)
설정 파일들의 권한을 수정하였다.
chmod 777 /var/lib/tftpboot
chmod 755 /var/ftp/kickstart/rockylinux8.6.cfg
dhcp.conf 파일 수정하였다.
Trouble Shooting(5)
설정 파일들을 모두 한 곳에 모아두는 것이 편하다는 피드백을 받았다. 처음엔 무슨 소린지 이해가 잘 가지 않았지만 지금 문제를 해결한 결과 이해하게 되었다.
/var/lib/tftpboot/rockylinux8.6/images/pxeboot 경로에 있는 vmlinuz 파일과 initrd.img 파일을 /var/lib/tftpboot/rockylinux8.6/ 경로로 이동하였다.
/var/lib/tftpboot
/var/lib/tftpboot/rockylinux8.6
/var/lib/tftpboot/rockylinux8.6/images/pxeboot
Trouble Shooting(6)
설정 파일들을 모두 다시 확인하여 공백이 있는지 확인하였다. 가끔 설정 파일에서 설정 이외의 공백이 있으면 오류가 생기는 경우가 있기 때문이다.
Trouble Shooting(7)
kickstart 파일은 회사에서 쓰이는 파일을 받아서 그걸로 수정하여 사용하였다.
Trouble Shooting(8)
경로를 계속 못 읽어와서 kickstart는 배제 하고 os 설치 시도를 하였다.
selinux를 disabled로 바꾸고 재부팅한 후 default파일에서 kickstart 메뉴를 주석 처리 후 시도하였다.
Trouble Shooting(9)
default 파일 (/var/lib/tftpboot/pxelinux.cfg/default)
default 파일 작성에서 애를 많이 먹었는데 결론은 initrd.img 파일과 vmlinuz 파일이 있는 경로를 제대로 파악하여 기입하는 것이였다. 나는 이 두 파일을을 /var/lib/tftpboot/rockylinux8.6/ 경로에 함께 두었다.
받은 피드백들로는 1. Kernel의 경로는 rockylinux8.6/vmlinuz 까지만 적어도 인식된다. 2. 경로를 다시 봐라 3. initrd.img와 vmlinuz 파일의 경로가 같이 있는 게 관리하기 편하다. 4. 파일 경로 관리를 잘 해라 였다.
지금 보면 진짜 경로만 해결 되면 쉬운 문제였구나라는 생각이 든다.
Trouble Shooting(10)
일단 부팅이 되는 것은 확인되었다. 근데 끝까지 부팅이 되지 않았고 에러 메세지를 보니 FTP에 문제가 있는 것으로 판단하였다.
경로를 잘못 설정하여 파일을 읽지 못하면 아래와 같은 오류가 발생하는 것을 확인하였다.
Trouble Shooting(11)
kickstart 설정 오류로 판단된다.
(curl (78) retr response 550 ftp) 경로 오류
- kickstart 파일 ks-rocky86-legacy.cfg 파일을 복사하여 경로를 이동하였다.
- # cp ./ks-rocky86-legacy.cfg /var/lib/tftpboot/rockylinux8.6/
curl (9) server denied you to change to the given directory
- setenforce 0
- # chmod +w /var/lib/tftpboot/rockylinux8.6/
Trouble Shooting(12)
kickstart 과정에서 발생한 오류이다.
[ ] User creation(No user will be created)는 GUI 환경에서 root 계정 옆에 일반 사용자를 생성하는 메뉴로 체크가 안 되어 있어도 상관이 없다.
문제는 [!] Installation Destination(Kickstart insufficient) 인데 이는 하드 디스크 설정 정보를 읽어오지 못하는 오류이다.
- 내가 만든 kickstart 파일(estart987-rocky8.6-legacy.cfg)파일에서 아래 파티션 설정 부분에서 오류가 생겼는데 기존 설정의 상단에 주석 처리한 설정으로 생성하였다.
- 문제는 옵션 같은 게 문제가 아니였고 디스크 용량 설정 문제였다. 회사의 서버의 용량이 200G 이상 잡으면 설치가 되지 않았다. 아래 파티션 구성이 실행된 이유는 --grow 옵션으로 자동으로 하드 디스크 용량을 잡아서 된 것 이였다.
# 파티션 구성에 맞게 수정
#part / --fstype="ext4" --size=204800 --ondisk=sda
#part swap --fstype="swap" --size=32768 --ondisk=sda
#part /xtmp --fstype="ext4" --size=500 --ondisk=sda --grow
bootloader --append=" crashkernel=auto" --location=mbr --boot-drive=sda
part / --fstype="ext4" --ondisk=sda --grow
part swap --fstype="swap" --size=8000 --ondisk=sda
part /xtmp --fstype="ext4" --size=1 --ondisk=sda --grow
배운 점
오늘 선임분이 pxe를 실생활에서 어디서 가장 많이 쓰이냐고 물어보셨다.
단순히 여러 서버들의 os를 한번에 설치한다라고만 알고 있었는데 pc방에서 한번에 os 관리를 할 때 kickstart를 많이 사용한다고 알려주셨다.... 이렇게 밀접하게 있는 기술을 배우고 있었다니 좀 의외? 였다.
### PXE 서버 환경에 따라 수정
#nfs --server=192.168.201.1 --dir=/home/clunix/OS/rhel8.6
#repo --name="BaseOS" --baseurl=http://192.168.201.1/OS/rhel8.6/BaseOS
#repo --name="AppStream" --baseurl=nfs:192.168.201.1/OS/rhel8.6/AppStream
### 내가 추가한 코드 ###
url --url="ftp://192.168.203.32/rockylinux8.6/BaseOS"
repo --name="AppStream" --baseurl=ftp://192.168.203.32/rockylinux8.6/AppStream
repo --name="BaseOS" --baseurl=ftp://192.168.203.32/rockylinux8.6/BaseOS
########################
legacy. cfg 파일 부분에서 설정한 부분으로 OS 이미지 파일의 저장소를 불러오는 url 이므로 내 서버에서 설정한 경로가 아니고 다른 서버에서 설정한 것이라도 경로만 설정해준다면 불러와서 OS설치가 가능하다는 것을 알게되었다.
아래는 최종으로 내가 실습하면서 작성한 블로그이다.
https://estar987.tistory.com/38
https://estar987.tistory.com/42
'Trouble Shooting' 카테고리의 다른 글
[NETWORK] 네트워크(인피니밴드) 장애 처리 (0) | 2024.10.31 |
---|---|
nmcli 오류 (0) | 2024.03.12 |
SSH 접속 오류 (키 중복) (0) | 2024.03.12 |
리눅스 OS IP 이더넷 (0) | 2023.12.22 |
yum 레퍼지토리 (0) | 2023.12.22 |