네트워크를 통해 부팅할 Linux 이미지 만들기. PXE를 통해 네트워크를 통해 Ubuntu 설치

꽤 오랫동안 다양한 미디어를 사용하지 않고 로컬 네트워크를 통해 네트워크에 Ubuntu를 설치하고 PXE를 통해서만 부팅하는 방법에 대한 기사를 썼습니다. 이번에는 기사를 업데이트하고 현대 현실에 더 가깝게 만들고 가장 중요한 것은 기능을 확장하기로 결정했습니다. 모든 것은 우분투 14.04를 예로 사용하여 수행됩니다!

서로 다른 요구 사항에 따라 서로 다른 솔루션이 있어야 합니다. 주된 걸림돌은 종종 하나의 운영 체제가 아니라 여러 개가 필요하다는 것입니다. 그래서 나는 이 주제에 관한 글을 쓰기로 결심했다. 지난 글은 링크에서 보실 수 있습니다.
주요 아이디어는 우리가 설치할 운영 체제와 비트 깊이를 선택할 기회가 있다는 것입니다. 실제로 로컬 네트워크를 통해 시스템을 부팅하면 부팅 메뉴가 생깁니다.
방금 출시된 Ubuntu 14.04의 예를 사용하여 이 모든 것을 구현할 것입니다.

이해하지 못하는 사람들을 위해 설치할 운영 체제와 비트 깊이를 선택할 수 있도록 모든 것이 시작됩니다. 다음과 같이 네트워크를 통해 설치할 수 있는 모든 운영 체제가 표시되는 메뉴가 나타납니다.

우분투_14.04x86
우분투_14.04amd64
업무를 위해서는 다음이 필요합니다.
꼭!
1) 예를 들어 구성된 게이트웨이는 다음 문서를 사용합니다.
2) DHCP 서버, 예를 들어 다음 문서를 사용할 수 있습니다.
3) PXE 부트로더를 로드하는 구성된 TFTP 서버는 다음 문서를 사용합니다.

선택 과목!
3) 필수 사항은 아니지만 추가 사항은 구성된 DNS 서버 일 수 있습니다. 예는 기사에 있습니다.

게이트웨이, DHCP, TFTP 서버를 구성하고 PXE 부팅 메뉴도 추가했다고 가정합니다. 나는 이 시점에서 멈추지 않을 것이다.

설치된 시스템 설정으로 넘어 갑시다.
먼저 적절한 비트의 설치 디스크가 필요한 Ubuntu 14.04x86의 설치 지점을 만듭니다. 시스템 설치 프로그램 부트로더 파일을 추출하려면 다운로드하고 마운트해야 합니다.
왜냐하면 디렉토리 디렉토리에 네트워크 로더 파일이 있습니다. /var/lib/tftpboot/그런 다음 설치 디스크의 파일을 여기에 넣으려면 Ubuntu 디렉토리를 만들어야합니다. 다음을 수행하십시오.
mkdir /var/lib/tftpboot/우분투
Uubntu 디렉토리에서 각각 x86 비트 시스템 및 ADM64용 OS 설치 프로그램 부트로더 파일용 추가 디렉토리를 생성합니다.
mkdir /var/lib/tftpboot/ubuntu/x86 mkdir /var/lib/tftpboot/ubuntu/amd64

이제 설치 디스크를 다운로드해야 합니다. 여기에서 mirror.yandex.ru/ubuntu-releases/14.04/를 볼 수 있습니다.
서버용 x86 버전을 다운로드합니다. 그녀는 덜 무게
wget http://mirror.yandex.ru/ubuntu-releases/14.04/ubuntu-14.04-server-i386.iso
ISO 이미지 다운로드가 완료되면 필요한 파일을 추출하기 위해 ISO 이미지를 마운트해야 합니다. 이를 위해 디렉토리에 /미디어우리는 디렉토리를 만들 것입니다 이소, 그걸하자:

mkdir /미디어/iso
이 디렉터리에 디스크 이미지를 마운트합니다.
스도 수
ubuntu-14.04-server-i386.iso /media/iso/ 마운트
시스템은 디스크가 읽기 모드로 마운트되었음을 ​​표시합니다.

mount: warning: /media/iso/가 읽기 전용으로 마운트된 것 같습니다.
부트로더와 인스톨러 코어를 선택하러 갑시다:
cd /media/iso/install/netboot/ubuntu-installer/i386/

우리는 2개의 파일에 관심이 있습니다 리눅스그리고 initrd.gz, 선택하여 디렉토리로 이동해야 합니다. /var/lib/tftpboot/우분투/x86
복사해 봅시다:
cp 리눅스 /var/lib/tftpboot/ubuntu/x86 cp initrd.gz /var/lib/tftpboot/ubuntu/x86

더 이상 설치 이미지가 필요하지 않습니다. 먼저 iso 디렉토리에서 마운트 해제합니다.
언마운트 /media/iso/

그런 다음 ISO 이미지를 삭제할 수 있습니다.
우리는 x64 비트 깊이의 설치 디스크 이미지에 대해 유사한 작업을 수행합니다. 무엇을 어디에 설명하지 않고 명령 목록 만 제공하고 작업은 동일하며 경로 만 약간 다릅니다. 거기 AMD64

Wget http://mirror.yandex.ru/ubuntu-releases/14.04/ubuntu-14.04-server-amd64.iso

ubuntu-14.04-server-amd64.iso /media/iso/ 마운트

cd /media/iso/install/netboot/ubuntu-installer/amd64/

cp 리눅스 /var/lib/tftpboot/ubuntu/amd64 cp initrd.gz /var/lib/tftpboot/ubuntu/amd64

마운트 해제 /media/iso/

설치 파일 작업을 마쳤습니다. 이제 PXE 부팅 메뉴를 구성하겠습니다.

PXE 부팅 메뉴 사용자 지정
먼저 이름이 있는 메뉴 항목을 추가하겠습니다. 리눅스 설치, 이를 위해 파일을 편집해야 합니다.
나노 /var/lib/tftpboot/pxelinux.cfg/default

파일 끝에 항목을 추가합니다.
LABEL Linux 설치 MENU LABEL ^Linux 커널 설치 vesamenu.c32 추가 pxelinux.cfg/linux.menu

게시물에서 볼 수 있듯이 설치를 위한 배포판을 선택할 수 있는 다른 페이지가 있습니다. 생성해 보겠습니다.

나노 /var/lib/tftpboot/pxelinux.cfg/linux.menu

설치할 운영 체제를 선택할 수 있는 기능을 사용하여 다운로드할 항목의 이름을 추가하겠습니다. 우분투 14.04 x86그리고 AMD64아키텍처:
레이블 Ubuntu 14.04x86 설치 MENU 레이블 ^Ubuntu 14.04x86 커널 ubuntu/x86/linux 추가 initrd=ubuntu/x86/initrd.gz =ubuntu/amd64 /initrd.gz

이렇게 하면 설정이 완료되고 클라이언트 시스템을 연결하고 PXE를 통해 부팅을 시도할 수 있습니다. 결과적으로 네트워크를 통해 시스템을 부팅하면 다음과 같은 메뉴가 표시됩니다.

설치하려는 것을 선택하면 설치가 자동으로 시작된 다음 시스템 설치 프로그램의 지시를 따르십시오.
다른 운영 체제도 비슷한 방식으로 추가됩니다.
이상으로 오늘은 이만 마치겠습니다.
음, 항상 그렇듯이 질문이 있으면 의견에, 오류를 발견하면 개인 또는 이메일로 작성하십시오.

서버 실에서는 CD / DVD 드라이브가없는 서버가 점점 더 많이 등장합니다. 때때로 운영 체제를 설치해야 하며 네트워크 설치가 이에 크게 도움이 될 수 있습니다. 서버를 켜고 설치를 시작하기만 하면 됩니다. 네트워크 카드는 PXE 기술을 지원해야 합니다. PXE - Pre-Boot Execution Environment - 네트워크를 통해 부팅할 수 있습니다.

그러나 PXE만으로는 완전한 행복을 얻을 수 없습니다. 설치를 완전히 자동화할 수 있는 기술은 킥스타트(Red Hat에서 개발)입니다. 그 본질은 간단합니다. 설치 중에 필요할 수 있는 모든 옵션의 값을 포함하는 파일을 미리 컴파일합니다. 또한 설치 전후에 스크립트를 실행하여 향후 OS에 대한 설정을 지정할 수 있습니다.

kickstart를 사용하여 일반적인 Linux 키트를 설치하는 데 5-7분이 걸립니다.

설치 서버에는 3개의 서비스와 1개의 패키지가 필요합니다.


  • DHCP는 클라이언트에 네트워크 자격 증명을 제공합니다.

  • TFTP는 네트워크를 통해 파일을 공유하는 쉬운 방법입니다.

  • Syslinux에는 pxelinux.0 로더와 기타 파일이 포함되어 있습니다.

  • NFS는 네트워크를 통해 파일 시스템에 대한 액세스를 제공합니다.
설치 프로세스는 다음 단계로 나눌 수 있습니다.

  1. pxe - pxe 펌웨어는 BIOS에서 네트워크 설치를 설정하거나 HDD에서 MBR을 찾을 수 없을 때 작업을 시작합니다.

  2. DHCP 1단계 - 클라이언트는 로더 파일(pxelinux.0)의 이름뿐 아니라 tftp 서버의 네트워크 세부 정보와 주소를 받습니다. 기본적으로 TFTP 서버는 DHCP 서버입니다.

  3. TFTP - pxelinux.0 부트로더는 TFTP 서버에 액세스하여 Linux 커널인 initrd.img(초기 RAM 디스크, 임시 파일 시스템)를 요청합니다.

  4. 커널 - 제어를 Linux 커널로 이전합니다.

  5. DHCP 2단계 - Linux 커널은 DHCP 서버에 요청하여 네트워크 자격 증명과 NFS 서버 주소를 얻습니다.

  6. NFS - NFS 파티션이 마운트되는 단계

  7. init - /sbin/init가 시작되고 제어가 전송됩니다. Init은 시스템의 주요 프로세스이고 다른 프로세스는 init의 하위 프로세스입니다.
무료 프레젠테이션:

DHCP 서버는 네트워크에서 bootp 요청을 수신합니다. 요청을 받은 후 소스 MAC 주소를 살펴보고 그러한 MAC 주소에 해당하는 항목이 있으면 작업을 시작합니다. DHCP 서버는 클라이언트 네트워크 세부 정보(IP 주소, 게이트웨이, DNS 서버 등)를 제공하고 TFTP 서버를 사용하는 TFTP 프로토콜을 사용하여 pxelinux.0 부팅 이미지를 보냅니다. 이 이미지는 OS 선택 메뉴를 표시하기에 충분합니다.

OS를 선택한 후 설치 소스인 NFS 서버를 선택하는 과정에서 커널 로드를 시작하고 설치를 시작합니다. 향후 운영 체제의 준비된 콘텐츠를 NFS 서버에 업로드하고 해당 디렉터리를 내보냈는지 확인해야 합니다.

DHCP

DHCPD를 설치하고 시작에 추가하십시오.
# yum -y dhcp 설치
# chkconfig dhcpd 켜기

다음과 같이 /etc/dhcpd.conf 파일을 만듭니다.

ddns-update-style 임시;
클라이언트 업데이트를 무시합니다.
서브넷 192.168.146.0 넷마스크 255.255.255.0(
옵션 라우터 192.168.146.1;
옵션 서브넷 마스크 255.255.255.0;
옵션 도메인 이름 "domain.local";
옵션 도메인 이름 서버 192.168.146.1;
기본 임대 시간 21600;
최대 임대 시간 43200;
bootp 허용;
부팅 허용;
호스트 유닉스박스(
하드웨어 이더넷 00:0c:29:77:9c:9c;
고정 주소 192.168.146.128;
파일명 "pxelinux.0";
옵션 호스트 이름 "unixbox";
다음 서버 192.168.146.1;
}
}

DHCPD를 시작하거나 시작된 경우 재부팅합니다.
# 서비스 dhcpd 재시작

기본적으로 활성화되어 있는 방화벽을 비활성화합니다(그렇지 않으면 부팅 시 대상 컴퓨터에 "ICMP 대상에 연결할 수 없음(호스트 관리상 금지됨)" 오류가 표시됨).
# 서비스 iptables 중지
# chkconfig iptables 끄기

TFTP

저장소에서 tftp-server 패키지를 설치합니다.
# yum -y 설치 tftp 서버

이제 xinetd 구성에서 tftp를 활성화해야 합니다. 이를 위해 /etc/xinetd.d/tftp 파일에서 "disable = yes"를 "disable = no"로 변경하고 xinetd를 활성화합니다.
# 서비스 xinetd 시작

tftp 서버 포트가 수신 대기 중인지 확인합니다(tftp는 포트 69에서 실행 중임).
# netstat -nlp | grep:69
UDP 0 0 0.0.0.0:69 0.0.0.0:* 3105/xinetd

시스리눅스

패키지에는 네트워크를 통해 다운로드할 수 있는 파일 세트가 포함되어 있습니다. DHCP를 통해 부팅 이미지로 제공할 pxelinux.0 과 보다 매력적인 사용자 메뉴를 그릴 menu.c32 가 필요합니다. (CentOS 4의 경우 종속성이 있는 업데이트된 syslinux는 rpmfind.net에서 다운로드할 수 있습니다.)

# cp $(rpm -ql syslinux | grep menu.c32) /tftpboot/
# cp $(rpm -ql syslinux | grep pxelinux.0) /tftpboot/

NFS

기본적으로 시스템에는 NFS가 있을 가능성이 높으며 그렇지 않은 경우 yum을 사용하여 설치합니다.
# chkconfig nfs 켜짐

/etc/exports 파일에 항목을 추가합니다.
echo "/var/install-server/ *(ro,no_root_squash)" >> /etc/exports

nfs 서버 시작:
# 서비스 nfs 시작

디렉터리를 내보냈는지 확인합니다.
# 내보내기
/var/설치 서버

tftp 서버의 구조를 만들고 서버에 콘텐츠를 추가합니다.
# mkdir -p /tftpboot/(pxelinux.cfg,centos5_x86)
# mkdir -p /var/install-server/centos5_x86

CentOS 5로 DVD를 마운트하고 콘텐츠를 /var/install-server/centos5_x86에 업로드합니다.
# 마운트 /dev/cdrom /mnt/
# cp -r /mnt/* /var/install-server/centos5_x86/
# cp /var/install-server/centos5_x86/images/p xeboot/* /tftpboot/centos5_x86/

/tftpboot/pxelinux.cfg 디렉토리에서 기본 파일을 만들고 아래와 같이 입력합니다.
기본 메뉴.c32

프롬프트 0
타임아웃 100

커널 /centos5_x86/vmlinuz
추가 initrd=/centos52_x86/initrd.img
레이블 종료
로컬 부트 0

네트워크를 통해 OS 설치

위에서 설명한 모든 조작이 끝나면 OS 설치를 진행할 수 있습니다. BIOS에서 네트워크 부팅을 활성화하여 MAC 주소 00:0c:29:77:9c:9c로 시스템을 시작합니다. 설치가 시작되면 OS를 설치할 위치 목록에서 NFS를 선택해야 한다는 점을 제외하고 표준 방식으로 모든 작업을 수행한 다음 요청 시 다음을 표시합니다.
NFS 서버 이름: 192.168.146.1
CentOS 디렉토리: /var/install-server/centos5_x86

Kickstart로 설치 자동화

자동화하려면 설치 프로세스 중에 필요할 수 있는 모든 필수 정보가 포함된 파일을 만들어야 합니다. 이러한 파일은 X Window가 설치된 모든 CentOS에서 system-config-kickstart(GUI 도구) 프로그램에 의해 생성됩니다.
# yum -y install 시스템 구성 킥스타트
# 시스템 구성 킥스타트

system-config-kickstart를 사용하여 파일을 생성한 후 이를 설치 서버로 전송하고 HTTP, NFS 또는 FTP 프로토콜 중 하나를 통해 사용할 수 있도록 해야 합니다. 설치 서버 작업에 NFS가 활발하게 사용되기 때문에 이를 사용하도록 하겠습니다.

필자의 경우 킥스타트 파일은 /var/install-server/centos5_x86/centos5_ x86_ks.cfg 에 있습니다.

/tftpboot/pxelinux.cfg/default에서 해야 할 일은 킥스타트 파일의 위치와 함께 ks 지시어를 추가하는 것뿐입니다. 킥스타트 파일의 예:
기본 메뉴.c32
메뉴 제목 Linux 설치 서버. 설치할 OS를 선택하세요.
프롬프트 0
타임아웃 100
레이블 CentOS 5 x86 사용자 정의 설치
커널 /centos5_x86/vmlinuz
추가 initrd=/centos5_x86/initrd.img
라벨 CentOS 5 x86 킥스타트 설치
커널 /centos52_x86/vmlinuz
추가 initrd=/centos5_x86/initrd.img ks=nfs:192.168.146.1:/var/install-server/c entos5_x86/centos5_x86_ks.cfg
레이블 종료
로컬 부트 0

이제 OS 선택 메뉴에서 "CentOS 5 x86 Kickstart Install"을 선택했으므로 OS가 설치된 서버만 기다리면 됩니다.

아래는 내 Kickstart 파일의 예입니다. 설치된 OS가 sshd 설정에서 "PermitRootLogin yes" 옵션을 갖기를 원했습니다. 킥스타트 파일을 사용하면 OS 설치 매개변수를 설정할 수 있을 뿐만 아니라 설치 전(%pre)과 설치 후(%post) 스크립트를 실행할 수도 있습니다. 따라서 많은 튜닝 스크립트를 작성하고 설치 후 5~10분 만에 완전히 완성된 OS를 얻을 수 있습니다.

#platform=x86, AMD64 또는 인텔 EM64T
# 시스템 인증 정보
인증 --useshadow --enablemd5
# 시스템 부트로더 구성
부트로더 --위치=mbr
# 마스터 부트 레코드 지우기
제롬브르
# 파티션 정리 정보
clearpart --all --initlabel
# 텍스트 모드 설치 사용
텍스트
# 방화벽 구성
방화벽 --비활성화
# 처음 부팅할 때 설정 에이전트 실행
처음 부팅 --비활성화
# 시스템 키보드
키보드 미국
# 시스템 언어
lang en_US
# 설치 로깅 수준
로깅 --레벨=정보
# NFS 설치 미디어 사용
nfs --server=192.168.146.1 --dir=/var/install-server/centos5_x86
# 네트워크 정보
네트워크 --bootproto=dhcp --device=eth0 --onboot=on
#루트 암호
rootpw --iscrypted $1$Bz09jb2I$hfzh2vApqMjG0sEPsAwNr/
# SELinux 구성
selinux --비활성화
# X 윈도우 시스템을 구성하지 마십시오
스킵
# 시스템 시간대
시간대 유럽/모스크바
# 업그레이드 대신 OS 설치
설치하다
# 디스크 파티션 정보
부품 교환 --inode당 바이트 수=4096 --fstype=”교환” --size=512
부분 / --inode당 바이트 수=4096 --fstype="ext3" --grow --size=1

%post --interp /bin/bash
PATH=/뭔가
/빈/mkdir $PATH
/bin/sed -e 's/#PermitRootLogin 예/PermitRootLogin 예/g' /etc/ssh/sshd_config > $PATH/sshd_config_edited
/bin/cp $PATH/sshd_config_edited /etc/ssh/sshd_config
/빈/rm -rf $PATH

이 기사에서는 네트워크 부팅 리포지토리에서 Ubuntu Linux 설치에 대해 설명합니다.

따라서 네트워크 부팅 서버와 dhcpd를 호스팅하는 서버 192.168.0.3에서 클라이언트 컴퓨터에 Ubuntu 10.04를 설치합니다. 설치하려면 저장소에 dists/lucid/main/debian-installer 디렉토리가 있어야 합니다. 다른 리포지토리(멀티버스, 유니버스, 제한됨)에 대해 유사한 디렉터리를 추가하면 "소프트웨어 선택 및 설치" 단계에서 소프트웨어 목록이 더 커집니다. 이 가이드에서는 이 옵션을 고려할 것입니다. debmirror 미러를 만든 경우 이러한 디렉터리가 전혀 없을 가능성이 큽니다. 예를 들어 ftp://mirror.yandex.ru에서 다운로드할 수 있습니다. 또한 설치 중에 설치 프로그램은 선택한 리포지토리에 관계없이 security.ubuntu.com에 액세스하는 경우가 많습니다.

1단계: 서버 설치

필수 애플리케이션 설치:

apt-get 설치 tftpd-hpa openbsd-inetd

네트워크 설치용 이미지를 다운로드하고 압축을 풉니다.

tar -xvzf netboot.tar.gz -C /var/lib/tftpboot/

chown -R 아무도:nogroup /var/lib/tftpboot

네트워크 부팅을 위해 클라이언트에 2개의 매개변수를 전달해야 합니다: 부팅 파일의 이름과 부팅 파일의 서버(dhcpd에서는 파일 이름과 next-server 매개변수임):

다음 서버 192.168.0.3;
파일명 "pxelinux.0";

서버가 설치되어 있으면 시스템을 설치할 수 있습니다.

2단계: 시스템 설치

네트워크의 서버에서 시스템을 설치하려면 BIOS에서 네트워크 부트(PXE)를 활성화해야 합니다. BIOS가 부팅 메뉴를 지원하는 경우 부팅 장치를 선택하는 데 사용하는 것이 좋습니다. 그러면 부팅 순서를 변경하는 것을 잊은 경우 문제가 발생하지 않습니다.

모든 것이 정상이면 설치 프로그램 시작 화면이 표시됩니다.

  • 기본 우분투 서버
  • 네임서버(DNS)
  • 에듀분투 서버
  • 램프 서버
  • 메일 서버
  • openSSH 서버
  • PostgreSQL 데이터베이스
  • 인쇄 서버
  • 삼바 파일 서버
  • 우분투 엔터프라이즈 클라우드
  • 가상 머신 호스트
  • 2D/3D 제작 및 편집 제품군
  • 오디오 제작 및 편집 제품군
  • 에두분투 KDE 데스크탑
  • 에두분투 데스크탑
  • 쿠분투 데스크탑
  • 쿠분투 넷북
  • LADSPA 및 DSSI 오디오 플러그인
  • 다양한 글꼴 패키지 선택
  • Mythbuntu 추가 역할
  • Mythbuntu 프론트엔드
  • Mythbuntu 마스터 백엔드
  • Mythbuntu 슬레이브 백엔드
  • 우분투 넷북
  • 우분투 데스크탑
  • 비디오 제작 및 편집 제품군
  • 우분투 데스크탑
  • 수동 패키지 선택

오늘날 점점 더 많은 작업이 자동화되고 있으며 서버 성능을 최대화하기 위해 가상화가 점점 더 많이 사용되고 있습니다. 하지만 여전히 OS를 설치해야 합니다. 누구나 자신의 방식으로 수행합니다. 누군가는 모든 경우에 다양한 이미지가 가득한 주머니를 가지고 있고, 구식 방식의 누군가는 디스크가있는 "지갑"또는 두 개를 가지고 다닙니다. 일반적으로 관리자는 이 작업을 별로 좋아하지 않습니다. 사소한 작업 시간을 줄이는 방법, 관리자의 참여 없이 로컬 네트워크만 사용하여 컴퓨터가 스스로 시스템을 설치하도록 가르치는 방법을 살펴보겠습니다.

오늘은 네트워크를 통해 Windows 및 Linux 설치, 작은 ISO 이미지 로드, 유용한 소프트웨어(모든 종류의 Kaspersky, Acronis, WinPE, memtests), 씬 클라이언트 배포 및 관리 방법을 알아봅니다. 예를 들어 RDP를 통해 1C와 함께 일하는 회계사가 그녀의 Windows가 충돌하여 어제 보고서를 준비해야했기 때문에 당신을 때리지 않도록 ... 또는 컴퓨터를 업데이트하고 싶지 않은 인색 한 상사가 당신을 존경했습니다. 그가 오래된 컴퓨터에서 Windows 8이 어떻게 작동하는지 볼 때 전문성 ... 우리의 교활한 목표를 달성하는 데 네트워크를 통한 부팅 (PXE)을 제공하는 서버가 도움이 될 것입니다.

모든 시스템 관리자는 긴급 컴퓨터 소생을 위해 보관함에 범용 USB 드라이브를 가지고 있습니다. 하나의 네트워크 카드만 사용하여 동일한 기능을 사용하는 것이 훨씬 낫습니다. 동시에 한 번에 여러 노드로 동시에 작업할 가능성에 주목하지 않는 것은 불가능합니다. 따라서 필요에 따라 PXE 또는 LTSP를 사용하는 두 가지 솔루션이 있습니다.

LTSP는 우리에게 그다지 적합하지 않습니다. LTSP 서버 응용 프로그램을 사용할 수 있도록 네트워크를 통해 서버 자체에 설치된 OS를 로드하도록 설계되었습니다. 이것은 정확히 우리에게 필요한 것이 아닙니다. PXE는 LTSP처럼 로컬 스토리지 미디어를 사용하지 않고 네트워크를 통해 컴퓨터를 부팅하는 도구입니다. PXE를 사용하면 범용 "USB 인공호흡기"와 유사한 다중 부팅 부팅 메뉴를 구성할 수 있습니다.


우리는 무엇을 구현할 것인가?

이 모든 것은 SliTaz 또는 Kolibri OS와 같은 소규모 시스템의 Live CD를 부팅할 수 있는 기능과 함께 네트워크를 통해 Ubuntu/Debian 서버를 원격으로 설치하기 위한 도구가 필요하다는 점에서 시작되었습니다.
그들이 말했듯이 식욕은 식사와 함께 제공됩니다. 그들은 계획된 것을 깨닫지 못했고 많은 "위시리스트"가 계획에 추가되었습니다. 결과적으로 목록은 매우 인상적이었습니다.

  1. Thinstation Linux 기반 씬 클라이언트.
  2. 리눅스 섹션.
    1. 우분투 14.04 x86 설치.
    2. 우분투 14.04 x64 설치.
    3. 우분투 12.04 x86 설치.
    4. 우분투 12.04 x64 설치.
  3. 윈도우 섹션.
    1. 윈도우 2012 설치.
    2. 윈도우 7 설치.
  4. 아크로니스.
    1. 유용한 소프트웨어 패키지가 포함된 Windows PE.
    2. 아크로니스 트루 이미지.
      1. 레거시 BIOS.
      2. UEFI.
    3. Acronis 디스크 관리자.
      1. 레거시 BIOS.
      2. UEFI.
  5. 카스퍼스키 레스큐 v 10.
  6. ISO 이미지를 통한 ERD Commander 5-8.
  7. memtest.

우리는 모든 것을 모아서 이륙합니다

서버용 배포 키트로 Ubuntu Server 14.04.2 LTS를 선택했습니다. 다른 OS에서 멈출 수 있으며 차이점은 구문에만 있습니다. 시작하겠습니다. NFS 네트워크 파일 시스템을 구성하기 위한 서비스인 TFTP, DHCP(동일한 서버에 선택적으로 설치, 라우터가 DHCP 서버 역할을 할 수 있음)가 필요합니다. 주제의 틀 내에서 관심 있는 설정만 고려할 것입니다. 우선, 이전에 모든 업데이트를 수행한 후 필요한 모든 것을 설치하십시오.

회원만 계속 사용 가능

옵션 1. "사이트" 커뮤니티에 가입하여 사이트의 모든 자료 읽기

지정된 기간 동안 커뮤니티에 가입하면 모든 Hacker 자료에 액세스할 수 있고 개인 누적 할인이 증가하며 전문적인 Xakep 점수 등급을 축적할 수 있습니다!

최소한 한 번 이상 관리 업무를 맡는 모든 사람은 컴퓨터에 운영 체제를 설치해야 했습니다. 그리고 종종 모든 것이 다음과 같이 발생합니다. 이미지가 다운로드되고 디스크 또는 플래시 드라이브에 기록되고로드 및 설치됩니다. 그러나 플래시 드라이브 나 디스크가없고 어제 설치가 필요하다는 것이 밝혀 질 수 있습니다. 그러면 네트워크를 통해 부팅 할 수 있으며 이와 관련하여 Linux에는 특별한 문제가 없습니다. 일반적인 구성은 묶음입니다. DHCP, TFTP그리고 NFS. 그러나 나는 손에 세트가 없었습니다. NFS, 하지만 삼바. 그래서 어떻게 사용하는지 알아내야 했어요 삼바대신에 NFS.

그런건 아닌거 같고 설정을 바꾸고 그게 다인데 처음에 뭔가 안맞아서 무당을 해야했는데...

하지만 여기서 처음부터 시작하겠습니다. 따라서 먼저 배포 키트를 구해야 합니다. 우리가 넣어 이후 리눅스 민트, 신선한 이미지를 찾고 있습니다. 우리에게 맞는 배포 키트를 다운로드합니다. 친구, 그러나 분명히 중요하지 않습니다). 이미지를 다운로드한 후 이미지 파일에 액세스해야 합니다. 일부 가이드는 이미지를 압축해제하라고 권장하지만 그렇게 하는 것이 요점을 보지 못하므로 이미지를 다음과 같이 마운트하는 것이라는 견해를 지지합니다. 고리. 기존 순서를 방해하지 않기 위해 이미지를 마운트할 새 디렉토리를 생성하기만 하면 됩니다.

# mkdir /mnt/mint
# 마운트 -o 루프 /home/user/download/linuxmint-17-mate-64bit-v2.iso /mnt/mint

다음 단계는 설치 프로그램이 읽을 수 있도록 네트워크를 통해 파일을 사용할 수 있도록 하는 것입니다. 위에서 말했듯이 나는 이 목적을 위해 삼바. 따라서 구성 파일을 열고 다음 섹션을 추가하여 새 공유를 추가합니다.


경로 = /mnt/민트
사용 가능 = 예
탐색 가능 = 예
공개 = 예
쓰기 가능 = 아니요

기본 설정에서 작동해야 함 삼바. 작동하지 않으면 직접 무언가를 변경했을 가능성이 높으므로 문제 해결 방법을 찾을 수 있습니다. 그래서 우리는 공을 추가했습니다 민트, 네트워크에서 설치할 파일을 가져올 수 있습니다. 다시 시작하는 것을 잊지 마십시오 삼바새 설정을 수락합니다.

을 위한 아치리눅스:

# systemctl 재시작 smbd
# systemctl 재시작 nmbd

을 위한 젠투:

# /etc/init.d/samba 재시작

다음으로 네트워크 로더를 준비해야 합니다. 이 프로그램은 우리를 도울 것입니다 tftp-hpa. 안에 아치리눅스그리고 안으로 젠투패키지라고 합니다. ftp 서버의 작업 디렉토리에 부트로더 파일을 배치해야 합니다. /srv/tftp). 마운트된 이미지에서 커널과 initrd를 복사합니다.

# cp /mnt/mint/casper/(vmlinux,initrd.lz) /srv/http

# cp /usr/lib/syslinux/bios/(pxelinux.0,menu.c32,ldlinux.c32,libutil.c32) /srv/http

기본 메뉴.c32
LABEL 리눅스 민트
커널 vmlinuz
APPEND showmounts toram root=/dev/cifs boot=casper netboot=cifs nfsroot=//192.168.0.1/mint NFSOPTS=-oguest,ro initrd=initrd.lz nosplash

어디 192.168.0.1 - 우리가 베팅할 머신과 관련된 IP 주소. 아, 그리고 NFS거기 - 이것은 오타가 아닙니다. 시프,다음과 같이 유형 옵션을 전달해야 합니다. nfs,이유를 말할 수 없습니다. toram 옵션에 특별한주의를 기울여야합니다. 토람 옵션이 없으면 모든 것이 중간에 떨어지고 부팅 할 수 없기 때문입니다 (아마도 이것은 삼바의 기능 일 수 있습니다). 그러나이 옵션을 사용하면 대상 시스템에 설치 프로그램을 복사하기에 충분한 RAM이 있어야 함을 기억해야 합니다. TFTP 서버를 시작해야 합니다. 을 위한 아치리눅스:

# systemctl tftpd.socket 시작

을 위한 젠투:

# /etc/init.d/in.tftpd 시작

이제 대상 컴퓨터의 BIOS에 로드된 위치를 어떻게든 알려야 합니다. 이것은 우리를 도울 것입니다 DNS 마스크(반드시 그런 것은 아니지만 다른 DHCP 서버를 사용할 수 있습니다. 여기서는 당시에 있었던 내용을 설명합니다). IP 배포 설정(옵션 DHCP 범위) 귀하의 재량에 따라 기계 간의 "네트워크"에 따라. 설치에는 세 가지 옵션만 필요합니다.

dhcp-boot=/pxelinux.0
dhcp-option=vendor:PXEClient,6,2b
pxe-service=x86PC, "리눅스 설치", pxelinux

구성에 추가해야 합니다. DNS 마스크, 물론 실행(또는 다시 시작)합니다.

을 위한 아치리눅스:

# systemctl 시작 dnsmasq

을 위한 젠투:

# /etc/init.d/dnsmasq 시작

모든 것이 작동하려면 포트가 켜져 있어야 합니다. DHCP(UDP 67.68), TFTP(UDP 69) 삼바(UDP 137,138, TCP 139,445)가 열려 있어야 합니다. 방화벽 구성 시 이를 고려해야 합니다. 방화벽이 없거나 인터페이스가 완전히 열려 있으면 작동합니다.

메모: 시스템이 지속적으로 업데이트되기 때문에 지정된 파일 경로가 유효하지 않을 수 있습니다. 즉, 시스템의 경로와 다를 수 있습니다. 따라서 시스템의 패키지 구조를 주의 깊게 살펴보십시오.