웹사이트 검색

PXE 네트워크 부팅 서버를 통해 Debian 9(Stretch) 설치


이 페이지에서

  1. 요구 사항\n
  2. 초기 구성
  3. ISC-DHCP 서버 설치 및 구성
  4. TFTP 서버 설치
  5. Debian 9 Netboot 파일 배포

이 자습서에서는 Debian 아카이브 미러에서 제공하는 인터넷 원격 HTTP 미러 소스가 있는 PXE 서버를 통해 최신 버전의 Debian 9 서버를 설치하는 방법을 안내합니다. 이 자습서에서 PXE 환경을 설정하기 위해 사용할 DHCP 서버는 ISC-DHCP 서버이고 netboot Debian 파일은 TFTPD-HPA 서버에 의해 로컬 네트워크에서 제공됩니다. PXE를 통해 시스템을 설치하면 설치 속도를 향상시킬 수 있으며 짧은 시간에 데비안을 여러 개 설치하는 경우나 시스템에 CD/DVD ROM 장치가 장착되지 않은 경우에 사용할 수 있습니다.

요구 사항

  • 베어 메탈 머신 또는 가상 머신에 설치된 Debian 9.
  • IP 주소 및 기타 관련 DHCP 및 PXE 설정을 동적으로 할당하는 데 사용될 네트워크 세그먼트에 대한 고정 IP 주소로 구성된 네트워크 인터페이스.\n
  • Debian 서버에 대한 루트 권한이 있는 로컬 또는 원격 계정 또는 서버의 콘솔을 통해 루트 계정에 직접 액세스하거나 SSH를 통한 원격 액세스.\n
  • 네트워크를 통해 데비안을 설치하려면 인터넷 연결이 필요합니다.\n

초기 구성

첫 번째 단계에서 새 서버를 설치하는 데 사용할 Debian 시스템에 고정 IP 주소로 구성된 DHCP 서버에 바인딩하는 데 사용할 네트워크 인터페이스가 있는지 확인해야 합니다.

네트워크 인터페이스 카드를 수동으로 구성하려면 네트워크 인터페이스 파일을 열고 원하는 텍스트 편집기(예: nano)를 사용하여 다음 행을 편집하십시오. 자신의 네트워크 구성과 일치하도록 아래에 설명된 IP 설정 행을 교체하십시오.

sudo nano /etc/network/interfaces

인터페이스 파일 발췌:

auto ens33
iface ens33 inet static
address 192.168.1.102
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
dns-nameservers 192.168.1.2 8.8.4.4
dns-search debian.local

네트워크 인터페이스 파일을 편집한 후 파일을 저장하고 닫은 다음 아래 명령을 실행하여 네트워크 인터페이스를 내린 다음 위로 가져와 설정을 적용합니다. 네트워크 인터페이스 카드의 이름이 ens33이라고 가정하고 아래 명령을 실행하여 NIC를 비활성화 및 활성화합니다.

ifdown ens33
ifup ens33

네트워크 인터페이스에 대해 새 IP 주소가 구성되었는지 확인하려면 다음 명령을 실행하십시오.

ip a

네트워킹 데몬을 다시 시작하거나 인터페이스를 비활성화 및 활성화하면 IP 설정이 적용되지 않는 경우가 있습니다. 이 경우 아래 명령으로 시스템을 다시 시작해야 합니다.

init 6

또는

systemctl reboot

또한 아래 명령을 실행하여 전체 시스템 업데이트를 수행해야 합니다.

apt update
apt upgrade

다음 단계에서 다음 명령을 실행하여 명령줄에서 시스템을 추가로 관리하는 데 사용할 일부 필수 유틸리티를 설치합니다.

apt install wget bash-completion unzip

ISC-DHCP 서버 설치 및 구성

DHCP 서버 및 PXE 구성을 설정하려면 루트 계정 또는 루트 권한이 있는 계정으로 시스템에 로그인하고 다음을 실행하여 Debian 9 저장소에서 제공하는 isc-dhcp-server 패키지를 설치합니다. 명령.

apt install isc-dhcp-server

이제 ISC-DHCP 서버 기본 구성 파일을 백업하고 다음 설정을 포함하도록 dhcpc 서버 구성 파일을 편집합니다.

mv /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.backup
nano /etc/dhcp/dhcpd.conf

dhcpcd.conf 파일 발췌:

ddns-update-style none;
option option-128 code 128 = string;
option option-129 code 129 = text;
authoritative;
log-facility local7;
option arch code 93 = unsigned integer 16;

subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.50 192.168.1.100;
option routers 192.168.1.1;
option broadcast-address 192.168.1.255;
option subnet-mask 255.255.255.0;
option ntp-servers 192.168.1.102;
option time-servers 192.168.1.102;

option domain-name "debian.local";
option domain-name-servers 192.168.1.1, 192.168.1.2;
allow booting;
allow bootp;
if option arch = 00:07 or option arch = 00:09 {
filename "bootnetx64.efi";
} else {
filename "pxelinux.0";
}
next-server 192.168.1.102;

#default lease 4H, max lease 8H
default-lease-time 14400;
max-lease-time 28800;

}

host nas {
hardware ethernet 00:17:a4:f6:b2:2e;
fixed-address 192.168.1.105;
}

위의 구성 파일에서 다음 줄을 적절하게 바꿉니다.

subnet {..
range 192.168.1.50 192.168.1.100;

DHCP가 이 네트워크 세그먼트에 IP를 할당하도록 고유한 네트워크 범위를 정의하려면

옵션 라우터=게이트웨이 IP 설정

옵션 브로드캐스트 주소 =네트워크 브로드캐스트 주소 설정

option subnet-mask = 네트워크 서브넷 마스크 주소 설정

옵션 ntp 서버

옵션 시간 서버 = 네트워크 NTP 서버 IP 주소 설정

option domain-name = 네트워크 도메인 이름 설정(있는 경우)

option domain-name-servers = 네트워크 DNS 서버 IP 주소 설정

if option arch=00:07 또는 option arch=00:09인 경우 = 최종 장치가 UEFI 기반 시스템인 경우 bootnetx64.efi 파일을 사용하여 장치를 제거하거나 pxelinux.0 파일. 이러한 시스템은 일반적으로 구형 BIOS 시스템입니다.

다음 서버 192.168.1.102 = TFTP의 IP 주소입니다. 여기서 pxelinux.0 또는 bootnetx64.efi 파일은 네트워크에서 찾을 수 있습니다. 이 경우 TFTP 서버는 동일한 시스템에 있습니다.

default-lease-time =만료되기 전에 IP 주소에 부여된 기본 시간(초).

max-lease-time=만료되기 전에 IP 주소에 부여된 최대 시간(초).

host nas {
hardware ethernet 00:17:a4:f6:b2:2e;
fixed-address 192.168.1.105;
}

DHCP 서버에서 고정 IP 주소를 선언하는 방법입니다. 하드웨어 이더넷 문으로 정의된 MAC 주소가 있는 장치는 항상 동일한 IP 주소를 갖게 됩니다. 선언된 호스트 이름은 중요하지 않습니다. 호스트 이름에 임의의 문자열을 사용할 수 있습니다.

그런 다음 편집을 위해 /etc/default/ 디렉토리에서 isc-dhcp-server 파일을 열고 다음으로 이동합니다. 파일 끝에 고정 IP 주소로 구성된 네트워크 인터페이스 카드를 아래 샘플에 설명된 대로 IPv4 인터페이스 줄에 추가합니다. 적절한 네트워크 인터페이스 카드 이름을 추가했는지 확인하십시오. ip 또는 ifconfig 명령을 사용하여 시스템 네트워크 인터페이스를 나열하고 올바른 이름을 찾으십시오.

nano /etc/default/isc-dhcp-server

isc-dhcp-server 기본 파일 발췌:

INTERFACESv4=”ens33”

마지막으로 DHCP 데몬을 다시 시작하여 변경 사항을 적용합니다. 서비스가 시작되었는지 확인하기 위해 아래 명령을 실행하여 DHCP 서비스 상태를 확인하십시오.

systemctl restart isc-dhcp-server.service
systemctl status isc-dhcp-server.service

또한 ss 또는 netstat 명령을 실행하여 DHCP 서버에서 열려 있는 모든 소켓을 나열합니다.

netstat –tulpn
ss –tulpn

netstat 유틸리티가 시스템에 설치되어 있지 않으면 아래 명령을 실행하여 설치하십시오.

apt install net-tools

TFTP 서버 설치

클라이언트가 PXE와 TFTP를 통해 Debian을 원격으로 부팅하는 데 필요한 netboot 파일을 제공하려면 시스템에 TFTP 서버도 설치해야 합니다. LAN에 사용할 수 있는 가장 일반적이고 안전한 TFTP 서버 중 하나는 tftpd-hpa 서버입니다. TFTP-HPA 패키지는 데비안 9에서 제공하는 공식 리포지토리에서 설치할 수 있습니다. 아래 명령을 실행하여 데비안 9에 tftpd-hpa 서버를 설치합니다.

apt install tftpd-hpa

패키지가 설치된 후 TFTPD-HPA 기본 구성 파일을 열고 파일에 아래 내용이 있는지 확인합니다.

nano /etc/default/tftpd-hpa

tftpd-hpa 파일 발췌:

TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/srv/tftp"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="--secure"

TFTP_OPTIONS줄에 아래 내용이 있는 경우 TFTP 서버를 보호하기 위해 --create 플래그를 제거해야 합니다.

TFTP_OPTIONS="--secure --create"

create 플래그를 사용하면 원격 클라이언트가 tftp 서버에 파일을 업로드할 수 있습니다. 이 옵션은 임의의 사용자가 TFTP 서버 루트 경로에서 파일을 업로드하거나 삭제할 수 있기 때문에 위험합니다.

마지막으로 시스템 전체에서 서비스를 활성화하고 TFTP 서버를 시작하고 아래 일련의 명령을 실행하여 tftp 데몬 상태를 확인합니다.

systemctl enable tftpd-hpa
systemctl start tftpd-hpa
systemctl status tftpd-hpa

또한 netstat 또는 ss 명령을 실행하여 시스템에서 수신 대기 중인 모든 열린 네트워크 소켓을 나열해야 합니다. DHCP 및 TFTP 서버에 필요한 UDP 포트 67 및 69가 네트워크 스택에서 열려 있어야 합니다. 다음 명령을 실행하여 방화벽에서 이러한 포트를 열어야 합니다.

ufw allow 67/udp
ufw allow 69/udp

iptables 원시 규칙을 사용하여 Debian 서버에서 방화벽 정책을 관리하는 경우 다음 규칙을 추가하여 포트 67 및 69 UDP 인바운드 트래픽이 방화벽을 통과하도록 허용하여 클라이언트가 DHCP 및 TFTP에 액세스할 수 있도록 합니다. 서버.

apt-get install iptables-persistent
iptables -A INPUT -p udp --dport 67 -j ACCEPT
iptables -A INPUT -p udp --dport 69 -j ACCEPT
systemctl iptables-persistent save
systemctl iptables-persistent reload

다음 단계에서 다음 명령을 실행하여 Syslinux 부트로더 유틸리티를 설치하십시오.

apt install syslinux-utils syslinux

Debian 9 Netboot 파일 배포

그런 다음 https://www.debian.org/distrib/netinst 주소의 Debian netinstall 웹 페이지로 이동하고 wget 명령줄 유틸리티를 사용하여 최신 버전의 Debian netboot 아카이브 tarball을 다운로드합니다.

wget http://ftp.nl.debian.org/debian/dists/stretch/main/installer-amd64/current/images/netboot/netboot.tar.gz

Debian netinstall tarball을 다운로드한 후 아래 명령을 실행하여 아카이브 내용을 TFTP 루트 경로에 직접 추출합니다.

tar xfz netboot.tar.gz -C /srv/tftp/

또한 Syslinux 패키지에서 제공하는 memdisk 파일을 TFTP 루트 경로에 복사하고 아래 명령을 실행하여 TFTP 디렉토리의 내용을 나열합니다. /srv/tftp 디렉토리에는 아래 스크린샷에 표시된 내용이 있어야 합니다.

cp /usr/lib/syslinux/memdisk /srv/tftp/
ls /srv/tftp/

다음으로 아래 명령을 실행하여 TFTP 루트 경로에 Debian netinstall 패키지에서 제공하는 UEFI 부트로더 파일에 대한 symlink를 생성합니다. 또한 TFTP 디렉토리의 긴 목록을 작성하여 소프트 링크가 UEFI netboot 파일을 올바르게 가리키는지 확인하십시오.

ln -s /srv/tftp/debian-installer/amd64/bootnetx64.efi /srv/tftp/
ls -l /srv/tftp/

PXE 서버는 GUID 파일, MAC 파일 및 기본 파일의 순서로 TFTP 루트 경로에서 pxelinux.cfg 디렉토리에 있는 구성 파일을 읽고 실행합니다. pxelinux.cfg 디렉토리는 이미 생성되어 필요한 PXE 기본 구성 파일로 채워져 있습니다. 이전에 Debian netinstall 아카이브에서 필요한 netboot 파일을 /srv/tftp sirectory로 추출했기 때문입니다. pxelinux.cfg 디렉토리에서 PXE 기본 구성 파일을 추가로 수정할 필요가 없습니다. 그러나 Debian의 초기 부팅 메뉴를 실제로 제어하는 파일의 이름은 txt.cfg이며 /srv/tftp/debian-installer/amd64/boot-screens/ 디렉토리. pxelinux.cfg 디렉토리의 기본 pxe 구성 파일은 실제로 txt.cfg 파일을 가리키는 소프트 링크입니다. 변경하거나 추가하려면 네트워크 부팅 프로세스 중에 커널에 전달할 다른 옵션을 선택하거나 다른 항목을 추가하거나 PXE 서버를 통해 다른 Linux 배포판을 부팅하려면 아래 명령으로 기본 txt.cfg PXE 구성 파일을 열고 적절하게 변경해야 합니다.

 nano /srv/tftp/debian-installer/amd64/boot-screens/txt.cfg

txt.cfg 파일 발췌:

label install
menu label ^Install
kernel debian-installer/amd64/linux
append vga=788 initrd=debian-installer/amd64/initrd.gz --- quiet

PXE를 통해 Debian 복구 모드를 사용하려는 경우 아래 구성으로 이 파일에 항목을 추가합니다.

label rescue
menu label ^Rescue mode
kernel debian-installer/amd64/linux
append vga=788 initrd=debian-installer/amd64/initrd.gz rescue/enable=true --- quiet

전문가 모드에서 네트워크를 통해 데비안을 부팅하는 데 필요한 항목을 추가하거나 자동 설치 모드를 사용하려면 아래 발췌 부분에 표시된 대로 txt.cfg 파일에 추가 구성을 추가합니다.

전문가 설치:

label expert
menu label ^Expert install
kernel debian-installer/amd64/linux
append priority=low vga=788 initrd=debian-installer/amd64/initrd.gz ---
include debian-installer/amd64/boot-screens/rqtxt.cfg

자동 설치:

label auto
menu label ^Automated install
kernel debian-installer/amd64/linux
append auto=true priority=critical vga=788 initrd=debian-installer/amd64/initrd.gz --- quiet

또한 이 파일의 내용을 검사하면 커널 initrd.gz 이미지가 초기 PXE 메뉴 다음에 TFTP 네트워크 프로토콜을 통해 클라이언트의 RAM 메모리에 로드되는 는 /srv/tftp/debian-installer/amd64/ 디렉토리에 있습니다. Debian 커널 및 initrd.gz의 향후 업데이트를 위해 이 두 파일만 변경할 수 있습니다.

그게 다야! 이제 네트워크를 통해 클라이언트 시스템을 부팅하고 DVD 이미지를 통해 Debian을 부팅할 때 일반적으로 표시되는 모든 항목을 사용하고 PXE 서버를 통해 Debian 9 설치를 시작할 수 있습니다.

클라이언트와 서버 간에 실시간으로 주고받는 DHCP 로그 메시지를 보려면 시스템 syslog 파일에 대해 tail 명령을 사용하십시오. DHCP 서버는 모든 로그 메시지를 syslog 파일에 버립니다. TFTP 서버 로그 메시지는 daemon.log 파일을 통해 관찰할 수 있습니다. 아래 스크린샷은 DHCP 및 TFTP 서버에서 발행한 로그 메시지의 일부를 보여줍니다.

tailf /var/log/syslog
tailf /var/log/daemon.log

TFTP 서버에서 생성된 로그 메시지를 보려면 아래 명령을 실행할 수도 있습니다.

journalctl -fu tftpd-hpa

DHCP 서버가 클라이언트에게 부여한 임대에 대한 확장 정보를 표시하려면 아래 예와 같이 cat 명령을 사용하여 dhcpd.leases 파일의 내용을 표시하십시오.

cat /var/lib/dhcp/dhcpd.leases

그게 다야! 네트워크에 PXE 서버를 성공적으로 배포했습니다. 이제 클라이언트 시스템이 PXE를 통해 부팅하도록 지시하여 네트워크를 통해 Debian 설치를 시작할 수 있습니다. 시스템 POST 초기화 중에 특수 기능 키를 눌러 클라이언트 시스템을 네트워크 부팅할 수 있습니다. 적절한 netboot 키를 찾으려면 컴퓨터 마더보드 공급업체 설명서를 참조하십시오.

네트워크를 통해 Debian을 설치하는 과정은 DVD ISO 이미지를 통해 시스템을 설치하거나 부팅 가능한 USB 플래시 드라이브를 사용하여 시스템을 설치하는 과정과 매우 비슷합니다(약간의 차이만 있음).


판권 소유. © Linux-Console.net • 2019-2024