Po wielu wielu dniach opracowałem małe How-to jak postawić bardzo przydatne narzędzie jakim jest Remote Installation Service.
I. Prepare to start...
Instalujemy synapticem pakiety: tftp-server, cabextract i lftp.
Deklarujemy zmienne:
declare -x RISVER="ris-linux-0.4"
declare -x RISROOT="/var/lib"
declare -x TFTPROOT="${RISROOT}/tftpboot/"
Tworzymy katalogi punktu montowania płyty z systemem i sterowników:
mkdir -p ${TFTPROOT}cdrom
mkdir -p ${TFTPROOT}drivers
Montujemy cdrom
mount /dev/cdrom ${TFTPROOT}cdrom
II. Część właściwa
Wypakowujemy pliki potrzebne do instalacji
cabextract ${TFTPROOT}cdrom/i386/startrom.n1_ -d ${TFTPROOT}
cabextract ${TFTPROOT}cdrom/i386/setupldr.ex_ -d ${TFTPROOT}
mv ${TFTPROOT}cdrom/i386/setupldr.exe ${TFTPROOT}ntldr
cp ${TFTPROOT}cdrom/i386/ntdetect.com ${TFTPROOT}ntdetect.com
Teraz potrzebujemy archiwum z BINLem, które pobieramy z
http://oss.netfarm.it/guides/ris-linux-0.4.tar.gz, zapisujemy je w /var/lib/
Całość wypakowujemy j przenosimy komendami:
tar xvzf ${RISROOT}/${RISVER}.tar.gz -C ${RISROOT}
mv ${RISROOT}/${RISVER}/* ${RISROOT}/.
Teraz musimy "przerobić" ntldr, abyśmy mogli zainstalować go z sieci, robimy to przy pomocy skryptu fixntldr.py z archiwum.
cd ${RISROOT}
./fixloader.py ${TFTPROOT}/ntldr
Następnym krokiem będzie zbudowanie bazy sterowników dla BINLa, robimy to komedami:
mkdir -p ${TFTPROOT}/drivers
cabextract ${TFTPROOT}/cdrom/i386/*.in_ -d ${TFTPROOT}/drivers
cabextract ${TFTPROOT}/cdrom/i386/driver.cab -d ${TFTPROOT}/drivers
cd ${RISROOT} && ./infparser.py {TFTPROOT}/cdrom/drivers
Kolejnym krokiem jest zmienienie ścieżki odniesienia basepath w pliku binlsrv.py. Robimy to tak:
mcedit ${RISROOT}/binlsrv.py
Naciskamy F7 i wyszukujemy wiersza z "basepath", coś w stylu OSChooser zmieniamy na: /var/lib/tftpboot/cdrom/i386.
Póżniej edytujemy plik /var/lib/tftpdremap dając mu zawartość:
r ^\\cdrom\\i386\\pcntpci5.sys pcntpci5.sys
r ^\\\\i386 i386
rg \\ /
r KDCOM.DL_ kdcom.dl_
r KDCOM.DLL kdcom.dll
r BOOTVID.dl_ bootvid.dl_
r BOOTVID.dll bootvid.dll
r SETUPREG.HIV setupreg.hiv
r SPDDLANG.SY_ spddlang.sy_
r SPDDLANG.SYS spddlang.sys
r WMILIB.SY_ wmilib.sy_
r WMILIB.SYS wmilib.sys
r 1394BUS.SY_ 1394bus.sy_
r 1394BUS.SYS 1394bus.sys
r PCIIDEX.SY_ pciidex.sy_
r PCIIDEX.SYS pciidex.sys
r USBPORT.SY_ usbport.sy_
r USBPORT.SYS usbport.sys
r USBD.SY_ usbd.sy_
r USBD.SYS usbd.sys
r HIDCLASS.SY_ hidclass.sy_
r HIDCLASS.SYS hidclass.sys
r HIDPARSE.SY_ hidparse.sy_
r HIDPARSE.SYS hidparse.sys
r SCSIPORT.SY_ scsiport.sy_
r SCSIPORT.SYS scsiport.sys
r CLASSPNP.SY_ classpnp.sy_
r CLASSPNP.SYS classpnp.sys
r TDI.SY_ tdi.sy_
r TDI.SYS tdi.sys
r OPRGHDLR.SY_ oprghdlr.sy_
r OPRGHDLR.SYS oprghdlr.sys
r VIDEOPRT.SY_ videoprt.sy_
r VIDEOPRT.SYS videoprt.sys
r HALAACPI.DL_ halaacpi.dl_
r HALAACPI.DLL halaacpi.dll
r iaStor iastor
r Fasttx2k fasttx2k
r S150sx8 s150sx8
r QL2300 ql2300
r Si3112 si3112
r SiSRaid sisraid
r RTL8139.SY_ rtl8139.sy_
RTL8139.SYS rtl8139.sys
W configu DHCP(/etc/dhcpd.conf) zmieniamy na tak:
allow booting;
allow bootp;
default-lease-time 600;
max-lease-time 7200;
subnet 192.168.100.0 netmask 255.255.255.0 {
authoritative;
next-server 192.168.100.1;
filename "startrom.n12";
option subnet-mask 255.255.255.0;
range 192.168.100.100 192.168.100.250;
}
W configu Samby na końcu dopisujemy:
[REMINST]
browseable = yes
read only = no
path = /var/lib/tftpboot
guest ok = yes
W katalogu /var/lib/tftpboot/ tworzymy plik winnt.sif z zawartością(część opcji dostosowujemy do własnych potrzeb):
[data]
floppyless = "1"
msdosinitiated = "1"
OriSrc = "\\192.168.100.1\RemInst\cdrom\i386"
OriTyp = "4"
LocalSourceOnCD = 1
DisableAdminAccountOnDomainJoin = 1
[SetupData]
OsLoadOptions = "/fastdetect /noguiboot /nodebug"
SetupSourceDevice = "\Device\LanmanRedirector\192.168.100.1\RemInst\cdrom"
[Unattended]
UnattendMode=FullUnattended
UnattendSwitch="Yes"
OemPreinstall="Yes"
OemSkipEula="Yes"
FileSystem=*
WaitForReboot="No"
NoWaitAfterTextMode=1
NoWaitAfterGUIMode=1
DriverSigningPolicy=Ignore
NonDriverSigningPolicy=Ignore
Hibernation="No"
TargetPath = \WINDOWS
InstallFilesPath = "\\192.168.100.1\RemInst\cdrom\i386"
LegacyNIC = 1
[SystemRestore]
[GuiUnattended]
EncryptedAdminPassword="No"
AutoLogon="Yes"
AdminPassword=haslo
OEMSkipRegional=1
TimeZone=004
OemSkipWelcome=1
[Components]
msmsgs=off
msnexplr=off
OEAccess=off
media_clips=off
media_utopia=off
Accessopt=off
AutoUpdate=off
templates=off
fax=off
Clipbook=off
charmap=off
calc=off
hypertrm=off
rec=off
vol=off
pinball=off
freecell=off
minesweeper=off
solitaire=off
spider=off
hearts=off
zonegames=off
[UserData]
FullName = "bla"
OrgName = "bla"
ComputerName = stacja01
ProductKey="KLU-CZIN-STALA-CYJNY"
[RegionalSettings]
Language= Kod jezyka
[WindowsFirewall]
Profiles=WindowsFirewall.TurnOffFirewall
[WindowsFirewall.TurnOffFirewall]
Mode=0
[Display]
BitsPerPel = 16
XResolution = 800
YResolution = 600
VRefresh = 60
[NetServices]
MS_Server=params.MS_PSched
[RemoteInstall]
Repartition = Yes
UseWholeDisk = Yes
[Shell]
DefaultStartPanelOff=Yes
DefaultThemesOff=Yes
III. The end
Na koniec dajemy jeszcze:
echo "ALL : ALL" > /etc/hosts.allow
echo "" > /etc/hosts.deny
service smb start
service dhcpd start
in.tftpd -l -v -s ${TFTPROOT} -m ${RISROOT}/tftpdremap
cd ${RISROOT}
./binlsrv.py
I to już koniec...
Możemy zabootować stację przez sieć i zainstalować system z Redmont...
Pozdrawiam,
Saturas
PS Po więcej info --->
http://oss.netfarm.it
Opis na podstawie własnych doświadczeń i
http://oss.netfarm.it/guides/pxe.php
Zachęcam do testowania i do wypowiadania opinii, udoskonaleń, zażaleń itp... w tym temacie.