ubuntu16.04 PXEBOOT 설치 절차 비망록

ubuntu16.04 PXEBOOT 설치 절차 비망록

2022-10-06 last update

7 minutes reading ubuntu16.04

0. 소개



자신이 근무하는 회사에서는, 보안 강화의 일환으로 DVD 미디어에의 기입이나 USB 메모리의 사용이 금지되고 있어, 종래의 하드웨어에 Linux를 인스톨하려고 해도, 과거와 같이 부담없이 할 수 없게 되어 왔습니다 했다.
거기서 자신의 PC에 세운 가상 머신에, DHCP 서버 및 TFTP 서버를 설정해, PXEBOOT로 다른 PC에 도입하는 것을 실시했으므로, 그 때의 순서를 비망록으로서 여기에 남깁니다.
PXEBoot의 순서는, 구그하면 몇가지 나옵니다만, 생각대로 움직이지 않았으므로, 이번 실시해 잘 된 내용을 여기에 기재합니다.

1. 구성도



· Ubuntu 용 서버는 유선 LAN의 입이 하나 이상 있어야합니다.
・업무 PC는, WiFi와 유선 LAN의 입이 하나 이상 있는 것.


2. 가상 머신에 Ubuntu OS 배포



① Windows PC에 VirtualBox를 도입합니다. (이번 주제가 아니기 때문에 자세한 내용은 건너 뜁니다)
② 우분투 서버 16.04 ISO 이미지를 다운로드합니다.
h tp : // / ぇ あせ s. 어쩌면. 이 m/16.04/ 에서 ubuntu-16.04.5-server-amd64.iso를 선택.
③ VirtualBox에서 새로운 가상 머신을 생성합니다. (기본은 기본 설정으로 만듭니다)
④ 네트워크 설정을 변경합니다.
어댑터 2를 활성화하고 할당에 브리지 어댑터, 어댑터 유형은 유선 NIC를 지정합니다.
⑤ 스토리지 설정에서 광학 드라이브는 ②에서 다운로드한 ISO 파일을 지정합니다.
⑥ 가상 머신을 시작하고 우분투를 설치합니다.
도중에 NIC를 선택하는 화면이 나옵니다만, enp0s3측을 선택해 주세요.
⑦ 설치 완료 후 OS를 재부팅 및 로그인합니다. (openssh 서버를 도입하면 나중에 편합니다.)
⑧sudo apt-get update에서 에러가 되지 않는 것을 확인합니다.
⑨ IP 주소를 확인한다.
enp0s3이 NAT 10.0.2.15/24, enp0s8이 IP 주소가 없는지 확인한다.

명령
$ ip a
(中略)
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether XX:XX:XX:XX:XX:XX brd ff:ff:ff:ff:ff:ff
    inet 10.0.2.15/24 brd 10.0.2.255 scope global enp0s3
       valid_lft forever preferred_lft forever
    inet6 xxxx::xxxx:xxxx:xxxx:xxxx/64 scope link
       valid_lft forever preferred_lft forever
3: enp0s8: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether XX:XX:XX:XX:XX:XX brd ff:ff:ff:ff:ff:ff

3. DHCP 서버 설정



① 유선 NIC의 IP 주소를 설정합니다.

명령
$ sudo vi /etc/network/interfaces

다음을 추가합니다.
auto enp0s8
iface enp0s8 inet static
address 192.168.0.1
netmask 255.255.255.0

여기에서는 192.168.0.1/24를 설정합니다.
설정 후 OS를 재부팅합니다.

명령
$ sudo reboot

명령
$ ip a
(中略)
3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether XX:XX:XX:XX:XX:XX brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.1/24 brd 192.168.0.255 scope global enp0s8
       valid_lft forever preferred_lft forever
    inet6 xxxx::xxxx:xxxx:xxxx:xxxx/64 scope link
       valid_lft forever preferred_lft forever

② DHCP 서버의 모듈을 도입합니다.

명령
$ sudo apt install -y isc-dhcp-server

③ DHCP 서버에서 사용하는 인터페이스에 유선 NIC를 지정합니다.

명령
$ sudo vi /etc/default/isc-dhcp-server
INTERFACES="enp0s8"

④ DHCP 서버를 설정합니다.

명령
$ sudo vi /etc/dhcp/dhcpd.conf
default-lease-time 600;
max-lease-time 7200;

subnet 192.168.0.0 netmask 255.255.255.0 {
  option routers 192.168.0.1;
  option subnet-mask 255.255.255.0;
  option domain-name-servers 8.8.8.8, 8.8.4.4;
}

host ubuntu1 {
  hardware ethernet XX:XX:XX:XX:XX:XX; #UbuntuサーバのNICのMACアドレスに置換
  next-server 192.168.0.1;
  fixed-address 192.168.0.11;
  filename "pxelinux.0";
}

명령
$ sudo systemctl enable isc-dhcp-server
$ sudo systemctl restart isc-dhcp-server

⑤ 가상 머신을 GW로 하기 위해 IP 마스커레이드를 설정합니다.

명령
$ sudo sysctl -w 'net.ipv4.ip_forward=1'
$ sudo iptables -t nat -F
$ sudo iptables -F
$ sudo iptables -L

$ sudo iptables -t nat -A POSTROUTING -o enp0s3 -j MASQUERADE
$ sudo iptables -A FORWARD -i enp0s3 -o enp0s8 -m state --state RELATED,ESTABLISHED -j ACCEPT
$ sudo iptables -A FORWARD -i enp0s8 -o enp0s3 -j ACCEPT

설정을 저장합니다.

명령
$ sudo apt install -y iptables-persistent

4. TFTP 서버 설정



①TFTP 서버 모듈을 도입합니다.

명령
$ sudo apt-get install -y tftpd-hpa

② 우분투의 netboot.tar.gz를 다운로드합니다.

명령
$ cd /var/lib/tftpboot
$ sudo wget http://archive.ubuntu.com/ubuntu/dists/xenial-updates/main/installer-amd64/current/images/netboot/netboot.tar.gz

③netboot 파일군을 TFTP용 디렉토리에 배치합니다.

명령
$ sudo tar xvzf netboot.tar.gz

④ TFTP 서버를 다시 시작합니다.

명령
$ sudo systemctl restart tftpd-hpa.service

5. Ubuntu용 PC를 PXEBOOT 모드로 부팅



① LAN 케이블을 Ubuntu용 PC와 WindowsPC에 연결합니다.
② Ubuntu용 PC의 BIOS 화면에서 PXEBoot하는 설정을 하고 부팅합니다.
③ 우분투 설치 프로그램이 시작되는지 확인합니다.

이것으로 PXEBoot 설치 절차가 완료되었습니다.