Tworzenie obrazu systemu Linux do uruchamiania przez sieć. Instalowanie Ubuntu przez sieć za pośrednictwem PXE

Dość dawno temu pisałem artykuł o sieciowej instalacji Ubuntu, przez sieć lokalną, bez użycia różnych nośników, tylko o bootowaniu z PXE i tyle. Tym razem postanowiłem zaktualizować artykuł i przybliżyć go do współczesnych realiów, a co najważniejsze rozszerzyć funkcjonalność. Wszystko zostanie wykonane na przykładzie Ubuntu 14.04!

Dla różnych wymagań muszą istnieć różne rozwiązania, głównym haczykiem jest to, że często potrzebujemy nie jednego systemu operacyjnego, ale kilku. Postanowiłem więc napisać artykuł na ten temat. Poprzedni artykuł można znaleźć pod linkiem.
Główną ideą jest to, że będziemy mieli możliwość wyboru systemu operacyjnego, który zainstalujemy, a także jego głębi bitowej; tak naprawdę menu startowe będziemy mieli po załadowaniu systemu przez sieć lokalną.
Wszystko to zaimplementujemy na przykładzie właśnie wydanego Ubuntu 14.04

Dla tych, którzy nie rozumieją, wszystko zaczyna się od tego, aby można było wybrać, który system operacyjny zainstalować i jego pojemność bitową, tj. Powinno pojawić się menu, w którym zostaną zaprezentowane wszystkie systemy operacyjne dostępne do instalacji przez sieć, które będą wyglądać następująco:

Ubuntu_14.04x86
Ubuntu_14.04amd64
Do pracy będziemy potrzebować:
Koniecznie!
1) Skonfigurowana bramka np. skorzystaj z artykułu:
2) Serwer DHCP, możesz na przykład skorzystać z artykułu:
3) Skonfigurowany serwer TFTP ładujący bootloader PXE, skorzystaj z artykułu:

Opcjonalny!
3) Dodatkowym, ale nie obowiązkowym punktem może być skonfigurowany serwer DNS, przykład w artykule

Zakłada się, że skonfigurowałeś bramę, DHCP, serwer TFTP, a także dodałeś menu startowe PXE, ponieważ Nie będę się nad tym rozwodzić.

Przejdźmy do konfiguracji systemu, który ma zostać zainstalowany.
Na początek utworzymy punkt instalacyjny dla Ubuntu 14.04x86, do którego będziemy potrzebowali dysku instalacyjnego o odpowiedniej pojemności. Musimy go pobrać i zamontować, aby wyodrębnić program rozruchowy i pliki instalatora systemu.
Ponieważ Plik programu ładującego sieć znajduje się w katalogu katalogu /var/lib/tftpboot/ skąd są pobierane przez serwer TFTP, to w nim musimy utworzyć katalog Ubuntu w celu umieszczenia w nim plików z dysków instalacyjnych, zróbmy tak:
mkdir /var/lib/tftpboot/ubuntu
W katalogu Uubntu tworzymy dodatkowe katalogi dla plików modułu ładującego instalatora systemu operacyjnego odpowiednio dla systemów x86 bitowych i ADM64.
mkdir /var/lib/tftpboot/ubuntu/x86 mkdir /var/lib/tftpboot/ubuntu/amd64

Teraz musimy pobrać dysk instalacyjny, możesz go obejrzeć tutaj Mirror.yandex.ru/ubuntu-releases/14.04/
Pobierzemy wersję x86 na serwer, ponieważ... ona waży mniej
wget http://mirror.yandex.ru/ubuntu-releases/14.04/ubuntu-14.04-server-i386.iso
Po zakończeniu pobierania obrazu ISO musimy go zamontować, aby wyodrębnić potrzebne nam pliki i do tego w katalogu /głoska bezdźwięczna utworzymy katalog iso, Zróbmy to:

Mkdir/media/iso
Zamontuj obraz dysku w tym katalogu:
sudo su
zamontuj Ubuntu-14.04-server-i386.iso /media/iso/
System wyświetli, że dysk jest zamontowany w trybie odczytu:

mount: ostrzeżenie: /media/iso/ wydaje się być zamontowany tylko do odczytu.
Przejdźmy do bootloadera i jądra instalatora:
cd /media/iso/install/netboot/ubuntu-installer/i386/

Interesują nas 2 pliki Linuksa I initrd.gz, które musimy podnieść i przenieść do katalogu /var/lib/tftpboot/ubuntu/x86
skopiujmy je:
cp linux /var/lib/tftpboot/ubuntu/x86 cp initrd.gz /var/lib/tftpboot/ubuntu/x86

To wszystko, nie potrzebujemy już obrazu instalacyjnego, najpierw odmontujmy go z katalogu iso:
umount /media/iso/

Następnie obraz ISO można usunąć.
Podobne kroki wykonujemy dla obrazu dysku instalacyjnego o głębokości x64 bitów, nie będę opisywał co i gdzie, podam tylko listę poleceń, kroki są takie same, tylko ścieżki są nieco inne, jest napisane Tam amd64

Wget http://mirror.yandex.ru/ubuntu-releases/14.04/ubuntu-14.04-server-amd64.iso

Zamontuj ubuntu-14.04-server-amd64.iso /media/iso/

Płyta CD /media/iso/install/netboot/ubuntu-installer/amd64/

Cp linux /var/lib/tftpboot/ubuntu/amd64 cp initrd.gz /var/lib/tftpboot/ubuntu/amd64

Umount /media/iso/

Skończyliśmy z plikami instalacyjnymi, teraz skonfigurujmy menu startowe PXE.

Konfigurowanie menu rozruchu PXE
Najpierw dodajmy pozycję menu z nazwą Instalacja Linuksa, w tym celu musimy edytować plik:
nano /var/lib/tftpboot/pxelinux.cfg/default

Dodaj wpis na końcu pliku:
LABEL Linux Zainstaluj MENU LABEL ^Linux Zainstaluj KERNEL vesamenu.c32 DOŁĄCZ pxelinux.cfg/linux.menu

Jak widać z wpisu będziemy mieli kolejną stronę z wyborem dystrybucji do instalacji, stwórzmy ją:

Nano /var/lib/tftpboot/pxelinux.cfg/linux.menu

Dodajmy do tego nazwy punktów pobierania z możliwością wyboru systemu operacyjnego do zainstalowania, póki to będzie Ubuntu 14.04x86 I amd64 architektura:
LABEL Zainstaluj Ubuntu 14.04x86 Etykieta MENU ^Ubuntu 14.04x86 KERNEL ubuntu/x86/linux DOŁĄCZ initrd=ubuntu/x86/initrd.gz LABEL Zainstaluj Ubuntu 14.04amd64 Etykieta MENU ^Ubuntu 14.04amd64 KERNEL ubuntu/amd64/ linux DOŁĄCZ initrd=ub untu/amd64 /initrd.gz

W tym momencie konfiguracja jest zakończona, możesz podłączyć maszynę kliencką i spróbować uruchomić komputer przez PXE, w rezultacie po uruchomieniu systemu przez sieć będziemy mieli takie menu:

Wybieramy co chcemy zainstalować, instalacja rozpocznie się automatycznie, a następnie wystarczy postępować zgodnie z instrukcjami instalatora systemu.
Inne systemy operacyjne dodawane są w podobny sposób.
Na tym prawdopodobnie zakończę na dziś.
Cóż, jak zawsze, jeśli masz jakieś pytania, zostaw komentarz, jeśli znajdziesz błąd, napisz do mnie wiadomość prywatną lub e-mail.

W serwerowniach coraz częściej spotyka się serwery bez napędów CD/DVD. Od czasu do czasu muszą zainstalować system operacyjny, a instalacja przez sieć może w tym bardzo pomóc. Po prostu włączasz serwer i rozpoczynasz instalację. Karta sieciowa musi obsługiwać technologię PXE. PXE – Pre-Boot Execution Environment – ​​umożliwia rozruch przez sieć.

Ale PXE nie wystarczy do pełnego szczęścia; technologia, która całkowicie zautomatyzuje instalację, to kickstart (opracowany przez Red Hat). Jego istota jest prosta – wcześniej kompilujemy plik zawierający wartości wszystkich opcji, które mogą być potrzebne podczas instalacji. Co więcej, możemy wykonywać nasze skrypty przed i po instalacji, ustawiając w ten sposób ustawienia dla przyszłego systemu operacyjnego.

Instalacja typowego zestawu dla Linuksa za pomocą kickstartu zajmuje 5-7 minut.

Serwer instalacyjny wymaga 3 usług i 1 pakietu.


  • DHCP zapewnia klientom poświadczenia sieciowe

  • TFTP to łatwy sposób udostępniania plików w sieci

  • Syslinux zawiera program ładujący pxelinux.0 i kilka innych plików

  • NFS umożliwia dostęp do systemu plików przez sieć
Proces instalacji można podzielić na etapy:

  1. pxe - firmware pxe zaczyna działać gdy ustawimy w BIOSie instalację przez sieć, lub gdy na HDD nie zostanie odnaleziony MBR.

  2. Faza 1 DHCP - klient otrzymuje dane sieciowe oraz adres serwera tftp, a także nazwę pliku ładującego (pxelinux.0). Domyślnie serwerem TFTP jest serwer DHCP.

  3. TFTP - moduł ładujący pxelinux.0 kontaktuje się z serwerem TFTP i żąda od niego initrd.img (początkowy dysk RAM, tymczasowy system plików), jądro Linuksa.

  4. Jądro - przeniesienie kontroli na jądro Linuksa.

  5. Faza 2 DHCP - jądro Linuksa wysyła żądanie do serwera DHCP w celu uzyskania szczegółów sieci, a następnie adresu serwera NFS.

  6. NFS - etap montażu partycji NFS

  7. init - uruchamiany jest /sbin/init i przekazywana jest do niego kontrola. Init jest głównym procesem w systemie, pozostałe procesy są procesami potomnymi init.
Swobodnie stwierdzone:

Serwer DHCP nasłuchuje żądań rozruchu w swojej sieci; po otrzymaniu żądania sprawdza źródłowy adres MAC i jeśli ma odpowiadający mu wpis, zaczyna z nim pracować. Serwer DHCP udostępnia klientowi szczegółowe informacje o sieci (adres IP, brama, serwer DNS,...) i wysyła obraz startowy pxelinux.0 za pomocą protokołu TFTP. Ten obraz wystarczy, aby wyświetlić menu wyboru systemu operacyjnego.

Po wybraniu systemu operacyjnego rozpoczynamy ładowanie jądra i rozpoczynamy instalację, wybierając jednocześnie źródło instalacji - serwer NFS. Należy wgrać przygotowaną zawartość przyszłego systemu operacyjnego na serwer NFS i upewnić się, że odpowiednie katalogi zostały wyeksportowane.

DHCP

Zainstaluj DHCPD i dodaj go do uruchamiania:
# mniam -y zainstaluj DHCP
# chkconfig dhcpd włączone

Utwórz plik /etc/dhcpd.conf w następujący sposób:

Tymczasowa aktualizacja w stylu Ddns;
ignoruj ​​aktualizacje klienta;
podsieć 192.168.146.0 maska ​​sieci 255.255.255.0 (
routery opcjonalne 192.168.146.1;
opcja maska ​​podsieci 255.255.255.0;
opcja nazwa-domeny "domena.local";
opcja serwery nazw domen 192.168.146.1;
domyślny czas dzierżawy 21600;
maksymalny czas dzierżawy 43200;
Zezwalaj na rozruch;
Zezwalaj na uruchamianie;
host unixbox (
sprzętowy Ethernet 00:0c:29:77:9c:9c;
adres stały 192.168.146.128;
nazwa pliku „pxelinux.0”;
opcja nazwa-hosta „unixbox”;
następny serwer 192.168.146.1;
}
}

Uruchom DHCPD lub uruchom ponownie, jeśli był uruchomiony:
# ponowne uruchomienie usługi dhcpd

Wyłącz zaporę sieciową, która jest domyślnie włączona (w przeciwnym razie komputer docelowy wyświetli błąd „Miejsce docelowe ICMP nieosiągalne (host zabroniony administracyjnie)”):
# zatrzymanie usługi iptables
# chkconfig iptables wyłączone

TFTP

Zainstaluj pakiet tftp-server z repozytorium:
# mniam -y zainstaluj serwer tftp

Teraz musisz włączyć tftp w konfiguracji xinetd; w tym celu w pliku /etc/xinetd.d/tftp zmień „disable = Yes” na „disable = no” i włącz xinetd:
# uruchomienie usługi xinetd

Sprawdzamy, czy port serwera tftp nasłuchuje (tftp działa na porcie 69):
# netstat -nlp | grep:69
udp 0 0 0.0.0.0:69 0.0.0.0:* 3105/xinetd

Syslinux

Pakiet zawiera zestaw plików do pobrania przez sieć. Potrzebujemy pxelinux.0, który będzie służył jako obraz rozruchowy przez DHCP, oraz menu.c32, za pomocą którego zostanie narysowane atrakcyjniejsze menu użytkownika. (W przypadku CentOS 4 zaktualizowany syslinux wraz z zależnościami należy pobrać z rpmfind.net.)

# cp $(rpm -ql syslinux | grep menu.c32) /tftpboot/
# cp $(rpm -ql syslinux | grep pxelinux.0) /tftpboot/

NFS

Domyślnie system najprawdopodobniej ma NFS, jeśli nie, zainstaluj go za pomocą yum.
# chkconfig nfs włączone

Dodaj wpis do pliku /etc/exports:
echo „/var/install-server/ *(ro,no_root_squash)” >> /etc/exports

Uruchom serwer nfs:
# uruchomienie usługi nfs

Sprawdzamy, czy katalog został wyeksportowany:
#eksportfs
/var/install-server

Tworzymy strukturę serwera tftp, dodajemy treści na serwer:
# mkdir -p /tftpboot/(pxelinux.cfg,centos5_x86)
# mkdir -p /var/install-server/centos5_x86

Montujemy naszą płytę DVD z CentOS 5 i przesyłamy zawartość do /var/install-server/centos5_x86:
# zamontuj /dev/cdrom /mnt/
# cp -r /mnt/* /var/install-server/centos5_x86/
# cp /var/install-server/centos5_x86/images/p xeboot/* /tftpboot/centos5_x86/

W katalogu /tftpboot/pxelinux.cfg utwórz plik domyślny i wypełnij go jak pokazano poniżej:
menu domyślne.c32

podpowiedź 0
limit czasu 100

jądro /centos5_x86/vmlinuz
dołącz initrd=/centos52_x86/initrd.img
etykieta Zakończ
lokalny rozruch 0

Instalacja systemu operacyjnego przez sieć

Po wszystkich manipulacjach opisanych powyżej możemy rozpocząć instalację systemu operacyjnego. Uruchamiamy naszą maszynę z adresem MAC 00:0c:29:77:9c:9c, umożliwiając rozruch sieciowy w BIOS-ie. Kiedy rozpoczyna się instalacja, robimy wszystko w standardowy sposób, z tym wyjątkiem, że na liście miejsc instalacji systemu operacyjnego należy wybrać NFS, a następnie, gdy zostaniemy o to poproszeni, wskazać:
Nazwa serwera NFS: 192.168.146.1
Katalog CentOS: /var/install-server/centos5_x86

Zautomatyzuj instalację za pomocą Kickstart

Aby zautomatyzować, musisz utworzyć plik zawierający wszystkie niezbędne informacje, które mogą być wymagane podczas procesu instalacji. Taki plik tworzy program system-config-kickstart (narzędzie GUI) w dowolnym CentOS-ie z X Window:
# mniam -y zainstaluj system-config-kickstart
# system-config-kickstart

Po utworzeniu pliku za pomocą systemu-config-kickstart należy go przesłać na serwer instalacyjny i udostępnić za pośrednictwem jednego z protokołów HTTP, NFS lub FTP. Ponieważ serwer instalacyjny aktywnie korzysta z NFS, użyjemy go.

W moim przypadku plik kickstartu znajduje się w /var/install-server/centos5_x86/centos5_ x86_ks.cfg .

Do pliku /tftpboot/pxelinux.cfg/default wystarczy dodać dyrektywę ks wskazującą lokalizację pliku kickstart. Przykład z plikiem kickstart:
menu domyślne.c32
tytuł menu Serwer instalacyjny systemu Linux. Wybierz system operacyjny do zainstalowania.
podpowiedź 0
limit czasu 100
etykieta Instalacja niestandardowa CentOS 5 x86
jądro /centos5_x86/vmlinuz
dołącz initrd=/centos5_x86/initrd.img
etykieta Instalacja CentOS 5 x86 poprzez Kickstart
jądro /centos52_x86/vmlinuz
dodaj initrd=/centos5_x86/initrd.img ks=nfs:192.168.146.1:/var/install-server/c entos5_x86/centos5_x86_ks.cfg
etykieta Zakończ
lokalny rozruch 0

Teraz, po wybraniu „CentOS 5 x86 Kickstart Installation” w menu wyboru systemu operacyjnego, będziemy musieli tylko poczekać na serwer z zainstalowanym systemem operacyjnym.

Poniżej znajduje się przykład mojego pliku Kickstart. Chciałem, aby zainstalowany system operacyjny miał opcję „PermitRootLogin tak” w ustawieniach sshd. Plik Kickstart umożliwia nie tylko ustawienie parametrów instalacji systemu operacyjnego, ale także wykonanie skryptów przed instalacją (%pre) i po (%post). W ten sposób możesz napisać wiele skryptów dostrajających i uzyskać całkowicie gotowy system operacyjny w ciągu 5-10 minut instalacji.

#platforma =x86, AMD64 lub Intel EM64T
# Informacje o autoryzacji systemu
auth --useshadow --enablemd5
# Konfiguracja bootloadera systemu
program ładujący --lokalizacja=mbr
# Wyczyść główny rekord rozruchowy
zerombr
#Informacje o czyszczeniu partycji
clearpart --all --initlabel
# Użyj instalacji w trybie tekstowym
tekst
# Konfiguracja zapory sieciowej
zapora sieciowa – wyłączona
# Uruchom agenta instalacyjnego przy pierwszym uruchomieniu
Firstboot - wyłącz
#Klawiatura systemowa
klawiaturuj nas
# Język systemu
język en_US
# Poziom rejestrowania instalacji
rejestrowanie --poziom=informacje
# Użyj nośnika instalacyjnego NFS
nfs --server=192.168.146.1 --dir=/var/server-instalacyjny/centos5_x86
# Informacje o sieci
sieć --bootproto=dhcp --device=eth0 --onboot=wł
#Hasło roota
rootpw --iscrypted $1$Bz09jb2I$hfzh2vApqMjG0sEPsAwNr/
# Konfiguracja SELinuksa
selinux – wyłączony
# Nie konfiguruj systemu X Window
pomiń
#Strefa czasowa systemu
strefa czasowa Europa/Moskwa
# Zainstaluj system operacyjny zamiast aktualizacji
zainstalować
# Informacje o partycjonowaniu dysku
zamiana części --bytes-per-i-węzeł=4096 --fstype=”zamiana” --size=512
część / --bytes-per-i-węzeł=4096 --fstype=”ext3” --grow --size=1

%post --interp /bin/bash
ŚCIEŻKA=/jakaś praca
/bin/mkdir$ŚCIEŻKA
/bin/sed -e ‘s/#PermitRootLogin tak/PermitRootLogin tak/g’ /etc/ssh/sshd_config > $PATH/sshd_config_edited
/bin/cp $PATH/sshd_config_edited /etc/ssh/sshd_config
/bin/rm -rf $ŚCIEŻKA

W tym artykule omówiono instalację systemu Ubuntu Linux z sieciowego repozytorium rozruchowego.

Zatem zainstalujemy Ubuntu 10.04 na komputerach klienckich z serwera 192.168.0.3, na którym znajduje się sieciowy serwer rozruchowy i dhcpd. Aby dokonać instalacji, repozytorium musi posiadać katalog dists/lucid/main/debian-installer. Jeśli dodasz podobne katalogi dla innych repozytoriów (multiverse, wszechświat, zastrzeżone), to na etapie „Wybór i instalacja oprogramowania” lista programów będzie większa. W tym przewodniku rozważę tę opcję. Jeśli utworzyłeś lustro debmirror, najprawdopodobniej w ogóle nie masz tych katalogów. Możesz je pobrać na przykład z ftp://mirror.yandex.ru. Ponadto podczas instalacji instalator, niezależnie od wybranego repozytorium, często uzyskuje dostęp do security.ubuntu.com.

Krok 1: Instalacja serwera

Instalacja niezbędnych aplikacji:

apt-get install tftpd-hpa openbsd-inetd

Pobierz i rozpakuj obraz do instalacji sieciowej:

tar -xvzf netboot.tar.gz -C /var/lib/tftpboot/

chown -R nikt:nogroup /var/lib/tftpboot

W przypadku rozruchu sieciowego należy przekazać klientowi 2 parametry: nazwę pliku startowego i serwer plików startowych (w dhcpd są to nazwa pliku i parametry następnego serwera):

następny serwer 192.168.0.3;
nazwa pliku „pxelinux.0”;

Serwer zainstalowany, można przystąpić do instalacji systemu.

Krok 2: Instalacja systemu

Aby zainstalować system z serwera w sieci, należy włączyć rozruch sieciowy (PXE) w BIOS-ie. Jeśli Twój BIOS obsługuje menu rozruchu, lepiej użyć go do wybrania urządzenia rozruchowego - aby nie było problemów, jeśli zapomnisz zmienić kolejność rozruchu.

Jeśli wszystko jest w porządku, pojawi się ekran powitalny instalatora:

  • Podstawowy serwer Ubuntu
  • Serwer nazw (DNS)
  • Serwer Edubuntu
  • Serwer LAMPY
  • Serwer poczty elektronicznej
  • Serwer OpenSSH
  • Baza danych PostgreSQL
  • Serwer druku
  • Serwer plików Samby
  • Chmura korporacyjna Ubuntu
  • Host maszyny wirtualnej
  • Pakiet do tworzenia i edycji 2D/3D
  • Zestaw do tworzenia i edycji dźwięku
  • Pulpit Edubuntu KDE
  • Pulpit Edubuntu
  • Pulpit Kubuntu
  • Netbook Kubuntu
  • Wtyczki audio LADSPA i DSSI
  • Duży wybór pakietów czcionek
  • Dodatkowe role Mythbuntu
  • Nakładka Mythbuntu
  • Główny backend Mythbuntu
  • Backend dla niewolników Mythbuntu
  • Netbook z Ubuntu
  • Pulpit Ubuntu
  • Pakiet do tworzenia i edycji wideo
  • Pulpit Xubuntu
  • Ręczny wybór pakietu

Obecnie coraz więcej zadań ulega automatyzacji, a wirtualizacja jest coraz częściej wykorzystywana w celu maksymalizacji wydajności serwerów. Ale nadal musisz zainstalować systemy operacyjne. Każdy robi to na swój sposób: niektórzy mają kieszenie pełne różnych obrazków na każdą okazję, inni noszą „torebkę” z płytami, a nawet dwie, w staromodny sposób. Z reguły administratorzy wykonują tę pracę z niewielką przyjemnością. Przyjrzyjmy się, jak skrócić czas wykonywania banalnych zadań, jak nauczyć komputery samodzielnego instalowania systemów, bez udziału administratora, korzystając wyłącznie z sieci lokalnej.

Zatem dzisiaj dowiemy się: instalować systemy Windows i Linux przez sieć, ładować małe obrazy ISO, przydatne oprogramowanie (wszelkiego rodzaju Kaspersky, Acronis, WinPE, memtesty), wdrażać cienkich klientów i zarządzać nimi. Żeby np. księgowa pracująca z 1C przez RDP Cię nie pobiła, bo Windows jej się zawiesił, a raport trzeba było przygotować na wczoraj... Albo skąpy szef, który nie chce aktualizować swojego komputera, podziwiał Twoje profesjonalizm, kiedy zobaczymy, jak Windows 8 radzi sobie na starych komputerach... Serwer zapewniający rozruch przez sieć (PXE) pomoże nam osiągnąć nasze podstępne cele.

Każdy administrator systemu ma w swojej skrytce uniwersalny dysk USB do awaryjnej reanimacji komputera. Zgadzam się, znacznie lepiej byłoby mieć tę samą funkcjonalność przy użyciu tylko jednej karty sieciowej. Należy również zauważyć, że możliwa jest jednoczesna praca z kilkoma węzłami jednocześnie. Zatem w zależności od naszych potrzeb mamy dwa rozwiązania: użyj PXE lub LTSP.

LTSP nie jest dla nas zbyt odpowiedni: służy do ładowania systemu operacyjnego zainstalowanego na samym serwerze przez sieć, co pozwala na korzystanie z aplikacji serwerowych LTSP. To nie jest dokładnie to, czego potrzebujemy. PXE to narzędzie do uruchamiania komputera przez sieć bez użycia lokalnych nośników danych, podobnie jak LTSP. PXE pozwala zorganizować menu rozruchowe z wieloma rozruchami, podobne do uniwersalnego „resuscytatora USB”.


Co będziemy wdrażać?

Wszystko zaczęło się od potrzeby posiadania pod ręką narzędzia do zdalnej instalacji serwera Ubuntu/Debian przez sieć, z możliwością uruchomienia Live CD małego systemu, takiego jak SliTaz lub Kolibri OS.
Jak mówią, apetyt pojawia się wraz z jedzeniem: nie mieliśmy czasu na realizację tego, co zaplanowaliśmy, a do planu dopisano szereg „chcieć”. W rezultacie lista okazała się imponująca.

  1. Cienki klient Thinstation oparty na systemie Linux.
  2. Sekcja Linuksa.
    1. Instalowanie Ubuntu 14.04 x86.
    2. Instalowanie Ubuntu 14.04 x64.
    3. Instalowanie Ubuntu 12.04 x86.
    4. Instalowanie Ubuntu 12.04 x64.
  3. Partycja Windowsa.
    1. Instalacja Windowsa 2012.
    2. Instalowanie systemu Windows 7.
  4. Acronis.
    1. Windows PE z pakietem przydatnego oprogramowania.
    2. Acronis True Image.
      1. Starszy BIOS.
      2. UEFI.
    3. Dyrektor dysku Acronis.
      1. Starszy BIOS.
      2. UEFI.
  5. Kaspersky Rescue wersja 10.
  6. Dowódca ERD od 5 do 8 poprzez obraz ISO.
  7. Memtest.

Składamy wszystko i startujemy

Jako dystrybucja dla serwera wybór padł na Ubuntu Server 14.04.2 LTS. Możesz wybrać dowolny inny system operacyjny, jedyna różnica będzie w składni. Więc zacznijmy. Będziemy potrzebować TFTP, DHCP (niekoniecznie zainstalowanego na tym samym serwerze; router może działać jako serwer DHCP), usługi do organizacji sieciowego systemu plików NFS. Rozważymy tylko te ustawienia, które nas interesują w ramach tematu. Przede wszystkim zainstalujmy wszystko, czego potrzebujesz, po dokonaniu wszystkich aktualizacji:

Kontynuacja jest dostępna tylko dla członków

Opcja 1. Dołącz do społeczności „site”, aby zapoznać się ze wszystkimi materiałami w serwisie

Członkostwo w społeczności w określonym terminie zapewni Ci dostęp do WSZYSTKICH materiałów Hackera, zwiększy Twoją osobistą zniżkę kumulacyjną i pozwoli Ci zgromadzić profesjonalną ocenę Xakep Score!

Każdy, kto zajmuje się administracją od czasu do czasu, przynajmniej raz musiał zainstalować system operacyjny na swoim komputerze. I często wszystko dzieje się w ten sposób: obraz jest pobierany, zapisywany na dysku lub dysku flash, ładowany i instalowany. Ale może się okazać, że nie masz pod ręką pendrive'a ani dysku, a instalację trzeba zakończyć wczoraj... Wtedy możesz uruchomić komputer przez sieć, a z Linuksem nie ma pod tym względem szczególnych problemów. Typowa konfiguracja to pęczek DHCP, TFTP I NFS. Ale nie miałem go pod ręką NFS, ale tam był Sambę. Musiałem więc wymyślić, jak go użyć Sambę zamiast NFS.

Wydawało się, że nic, zmieniłem ustawienia i tyle, ale coś na początku nie działało, musiałem majstrować…

Ale zacznę tutaj od samego początku. Najpierw musisz zdobyć zestaw dystrybucyjny. Odkąd umieściliśmy Mennica Linuksa Szukamy świeżego wizerunku. Pobierz dystrybucję, która nam odpowiada (zainstalowałem tę z KUMPEL, ale oczywiście nie ma to większego znaczenia). Po pobraniu obrazu musisz uzyskać dostęp do plików obrazu. Niektóre poradniki zalecają rozpakowywanie obrazka, jednak ja nie widzę w tym sensu, więc podtrzymuję opinię, że obrazek należy zamontować jako pętla. Aby nie zakłócać istniejącej kolejności, po prostu tworzymy nowy katalog, w którym montujemy obraz:

# mkdir /mnt/mint
# mount -o pętla /home/user/download/linuxmint-17-mate-64bit-v2.iso /mnt/mint

Następnie musisz udostępnić pliki w sieci, aby instalator mógł je odczytać. Jak wspomniałem powyżej, w tym celu używam Sambę. Dlatego otwórz plik konfiguracyjny i dodaj nowy udział, dodając następującą sekcję:


ścieżka = /mnt/mięta
dostępny = tak
możliwość przeglądania = tak
publiczne = tak
zapisywalny = nie

Powinno działać na ustawieniach domyślnych Sambę. Jeśli to nie zadziała, najprawdopodobniej sam coś zmieniłeś, co oznacza, że ​​znajdziesz sposób na rozwiązanie problemu. Dodaliśmy więc piłkę Mennica, za pośrednictwem którego można pobrać z sieci pliki do instalacji. Nie zapomnij o ponownym uruchomieniu Sambę aby zaakceptować nowe ustawienia.

Dla Archlinux:

# systemctl uruchom ponownie smbd
# systemctl uruchom ponownie nmbd

Dla Gentoo:

# /etc/init.d/samba uruchom ponownie

Następnie musisz przygotować bootloader sieciowy. Program nam w tym pomoże tftp-hpa. W Archlinux i w Gentoo Tak nazywa się ten pakiet. Musisz umieścić pliki ładujące w katalogu roboczym serwera FTP (w arch /srv/tftp). Skopiuj tam jądro i initrd z zamontowanego obrazu:

# cp /mnt/mint/casper/(vmlinux,initrd.lz) /srv/http

# cp /usr/lib/syslinux/bios/(pxelinux.0,menu.c32,ldlinux.c32,libutil.c32) /srv/http

DOMYŚLNE menu.c32
ETYKIETA LinuxMint
Jądro vmlinuz
DOŁĄCZ showmounts toram root=/dev/cifs boot=casper netboot=cifs nfsroot=//192.168.0.1/mint NFSOPTS=-oguest,ro initrd=initrd.lz nosplash

Gdzie 192.168.0.1 - nasz adres IP w stosunku do maszyny, na której będziemy instalować. O tak, i około nfs tam - to nie jest literówka, w trybie pracy cifs, musisz przekazać opcje typu jak dla nfs, Nie potrafię powiedzieć dlaczego. Szczególną uwagę należy zwrócić na opcję toram, gdyż bez niej wszystko wypada w połowie i nie możemy uruchomić systemu (być może to cechy samby). Jednak przy tej opcji należy pamiętać, że maszyna docelowa musi mieć wystarczającą ilość pamięci RAM, aby skopiować na nią instalator. Serwer TFTP musi zostać uruchomiony. Dla Archlinux:

# Uruchomienie systemctl tftpd.socket

Dla Gentoo:

# Uruchomienie pliku /etc/init.d/in.tftpd

Teraz BIOS docelowej maszyny musi w jakiś sposób określić, skąd jest ładowany. To nam pomoże dnsmasq(choć nie jest to konieczne, możesz skorzystać z innego serwera DHCP; tutaj opisuję, co było pod ręką). Konfigurowanie dystrybucji adresów IP (opcjonalnie zakres DHCP) według własnego uznania, dla własnej „sieci” pomiędzy maszynami. Przy instalacji ważne są dla nas tylko trzy opcje:

Dhcp-boot=/pxelinux.0
opcja dhcp = sprzedawca: PXEClient, 6,2b
pxe-service=x86PC, „Zainstaluj Linuksa”, pxelinux

Należy je dodać do konfiguracji dnsmasq i oczywiście uruchom go (lub uruchom ponownie).

Dla Archlinux:

# systemctl start dnsmasq

Dla Gentoo:

# Uruchomienie pliku /etc/init.d/dnsmasq

Pamiętaj, żeby wszystko działało, porty muszą być włączone DHCP(UDP 67,68), TFTP(UDP 69), Sambę(UDP 137.138, TCP 139.445) musi być otwarty; pamiętaj o uwzględnieniu tego w konfiguracji zapory sieciowej. Jeśli nie ma zapory ogniowej lub interfejs jest całkowicie otwarty - cóż, powinno działać.

Notatka: Ze względu na to, że systemy są stale aktualizowane, podane ścieżki plików mogą być nieprawidłowe, czyli różnić się od tych w Twoim systemie. Dlatego uważnie przyjrzyj się strukturze pakietów swojego systemu.