Sada je: 18 tra 2024, 06:14.
Linux, poslužitelj, mreže i sigurnost

Moderator/ica: Moderatori/ce

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.
"Hodor bre foobar"
Avatar
Postovi: 1907
Postovi: 1907
Pridružen/a: 16 tra 2011, 08:34
Lokacija: i grupa Film
Podijelio/la zahvalu: 45 puta
Primio/la zahvalu: 342 puta
Spol: M
OS: Mint 10 LXDE itd...
@jurastublic

Nekako mi ovo uz pokoju sliku miriše na jedan fini (i korisni) članak za naslovnicu :-D
[+ Prikaži] Klik
ThinkPad T14s Gen. 1
AMD Ryzen 7 PRO 4750U
16 GB DDR4-3200
Samsung SSD 970 EVO Plus 2TB
14" FHD IPS (Innolux N140HCG-GQ2)
WiFi Intel® Wi-Fi® 6 AX200
OS: Debian 6 Cinnamon
Slika: dio kolekcije

***

ZEN
"Charlie. What are you thinking?"
"I'm thinking about what I want and what I need."
"What do you want?"
"I want a peaceful soul."
"And what do you need?"
"I need a bigger gun."
Avatar
Site Admin
Postovi: 11346
Site Admin
Postovi: 11346
Pridružen/a: 01 kol 2012, 12:39
Podijelio/la zahvalu: 660 puta
Primio/la zahvalu: 1014 puta
Spol: M
OS: LinuxMint Cinnamon
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.
Moj pogled na sve to.
Glavna snaga GNU/Linuxa nije besplatnost, nego SLOBODA.
http://wiki.open.hr/wiki/Linux_CLI_naredbe
Avatar
Moderator
Postovi: 6155
Moderator
Postovi: 6155
Pridružen/a: 28 lis 2011, 23:31
Lokacija: Zagreb
Podijelio/la zahvalu: 225 puta
Primio/la zahvalu: 337 puta
Spol: M
OS: Arch KDE Plazma
Pa da. Većinu posla je već odradio, šteta je to ne iskoristiti.
Svaka čast :thmb-up
Where there is a gui there's a way.
Avatar
Postovi: 2322
Postovi: 2322
Pridružen/a: 08 ožu 2010, 20:26
Lokacija: JustPine
Podijelio/la zahvalu: 56 puta
Primio/la zahvalu: 64 puta
Spol: M
OS: CimetMint 18.1
Svaka cast :thmbs-up

Podrzavam inicijativu
Lutherus je napisao/la:Ne postoje linuksi, postoji samo Linux i on je jedan i on je kernel.

Is Linux About Choice? || Pulsir - awesome blogging site :D
iv@n je napisao/la:Divide et impera i kako se kaže na latinskom da je ljudska glupost neuništiva.
Avatar
Postovi: 6781
Postovi: 6781
Pridružen/a: 06 lis 2011, 01:29
Lokacija: ~$
Podijelio/la zahvalu: 145 puta
Primio/la zahvalu: 58 puta
Spol: M
OS: Ovisi za sta
Kvalitetan post :bravo
Definitivno materijal za mali how-to članak :D
Avatar
Site Admin
Postovi: 6502
Site Admin
Postovi: 6502
Pridružen/a: 06 lip 2009, 23:16
Lokacija: Online
Podijelio/la zahvalu: 621 puta
Primio/la zahvalu: 631 puta
OS: Kubuntu & Fedora
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).
"Hodor bre foobar"
Avatar
Postovi: 1907
Postovi: 1907
Pridružen/a: 16 tra 2011, 08:34
Lokacija: i grupa Film
Podijelio/la zahvalu: 45 puta
Primio/la zahvalu: 342 puta
Spol: M
OS: Mint 10 LXDE itd...

Na mreži
Trenutno korisnika/ca: / i 5 gostiju.