Бездисковая загрузка Windows 2008 по PXE

Материал из Xgu.ru

Перейти к: навигация, поиск
stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.

Если вы считаете, что её стоило бы доработать как можно быстрее, пожалуйста, скажите об этом.

Короткий URL: pxe/win2008

Автор: Сергей Черепенин

На этой странице будет описано, как организовать бездисковую загрузку операционной системы Windows Server 2008 при помощи PXE и iSCSI.

Содержание

[править] Запуск в качестве DomU

DomO:

clint:~$ sudo xm info 
host                   : sergey
release                : 2.6.26-2-xen-686
version                : #1 SMP Wed Aug 19 08:47:57 UTC 2009
machine                : i686
nr_cpus                : 1
nr_nodes               : 1
cores_per_socket       : 1
threads_per_core       : 1
cpu_mhz                : 1803
hw_caps                : 078bfbff:ebd3fbff:00000000:00000010:00002001:0000001d:0000001d:00000000
virt_caps              : hvm
total_memory           : 1983
free_memory            : 112
node_to_cpu            : node0:0
node_to_memory         : node0:112
xen_major              : 3
xen_minor              : 4
xen_extra              : .2
xen_caps               : xen-3.0-x86_32p hvm-3.0-x86_32 hvm-3.0-x86_32p 
xen_scheduler          : credit
xen_pagesize           : 4096
platform_params        : virt_start=0xf5800000
xen_changeset          : unavailable
cc_compiler            : gcc version 4.4.2 (Debian 4.4.2-4) 
cc_compile_by          : root
cc_compile_domain      : 
cc_compile_date        : Thu Dec 10 14:32:51 EET 2009
xend_config_format     : 4
clint:~$ uname -a
Linux sergey 2.6.26-2-xen-686 #1 SMP Wed Aug 19 08:47:57 UTC 2009 i686 GNU/Linux


Конфигурационный файл виртуальной машины win2008:

clint:~$ egrep -v "^ *$|^#.*$" /etc/xen/win2008 
kernel = "/usr/lib/xen/boot/hvmloader"
builder='hvm'
memory = 1024
shadow_memory = 8
name = "win2008"
acpi=1
vif = [ 'type=ioemu, mac=00:16:3e:36:7d:62, bridge=br0'] 
disk = ['phy:/dev/vm/win2008,hda,w', 'file:/home/clint/MyDoc/iso/windows-server-2008-en.iso,hdc:cdrom,r' ]
device_model = "/usr/lib/xen/bin/qemu-dm"
boot="d"
sdl=0
vnc=1
vncdisplay=25
localtime=1
usbdevice='mouse'
usbdevice='tablet'
monitor=1

Где /dev/vm/win2008 — LVM-том:

clint:~$ sudo lvdisplay /dev/vm/win2008
  --- Logical volume ---
  LV Name                /dev/vm/win2008
  VG Name                vm
  LV UUID                z1L0qh-U1Y2-1YyW-3tZc-EQKN-2k0k-TLWH70
  LV Write Access        read/write
  LV Status              available
  # open                 0
  LV Size                15,00 GiB
  Current LE             3840
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           254:0
Device Manager
System Information

После инсталляции ОС можно посмотреть список устройств и сведения о системе:







[править] Запуск Windows Server 2008 по PXE

[править] Сборка iscsitarget

Получение архива исходных текстов

wget -c http://switch.dl.sourceforge.net/project/iscsitarget/iscsitarget/1.4.19/iscsitarget-1.4.19.tar.gz

Распаковка и компиляция

sudo tar xzf iscsitarget-1.4.19.tar.gz
cd iscsitarget-1.4.19/
vim README
sudo make
sudo make install

[править] Настройка iSCSI Enterprise Target Daemon

clint:~$ sudo egrep -v "^ *$|^#.*$|#" /etc/ietd.conf

Target iqn.2009-12.clinika.local:dev.vm.win2008
        Lun 0 Path=/dev/vm/win2008,Type=blockio

[править] Сборка gPXE

Получение архива исходных текстов:

 wget -c http://kernel.org/pub/software/utils/boot/gpxe/gpxe-0.9.9.tar.gz

Сборка:

sudo apt-get install syslinux mkisofs
sudo tar xzf gpxe-0.9.9.tar.gz 
cd gpxe-0.9.9/
vim README 
cd src/
sudo make

Возникла ошибка сборки, в данном примере модуль atl1e не критичен, поэтому:

sudo mv drivers/net/atl1e* /tmp
sudo make
ls -lh bin/gpxe.iso

[править] Настройка DHCP-сервера

clint:~$ dpkg -l | grep dhcp.*server
ii  dhcp3-server                           3.1.3-1                      DHCP server for automatic IP address

Конфигурационный файл dhcp3-server:

clint:~$ sudo egrep -v "^ *$|^#.*$|#" /etc/dhcp3/dhcpd.conf 
ddns-update-style none;
log-facility local7;

option space gpxe;
option gpxe-encap-opts code 175 = encapsulate gpxe;
option gpxe.priority code 1 = signed integer 8;
option gpxe.keep-san code 8 = unsigned integer 8;
option gpxe.no-pxedhcp code 176 = unsigned integer 8;
option gpxe.bus-id code 177 = string;
option gpxe.bios-drive code 189 = unsigned integer 8;
option gpxe.username code 190 = string;
option gpxe.password code 191 = string;
option gpxe.reverse-username code 192 = string;
option gpxe.reverse-password code 193 = string;
option gpxe.version code 235 = string;
option iscsi-initiator-iqn code 203 = string;

default-lease-time 600;
max-lease-time 7200;
option domain-name "clinika.local";
option domain-name-servers 192.168.7.254;
subnet 192.168.7.0 netmask 255.255.255.0 {
range dynamic-bootp 192.168.7.200 192.168.7.240;
option subnet-mask 255.255.255.0;
next-server 192.168.7.254;
option root-path "iscsi:192.168.7.254:6:3260:0:iqn.2009-12.clinika.local:dev.vm.win2008";
option gpxe.keep-san 1;
option routers 192.168.7.254;
}

clint:~$ sudo egrep -v "^ *$|^#.*$|#" /etc/default/dhcp3-server 
INTERFACES="br0"

[править] Запуск виртуальной машины по PXE

Конфигурационный файл виртуальной машины только с iso-образом gPXE:

clint:~$ sudo egrep -v "^ *$|^#.*$|#" /etc/xen/win2008
kernel = "/usr/lib/xen/boot/hvmloader"
builder='hvm'
memory = 1024
shadow_memory = 8
name = "win2008"
acpi=1
vif = [ 'type=ioemu, mac=00:16:3e:36:7d:62, bridge=br0'] 
disk = ['file:/usr/src/gpxe-0.9.9/src/bin/gpxe.iso,hdc:cdrom,r' ]
device_model = "/usr/lib/xen/bin/qemu-dm"
boot="d"
sdl=0
vnc=1
vncdisplay=25
localtime=1
usbdevice='mouse'
usbdevice='tablet'
monitor=1

Запуск виртуальной машины

clint:~$ sudo xm create /etc/xen/win2008

В результате:

Device Manager
System Information
iSCSI Initiator Properties