2019/01/27

iscsi 방식 pxe boot install

nas: 파일전송 방식(서버에 다운로드 작업 후 전송)
das: 블록 전송 방식(서버에 직접 접근 작업)

iscsi 프로토콜을 사용해 NAS를 DAS 처럼 사용 한다.
스토리지 장비에서 반틈을 das, 또 다른 반틈은 NAS를 사용할 때 iscsi 방식을 사용한다.

iPXE 부팅

필수 패키지 설치
apt-get -y install tftpd-hpa isc-dhcp-server build-essential samba liblzma-dev mkisofs unzip iscsitarget

syslinux 다운로드 및 설치
cd /usr/src
mkdir pxe
cd pxe
wget https://www.kernel.org/pub/linux/utils/boot/syslinux/6.xx/syslinux-6.03.tar.gz
tar -zxvf syslinux-6.03.tar.gz
cd syslinux-6.0.3
make #this will fail, it's ok
cp ./bios/core/pxelinux.0 /var/lib/tftpboot/
cp ./bios/com32/elflink/ldlinux/ldlinux.c32 /var/lib/tftpboot/
cp ./bios/com32/libutil/libutil.c32 /var/lib/tftpboot/
cp ./bios/com32/menu/menu.c32 /var/lib/tftpboot/
cp ./bios/memdisk/memdisk /var/lib/tftpboot/

dhcpd eth1 적용
auth eth1
iface eth1 inet static
address 192.168.69.1
netmask 255.255.255.0

인터페이스 활성화
ifup eth1

DHCP 구성 설정 파일 /etc/dhcp/dhpcd.conf 추가
cat /etc/dhcp/dhcpd.conf
# DHCP server is authoritative for all networks
authoritative;

# extra options
# RFC3442 routes
option rfc3442-classless-static-routes code 121 = array of integer 8;
# MS routes
option ms-classless-static-routes code 249 = array of integer 8;

pid-file-name "/var/run/dhcp-server/dhcpd.pid";

ddns-update-style none;
option domain-name-servers 127.0.0.1;

allow booting;
allow bootp;

default-lease-time 1800;
max-lease-time 7200;
        shared-network eth1 {
    subnet 10.10.10.0 netmask 255.255.255.0 {
            option routers 10.10.10.1;
            option domain-name "nemo.lan";
            option domain-name-servers 10.10.10.1;
                option ntp-servers 10.10.10.1;
                default-lease-time 1800;
                max-lease-time 7200;
            pool {
                   next-server 10.10.10.1;
                   option tftp-server-name "10.10.10.1";
                   filename    "pxelinux.0";
                range 10.10.10.2 10.10.10.254;
            }
        }
        group {
            option routers 10.10.10.1;
            option domain-name "nemo.lan";
            option domain-name-servers 10.10.10.1;
                option ntp-servers 10.10.10.1;
                default-lease-time 1800;
                max-lease-time 7200;
        }
}

dhcp 서비스 시작
/etc/init.d/isc-dhcp-server start

iPXE 설치
cd /usr/src
git clone git://git.ipxe.org/ipxe.git
cd ipxe/src
make
cp ./bin/undionly.kpxe /var/lib/tftpboot/

wimboot 다운로드
cd /usr/src
wget http://git.ipxe.org/releases/wimboot/wimboot-latest.zip
unzip wimboot-latest.zip
cp wimboot-2.5.1-signed/wimboot /var/lib/tftpboot/

iPXE 스크립트 생성
cd /var/lib/tftpboot
vi win7.ipxe

#!ipxe
    dhcp
    set keep-san 1
    sanhook iscsi:10.10.10.1::::iqn.2013-10.net.thebugshop:windows7
    set boot-url tftp://10.10.10.1
    initrd ${boot-url}/distros/windows/winpe4_amd64.iso
    kernel ${boot-url}/memdisk iso raw
    boot

디렉토리 생성
cd /var/lib/tftpboot
mkdir -p distros/windows
cd distros/windows

tftpboot 파일 수정
/etc/default/tftpd-hpa

cat /etc/default/tftpd-hpa

TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/var/lib/tftpboot"
TFTP_ADDRESS=":69"
TFTP_OPTIONS="--secure"

tftpd 시작
/etc/init.d/tftpd-hpa start

lkrn 다운로드
wget --no-check-certificate "https://rom-o-matic.eu/build.fcgi?BINARY=ipxe.lkrn&BINDIR=bin&REVISION=master&DEBUG=&EMBED.00script.ipxe=&general.h/PXE_STACK:=1&general.h/DOWNLOAD_PROTO_NFS:=1&general.h/SANBOOT_PROTO_ISCSI:=1&" -O /var/lib/tftpboot/ipxe.lkrn

pxelinux.cfg 구성
cd /var/lib/tftpboot
mkdir pxelinux.cfg
cd pxelinux.cfg
vi default

DEFAULT menu.c32

LABEL Windows 7 Install
    MENU LABEL Windows 7 Install
    KERNEL ipxe.lkrn
    INITRD win7.ipxe

타켓 컴퓨터 pxe 부팅 모드 진입

윈도우 7 빈 이미지 파일 생성
cd /var/lib/tftpboot
dd if=/dev/zero of=/var/lib/tftpboot/windows7.img bs=1M count=20000

iscsi 타켓 수정
vi /etc/default/iscsitarget

ISCSITARGET_ENABLE=true
ISCSITARGET_MAX_SLEEP=3


# ietd options
# See ietd(8) for details
ISCSITARGET_OPTIONS=""

ietd.conf 수정
vi /etc/iet/ietd.conf
Target iqn.2013-10.net.thebugshop:windows7
    IncomingUser
    OutgoingUser
    Lun 0 Path=/var/lib/tftpboot/windows7.img,Type=fileio
    Alias Windows7

서비스 시작
/etc/init.d/iscsitarget start

ADK 다운로드 설치
http://www.microsoft.com/en-US/download/details.aspx?id=39982

AIK 다운로드 설치
http://www.microsoft.com/en-us/download/details.aspx?id=5753

내 컴퓨터> 등록 정보> 고급 시스템 설정> 환경 변수> 시스템 변수> 경로> 편집
다음 내용 추가
;C:\Program Files (x86)\Windows Kits\8.1\Assessment and Deployment Kit\Windows Preinstallation Environment

배포 및 이미지 환경
cd \
copype amd64 C:\WinPE_amd64
cd WinPE_amd64
mkdir ISO
copy "c:\Program Files\Windows AIK\Tools\PETools\amd64\winpe.wim" c:\WinPE_amd64\ISO\
copy "C:\Program Files\Windows AIK\Tools\amd64\Imagex.exe" C:\Winpe_amd64\ISO\
MakeWinPEMedia /ISO C:\WinPE_amd64 C:\WinPE_amd64\winpe4_amd64.iso

winpe4_amd64.iso를 /var/lib/tftpboot/distros/windows/ 서버 복사(winscp)

pxe 부팅화면 확인

삼바 설정
mkdir -p /var/lib/tftpboot/windows/win7
mkdir /mnt/cdrom
mount -o loop win7.iso /mnt/cdrom
cp -R /mnt/cdrom/*

[global]
   workgroup = WORKGROUP
   server string = %h server (Samba, Ubuntu)
   dns proxy = no
   log file = /var/log/samba/log.%m
   max log size = 1000
   panic action = /usr/share/samba/panic-action %d
   server role = standalone server
   passdb backend = tdbsam
   obey pam restrictions = yes
   unix password sync = yes
   passwd program = /usr/bin/passwd %u
   passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
   pam password change = yes
   map to guest = bad user
   usershare allow guests = yes

[win7]
   path = /var/lib/tftpboot/windows/win7
   comment = Windows 7 Installation DVD
   valid users = "bugshop"
   writeable = no
   browseable = yes
   read only = yes

암호설정
useradd bugshop
smbpasswd -a bugshop

서비스 시작
service smbd start
service nmbd start

파일 생성
vi /var/lib/tftpboot/win7.iscsi
#!ipxe
dhcp set keep-san 1
sanboot iscsi:192.168.69.1::::iqn.2013-10.net.thebugshop:windows7
boot

vi /var/lib/tftpboot/pxelinux.cfg/default
DEFAULT menu.c32

LABEL Windows 7
    MENU LABEL Windows 7
    KERNEL ipxe.lkrn
    INITRD win7.iscsi


LABEL Windows 7 Install
    MENU LABEL Windows 7 Install
    KERNEL ipxe.lkrn
    INITRD win7.ipxe

윈도우 설치 시작

댓글 없음:

댓글 쓰기