Dodajemy instalatory Windows do serwera PXE cz 2

Data: 2016-08-06, autor: Michał Misztal

Następnym krokiem będzie instalacja i konfiguracja samby na serwerze. A więc

[root@komputer]# pacman -Syy && pacman -S samba
[root@komputer]# touch /etc/samba/smb.conf
[root@komputer]# nano /etc/samba/smb.conf

Zawartość pliku z konfiguracją samby

[global]
  workgroup = MSHOME
  server string = Samba Server Version %v
  log file = /var/log/samba/log.%m
  idmap config * : backend = tdb
  cups options = raw
  netbios name = pxe
  map to guest = bad user
  dns proxy = no
  public = yes
  kernel oplocks = no
  nt acl support = no
  security = user
  guest account = nobody
[install]
  comment = Instalacje systemów Windows
  path = /home/user/share
  read only = no
  browseable = yes
  public = yes
  printable = no
  guest ok = yes
  oplocks = no
  level2 oplocks = no
  locking = no

Tworzymy folder na udział, nadajemy mu uprawnienia oraz kasujemy właściciela

[root@komputer]# mkdir /home/user/share
[root@komputer]# chmod 777 /home/user/share
[root@komputer]# chown nobody:nobody /home/user/share

Włączamy usługi samby

[root@komputer]# systemctl enable samba
[root@komputer]# systemctl enable smbd
[root@komputer]# systemctl enable nmbd

W tej chwili powinniśmy mieć działający udział \\pxe\install. Tworzymy w nim katalogi dla każdego z Windows (pełnego obrazu, nie PE) i do każdego z tych katalogów należy wypakować pliki ISO systemów. Teraz pora na edycję pliku /srv/tftp/pxelinux.cfg/default i dodajemy wpis dla Windows 7 32 bit, dla reszty analogicznie

label W732BIT
menu label Windows 7 32 bit
com32 linux.c32 wimboot
append initrdfile=http://192.168.10.99/w7_32bit/bootmgr,http://192.168.10.99/w7_32bit/boot/bcd,http://192.168.10.99/w7_32bit/boot/boot.sdi,http://192.168.10.99/w7_32bit/sources/boot.wim

A teraz krótkie uwagi na koniec. Gdy już wszystkie wersje systemów będą na swoim miejscu warto zmienić w konfiguracji samby read only na yes. Dzięki temu nikt z postronnych nam nie skasuje plików systemu. O ile /srv/http, /srv/tftp czy /home/user/pxe_serwer nie wystawialiśmy na świat to nie musimy blokować im uprawnień. Jako, że mamy tutaj tak naprawdę dwa środowiska PE (32 i 64 bit) to pliki bootmgr, bcd, boot.sdi można uznać za wspólne i nie powielać ich. Więcej, tak na prawdę pliki boot.wim też praktycznie niczym się nie różnią, jedynie modyfikacją pliku startnet.cmd. Można napisać skrypt który będzie ładował wspólne PE i z tego PE będzie można wybrać system do zainstalowania (wrócę do tego w opisie implementacji UEFI).

A na koniec jeszcze wesoła lektura

No i jeszcze fotki

Jak zapewne widzicie ja wykorzystałem obraz PE jako uniwersalny loader. Kiedyś i o tym będzie.

PS. Tak sobie rozkminiałem opcje w stylu podmontowania obrazów ISO do share ale ISO instalatorów Windows od Visty zawierają system UDF-13346 (wspólna hierarchia uprawnień dla Windows i dla "Unix like systems") i niektóre pliki (np setup.exe) są tylko do odczytu i mamy info "Odmowa dostępu" w momencie wywołania z PE. Szkoda bo wyglądałoby to całkiem elegancko. Oczywiście całość można przepakować zmieniając uprawnienia. Albo przez ADS ale to gra niewarta świeczki.

PPS. Drugi problem jaki udało mi się napotkać to błąd w momencie ładowania przez wimboot pliku Boot/BCD (jest on ładowany ale w momencie uruchomienia Windows wyskakuje błąd tego pliku). W jakiś sposób musiałem ten plik uszkodzić, być może jak przenosiłem przez pendrive'a. Operacja przenoszenia między NTFS a FAT kasuje podpięte pod plik strumienie danych (Alternate Data Streams i całkiem fajnie po naszemu). I tylko tak sobie to mogę tłumaczyć. Zastąpienie Boot/BCD jego oryginalną wersją wypakowaną z ISO rozwiązała sprawę.

Skomentuj lub zgłoś błąd

© Michał Misztal 2023

Czytasz właśnie

Dodajemy instalatory Windows do serwera PXE cz 2
Autor: Michał Misztal
Data: 2016-08-06

Tagi

Podobne wpisy