CentOS7을 사용해서 만능 PXE 서버를 만들어 보겠습니다.
하나의 PXE 서버를 사용해 Windows, Linux(CentOS, Ubuntu, Debian) 설치와 DOS 부팅으로 펌웨어 설치까지 가능합니다.
PXE를 사용하려면 아이피를 할당 해 줄 DHCP 서버와 syslinux 부팅 파일을 전송할 TFTP서버, ISO 파일을 전송할 FTP or http 서버가 필요합니다.
1. DHCP 설정
yum -y install dhcp
vi /etc/dhcp/dhcpd.conf
설정
ddns-update-style interim;
subnet 192.168.0.0 netmask 255.255.255.0 {
option routers 192.168.0.1;
option subnet-mask 255.255.255.0;
range dynamic-bootp 192.168.0.10 192.168.0.100;
option domain-name-servers 164.124.101.2;
default-lease-time 10000;
max-lease-time 50000;
#pxe setting
allow booting;
allow bootp;
next-server 192.168.0.1;
filename "pxelinux.0";
}
2. TFTP 설정
yum -y install syslinux tftp-server
yum -y install xinetd
: CentOS7은 tftp경로 변경 하려면 xinetd를 설치 해야합니다.
vi /etc/xinetd.d/tftp
파일의 옵션 변경 disable = no, server_args= -s /tftpboot
(원하는 디렉터리 입력)
tftp설정
3. ISO 마운트, syslinux 부팅파일 복사
mkdir -p /var/www/html/pxe/CentOS7
mkdir -p /tftpboot/CentOS7
mount /dev/cdrom /var/www/html/pxe/CentOS7
ISO파일의 경우 : mount -o loop CentOS7.iso /var/www/html/pxe/CentOS7
cp /var/www/html/pxe/CentOS7/images/pxeboot/vmlinuz /tftpboot/CentOS7/
cp /var/www/html/pxe/CentOS7/images/pxeboot/initrd.img /tftpboot/CentOS7/
cp /usr/share/syslinux/pxelinux.0 /tftpboot/
cp /usr/share/syslinux/menu.c32 /tftpboot/
4. 부팅 관련 디렉터리와 설정 파일 생성
mkdir /tftpboot/pxelinux.cfg
vi /tftpboot/pxelinux.cfg/default
DEFAULT menu.c32
timeout 100
menu title ### OS Installer Boot Menu ###
LABEL CentOS7
menu label CentOS7
kernel CentOS7/vmlinuz
append initrd=CentOS7/initrd.img repo=http://192.168.0.1/pxe/CentOS7
5. httpd 설정
yum -y install httpd
vi /etc/httpd/conf/httpd.conf
<Directory "/var/www/html/pxe">
AllowOverride None
Order deny,allow
Deny from all
Allow from 192.168.0
</Directory>
6. 서비스 재시작 및 상시 가동
systemctl restart dhcpd
systemctl restart httpd
systemctl restart xinetd
: TFTP는 xinetd에 종속되어 있습니다.
systemctl enable dhcpd
systemctl enable httpd
systemctl enable xinetd
7. 확인
PXE 부팅 시 아래 화면과 같이 나오면서 설치가 되면 성공입니다.
PXE menu
만약 오류가 발생 하시면 오류 내용을 잘 읽어보시면 쉽게 처리 할 수 있습니다. 댓글 남시기면 오류 해결 도와드리겠습니다.
TFTP Timeout 오류의 경우 방화벽(iptables, firewalld) 문제나 selinux 문제인 경우입니다.
이 외에는 대부분 파일 이름이나 경로등의 실수로 파일을 못찾는 경우이므로 확인 하시고 수정해 주시면 됩니다.
2편에서는 윈도우도 설치 가능하게 만드는 법을 올리고, 3편에서는 자동설치가 가능하게 해주는 KickStart 설정 방법 및 데비안, 우분투설치와
DOS 이미지에 드라이버를 넣어서 PXE 부팅 가능하게 하는 법을 포스팅 할 예정입니다.
'IT > Linux' 카테고리의 다른 글
리눅스로 만능 PXE 서버 만들기 - 3 (0) | 2017.08.29 |
---|---|
리눅스로 만능 PXE 서버 만들기 - 2 (1) | 2017.08.19 |
리눅스 본딩(Bonding) 설정 (1) | 2017.08.11 |
리눅스(CentOS7) 인터페이스 이름 변경 (0) | 2017.08.01 |
CentOS7 루트 비밀번호 초기화 (0) | 2017.07.31 |