Stranica: 1/1.

Postupak za PXE netboot LiveDVD-a

PostPostano: 14 pro 2014, 20:41
Postao/la jurastublic
Evo, dok ne zaboravim postupak, da napišem malu referencu za jednostavno bootanje preko mreže LiveDVD-a nekog od ubuntoida (i debiana).

Ako na računalu postoji nekakav OS, preko njega se može Unetbootinom instalirati novi OS, tako da nema potrebe za netbootom ali ponekad nema drugog izbora.

Daklem, potrebna su dva računala, jedan na koji se instalira OS (klijent) i drugi koji preko mreže glumi DVD-uređaj (server).
Kad se netboot jednom složi na serverskom računalu, instalirani programi mogu ostati za neku novu (ne)priliku i onda sve ide puno lakše.

Koliko mi je poznato, ovaj config vrijedi za svaki ubuntoid koji ima "casper" na instalacijskom DVD-u. Mint17 je također proradio sa "casper" a AntiX ne radi nikako, žali se da ne može pronaći NFS share.

Ovaj specifični postupak je samo za podizanje Live DVD ISO imagea putem dnsmasq-a, PXElinux-a i NFS share-a i to sa računala koje tjera Mint. To navodim zato što se komande za upravljanje servisima mogu razlikovati od distre do distre.

Sam proces bootanja ide otprilike ovako:
- Kad klijentsko računalo boota, PXE Boot prvo potraži neki DHCP server na mreži da od njega dobije IP adresu i podatak gdje se na mreži nalazi mrežni bootloader (PXElinux u ovom slučaju), kojega klijent mora učitati u memoriju putem tftp protokola. DHCP server mora imati konfiguriran netboot da bi to radilo.
- Bootloader se učita i pokrene. Očita svoju boot konfiguracijsku datoteku, koja je nalik syslinux ili grub datoteci. U ovom slučaju, kod pxelinuxa to je pxelinux.cfg/default datoteka.
- Kad očita konfiguraciju, pokrene kernel i initrd i proslijedi kernelu podatke gdje je datotečni sustav i kojim protokolom da ga prenosi (NFS u ovom slučaju).
- Kernel montira datotečni sustav i sve dalje ide normalnim tijekom kao sa DVD uređajem.

Postupak na klijentu:
1. U računalu klijentu, kojemu mrežna kartica podržava PXE, u BIOS-u treba omogućiti "PXE Boot", zove se još i "Intel UNDI" ili "Network Boot" i sl.

Postupak na serveru:
1. Instaliraj dnsmasq, nfs i syslinux (taj paket sadrži i pxelinux bootloader a dnsmasq sadrži i tftp server tako da ga nije potrebno posebno instalirati):
Kod: Označi sve
sudo apt-get install syslinux dnsmasq nfs-kernel-server


2. Isključi firewall i isključi se sa LAN-a i WIFIja (to je najjednostavnije rješenje problema sukobljavanja DHCP servera na ruteru i onog koji će raditi na serveru)

3. Složi u Network Manageru jednu žičanu vezu sa statičkim IP-om (192.168.1.40 / 255.255.255.0) ili
Kod: Označi sve
sudo ifconfig eth0 192.168.1.40 netmask 255.255.255.0 up


4. Napravi posebni folder, npr. u root folderu, /PXE i unutar njega još dva foldera, /isoimage i /pxelinux.cfg
- montiraj ISO image LiveDVD-a i prekopiraj kompletni sadržaj dvd-a u folder /PXE/isoimage
- iz foldera /PXE/isoimage/casper prekopiraj vmlinuz i initrd.gz u folder /PXE, iz foldera /usr/lib/syslinux prekopiraj u folder /PXE datoteke vesamenu.c32 i pxelinux.0
- provjeri da li nazivi kernela i initrd-a u konfiguracijskim datotekama odgovaraju stvarnim nazivima datoteka, jer ponekad distre imaju različite nazive (vmlinuz i initrd.gz ili .lz itd...)

5. U folderu /PXE/pxelinux.cfg/ napravi datoteku pod nazivom default i upiši ovo u nju:

Kod: Označi sve
UI vesamenu.c32

LABEL Pokreni linux
KERNEL vmlinuz
APPEND boot=casper netboot=nfs root=/PXE initrd=initrd.gz nfsroot=192.168.1.40:/PXE/isoimage ip=dhcp rw


Za debian boot=casper zamijeni sa boot=live

6. Konfiguriraj DHCP tako da u /etc/dnsmasq.conf na kraju datoteke upišeš:
Kod: Označi sve
port=0
interface=eth0
bind-interfaces
dhcp-range=192.168.1.50,192.168.1.150,12h
dhcp-boot=pxelinux.0
enable-tftp
tftp-root=/PXE


- onda pokreni DHCP server sa:
Kod: Označi sve
sudo service dnsmasq start


7. Konfiguriraj NFS tako da u /etc/exports na kraju dodaš liniju:
Kod: Označi sve
/PXE/isoimage   *(rw,no_root_squash,async,insecure)

- onda promijeni dozvole datotekama u PXE folderu tako da nema gnjavaže sa pristupom preko tftp-a i nfs-a:
Kod: Označi sve
sudo chmod -R 777 /PXE

i onda ako je NFS već pokrenut osvježiš stanje NFS-a tako da pokreneš komandu u terminalu:
Kod: Označi sve
sudo exportfs -rv

Ako NFS nije pokrenut pokreni ga sa:
Kod: Označi sve
sudo service nfs-kernel-server start
(ili tko ima systemd sa systemctl ili starinski sa sudo sh -x /etc/init.d/nfs-kernel-server restart)

8. Pokreni klijentsko računalo. Ako zastane na promptu DHCP.../, samo na serveru ponovo pokreni DHCP sa:
Kod: Označi sve
sudo service dnsmasq restart

jer se desi da dnsmasq ne vidi eth0 adapter ako je klijentsko računalo isključeno pa ga treba restartati.

Nakon što je posao gotov ne zaboravi isključiti DHCP na serveru prije nego se spajaš na LAN ili Wifi.

Re: Postupak za PXE netboot LiveDVD-a

PostPostano: 14 pro 2014, 20:49
Postao/la bertone
@jurastublic

Nekako mi ovo uz pokoju sliku miriše na jedan fini (i korisni) članak za naslovnicu :-D

Re: Postupak za PXE netboot LiveDVD-a

PostPostano: 14 pro 2014, 21:07
Postao/la Vl@do
bertone je napisao/la:@jurastublic

Nekako mi ovo uz pokoju sliku miriše na jedan fini (i korisni) članak za naslovnicu :-D

Podržavam inicijativu.

Re: Postupak za PXE netboot LiveDVD-a

PostPostano: 14 pro 2014, 21:21
Postao/la Fugu
Pa da. Većinu posla je već odradio, šteta je to ne iskoristiti.
Svaka čast :thmb-up

Re: Postupak za PXE netboot LiveDVD-a

PostPostano: 15 pro 2014, 00:21
Postao/la max360se
Svaka cast :thmbs-up

Podrzavam inicijativu

Re: Postupak za PXE netboot LiveDVD-a

PostPostano: 15 pro 2014, 09:40
Postao/la Abzeenth
Kvalitetan post :bravo
Definitivno materijal za mali how-to članak :D

Re: Postupak za PXE netboot LiveDVD-a

PostPostano: 15 pro 2014, 20:34
Postao/la jurastublic
Pa već je Domagoj napisao članak o netbootu na LZS i to za Arch, iako, iskreno, ja to nisam znao kad sam otvorio ovu temu. Razlika je praktički samo u tome što je umjesto nfs-a koristio darkhttpd server kojega nema u ubuntu/mint repoima i što je direktno shareao mountani disk, što ja nisam zbog gnjavaže s dozvolama na mintu (tj. jednostavno iz lijenosti).