Linux
  • << DEBIAN >>

  •   Сървър на отделни хостове
  •     DNS Сървър
  •     SQL Сървър
  •     WEB Сървър
  •     Пощенски Сървър
  •   PXE Server
  •   PXE UEFI Server - TFTP
  •   Debian 9
  •     Инсталиране на Debian 9
  •     Първоначални настройки (мрежа, VIM, Кирилизация)
  •     Инсталиране и настройка на SSH
  •     Инсталиране и настройка на DNS
  •     Инсталиране и настройка на NTP
  •     Инсталиране и настройка на Apache
  •     Инсталиране и настройка на MySQL (MariaDB)
  •     Инсталиране и настройка на PHPMyAdmin
  •     Инсталиране и настройка на собствен облак
  •     Инсталиране и настройка на SAMBA
  •     Инсталиране и настройка на FTP сървър
  •     Инсталиране и настройка на OSCAM
  •     Инсталиране и настройка на Mail server
  •       Първоначално конфигуриране на базата данни
  •       Инсталиране и конфигуриране на PostFix
  •       Инсталиране и конфигуриране на Dovecot
  •       PostFix дефинира Dovecot да удостоверява
  •       RoundCube
  •       Тестване доставката на поща
  •       Създаване на TLS криптиран ключ и сертификат
  •       WEB администриране
  •       Антиспам със SpamAssassin
  •       Антиспам с RSpmad
  •   Debian 11
  •     Как зарежда Linux
  •     Разпределение на диска при BIOS и UEFI
  •     Debian 11 на BIOS върху LVM и RAID
  •     Инсталиране на Debian 11 на BIOS и ZFS
  •     Инсталиране на Debian 11 на BIOS и ZFS-1
  •     Инсталиране на Debian 11 на UEFI и ZFS
  •     ZFS Замяна на развален огледален диск
  •     Ремонт на GRUB и INITRAMFS
  •   Debian 12
  •     Първоначални настройки
  •     DNS Сървър
  •     Добавяне на втори диск
  •     Файлов сървър + WEBMIN
  •     SAMBA
  •     Инсталиране и настройка на Apache
  •     Инсталиране и настройка на Nginx
  •     MySQL и PHPMyAdmin
  •     Елементарен MAIL сървър
  •       Подобрение SSL/TLS, Maildir, LMTP
  •       Подобрение ВИРТУАЛИЗАЦИЯ без MySQL
  •       Подобрение ВИРТУАЛИЗАЦИЯ и MySQL
  •       Подобрение Антиспам - SpamAssasin
  •       Подобрение Антиспам - RSpamd
  •       Защита - SPF, DKIM и DMARK
  •       Подобрение Антивирус
  •     Пълноценен MAIL сървър
  •     Пощенски сървър с iRedMail и PHPMyAdmin
  •       DKIM, SPF и DMARK
  •     MAIL сървър за вътрешна мрежа
  •     NextCloud
  •     Сървър за отдалечен достъп - RustDESK
  • << UBUNTU >>
  •   Ubuntu SERVER 22.04
  •     Инсталиране на Ubuntu 22.04 Server
  •     Първоначални настройки на Ubuntu 22.04 Server
  •     DNS в Ubuntu 22.04 Server
  •     MySQL Apache PHPMyAdmin
  •     Пощенски сървър
  •       Пощенски сървър в опростен вариант
  •       PostFix, Dovecot по-подробно
  •   Ubuntu mini
  • << RAID >>
  •     BIOS RAID1+MSDOS
  •     BIOS RAID1+MSDOS+LVM
  •     UEFI RAID1
  • << BTRFS >>
  •     BTRFS - създаване монтиране fstab размер
  •     BTRFS - RAID
  •     BTRFS - subvolume и snapshot
  • << КОНТЕЙНЕРИ >>
  •     Инсталиране на LXC/LXD
  •     Образи (image) в LXC/LXD
  •     Контейнери в LXC/LXD
  •     Команди в LXC/LXD
  • << ОТСТРАНЯВАНЕ НА ГРЕШКИ >>
  •     SWAP
  •     InitRAMFs
  • PXE UEFI Server

    PXE (англ. Preboot eXecution Environment, произнася се като Pixie) — е среда за зареждане на компютъра с помощта на мрежовата карта, без да се използват локални носители на данни (твърди дискове, USB носители и т.н.). За да се зареди правилно системата, PXE използва протоколи IP, UDP, BOOTP и TFTP. Процеса PXE клиент-сървър протича в следния вид:

    Figure-1_reference

    - Клиента указва в UEFI (BIOS) да зарежда от PXE ROM-a на мрежовата карта >> Клиентската машина изпраща DHCP заявка до PXE сървъра >> Сървъра връща отговор (IP, Boot Server и име на сървъра) >> Клиента прави заявка с Boot Filename до DHCP сървъра >> DHCP сървъра връща Boot Loader (pxelinux.0) >> Клиента притежава зареждащия модул pxelinux.0 дава на TFTP сървъра своя MAC адрес >> TFTP сървъра приел MAC-a на клиента връща на последния персонален конфигурационен стартиращ файл >> Клиента получава всички останали необходими файлове от TFTP сървъра Структурата на PXE сървъра е: ├── bios │ ├── kernel -> /tftpboot/kernels │ ├── ldlinux.c32 │ ├── libcom32.c32 │ ├── libutil.c32 │ ├── pxelinux.0 │ ├── pxelinux.cfg -> /tftpboot/pxelinux.cfg │ └── vesamenu.c32 ├── efi │ ├── ldlinux.e64 │ ├── libcom32.c32 │ ├── libutil.c32 │ ├── menu.c32 │ ├── pxelinux.cfg -> /tftpboot/pxelinux.cfg │ ├── syslinux.efi │ └── vesamenu.c32 ├── images │ └── ubuntu2004 ├── kernelS │ ├── ubuntu1804 │ │ ├── initrd │ │ └── vmlinuz │ └── ubuntu2004 │ ├── initrd │ └── vmlinuz ├── pxelinux.cfg ├── default └── default.bk Между другото има много други начини за смъкване на образите от сървъра. Примерно използването на други протоколи като: HTTP, FTP, NFS, SAMBA и т.н. Особен случай е ако инсталирате Windows операционни системи. Там се ползва SAMBA сървър и в него се слага образа на диска за инсталиране. Още в началото трябва да създадете windowPE.iso файл, да му дадете достъп до SAMBA сървъра и чак след това да можете да го инсталирате. Накрая ще покажем как се прави WinPE.iso файла за тази цел. Спираме с теорията и започваме с реална практика. За информация съм ползвал: https://www.youtube.com/watch?v=U3RC20ANomk и https://medium.com/jacklee26/set-up-pxe-server-on-ubuntu20-04-and-window-10-e69733c1de87 но само с това не стига. Трябва да се поровите повече за да се получи това което ще искате. Всичко това се поддържа и от Windows но разбира се е свързано с даване на пари. Добро решение е Serva, но пак казвам иска се инвестиция. Поради тази причина ще ползваме Debian. За да работи PEX сървъра правилно трябва да има инсталирани DHCP сървър и TFTP сървър.

    Статични настройка на сървъра

    nano /etc/network/interfaces # The primary network interface allow-hotplug ens32 #iface ens32 inet dhcp auto ens32 iface ens32 inet static address 10.25.0.22 netmask 255.255.248.0 gateway 10.25.0.1

    Инсталиране на пакети

    Пакетите които ще вземем са еднакви както за Linux инсталации, така и за Windows. Също са валидни за работа с UEFI и BIOS.

    apt update apt install isc-dhcp-server tftpd-hpa samba vsftpd apache2 nfs-kernel-server -y

    isc-dhcp-server - DHCP сървър tftpd-hpa - TFTP сървър samba - SAMBA сървър vsftpd - FTP сървър с поддръжка на IPv6 и SSL apache2 - WEB сървър nfs-kernel-server - NFS сървър Ако щяхме да инсталираме само Linux ОС, то стигаше да се инсталират само isc-dhcp-server и tftpd-hpa. За Windows ОС се налага ползването на samba сървър. Новите компютри пък поддържат инсталиране през WEB по мрежата, така, че ще инсталираме и други методи за размяна на файлове (FTP, WEB, NFS). Между другото голяма част от услугите които инсталирахме не са активни, поради факта, че не са конфигурирани. За сега това не ни вълнува и продължаваме напред

    Създаване на TFTP папки за съхранение на PXE зареждащи файлове.

    mkdir -pv /tftpboot/{images,kernels,BIOS,UEFI}

    Създаваме едновременно папките: /tftpboot - основна папка за TFTP сървъра /tftpboot/images - папка където ще се съхраняват образите на различните ОС /tftpboot/kernels - папка където ще се съхраняват ядрата на различните ОС /tftpboot/BIOS - папка където ще се съхраняват необходимите файлове при системи работещи с BIOS /tftpboot/UEFI - папка където ще се съхраняват необходимите файлове при системи работещи с UEFI За да може да се разменят файлове между сървъра и клиента трябва да разрешим достъпа до основната папка

    chmod 777 -R /tftpboot

    Инсталиране на необходимите PXE зареждащи файлове

    За тази цел е необходимо да се инсталират пакетите syslinux и pxelinux.

    apt-get install syslinux pxelinux -y

    А сега е необходимо да разположим някои от модулите в зависимост какво ползваме, UEFI или BIOS. Има два начина за постигане на тази цел. Единия в ползването на преки пътища с ln -s, а втория е с копиране на съответните файлове по необходимите папки. За UEFI:

    cp -av /usr/lib/syslinux/modules/efi64/{ldlinux.e64,libcom32.c32,libutil.c32,vesamenu.c32} /tftpboot/UEFI


    Трябва ни още един файл syslinux.efi, за целта обаче трябва да инсталираме модула:syslinux-efi

    apt install syslinux-efi


    Сега можем да копираме и последния файл.

    cp -av /usr/lib/SYSLINUX.EFI/efi64/syslinux.efi /tftpboot/UEFI


    За BIOS:

    cp -av /usr/lib/PXELINUX/pxelinux.0 /tftpboot/BIOS cp -av /usr/lib/syslinux/modules/bios/{ldlinux.c32,libcom32.c32,libutil.c32,vesamenu.c32} /tftpboot/BIOS


    Има и още един метод, как да се сдобием с нужните файлове, които копирахме по-гре. Ползването на оригиналните пакети от официалния сайт според мен е по-верния път, но всеки сам решава за себе си.

    wget https://mirrors.edge.kernel.org/pub/linux/utils/boot/syslinux/syslinux-6.03.zip

    Изтеглили сме файловете в архивиран вид. Разопаковаме ги чрез unzip и ги разпределяме по горе указаните папки. За UEFI:

    cp ~/syslinux-6.03/efi64/com32/elflink/ldlinux/ldlinux.e64 /tftpboot/UEFI cp ~/syslinux-6.03/efi64/com32/libutil/libutil.c32 /tftpboot/UEFI cp ~/syslinux-6.03/efi64/com32/menu/menu.c32 /tftpboot/UEFI cp ~/syslinux-6.03/efi64/com32/elflink/ldlinux/ldlinux.e64 /tftpboot/UEFI cp ~/syslinux-6.03/efi64/efi64/efi/syslinux.efi /tftpboot/UEFI


    За BIOS:

    cp ~/syslinux-6.03/bios/com32/menu/menu.c32 /tftpboot/BIOS cp ~/syslinux-6.03/bios/core/pxelinux.0 /tftpboot/BIOS cp ~/syslinux-6.03/bios/com32/elflink/ldlinux.c32 /tftpboot/BIOS cp ~/syslinux-6.03/bios/com32/libutil/libutil.c32 /tftpboot/BIOS cp ~/syslinux-6.03/bios/com32/menu/vesamenu.c32 /tftpboot/BIOS cp ~/syslinux-6.03/bios/memdisk/memdisk /tftpboot/kernels


    За да можете по-лесно да се ориентирате кой файл кога се ползва при настройка на DHCP: Архитектура: Файл: x86 (32bit) bootia32.efi x64 (64bit) bootx64.efi ARM (32bit) bootarm.efi ARM (64bit) bootaa64.efi

    Конфигуриране на DHCP и TFTP

    В тази част ще трябва да се конфигурират: - TFTP в коя папка ще работи, - DHCP сървъра (адреси за раздаване и на кой интерфейс ще работи услугата), - PXE зареждащи файлове, - Локален интерфейс на който ще работи услугата DHCP. Започваме с настройката на DHCP сървъра. Тук искам да дам едно уточнение. В мрежата има работещ DHCP сървър на рутер с IP:10.25.0.1 и раздава адреси от 10.25.0.70 до 10.25.0.90. Сега ще дефинираме също DHCP сървър, пак в същата мрежа, но ще е подвластен на DHCP сървъра на рутера.

    cat << EOF > /etc/dhcp/dhcpd.conf #My subnet configuration ddns-update-style none; default-lease-time 43200; max-lease-time 86400; option arch code 93 = unsigned integer 16; # RFC4578 subnet 10.25.0.0 netmask 255.255.248.0 { option routers 10.25.0.1; option broadcast-address 10.25.7.255; range 10.25.0.70 10.25.0.80; next-server 10.25.0.22; if option arch = 00:07 or option arch = 00:09 { filename "UEFI/syslinux.efi"; } #arm platform else if option arch = 00:0b { filename "/UEFI/aarch64/bootaa64.efi"; } else { filename "BIOS/pxelinux.0"; } } authoritative; option domain-name "example.org"; option domain-name-servers 1.1.1.1, 1.0.0.1; EOF

    До тук: - Дефинирахме DHCP да работи в мрежа 10.25.0.0 с маска 255.255.248.0 - Ще се раздават адреси от 10.25.0.70 до 10.25.0.80. Рутера който имаме в мрежата също раздава адреси но от 10.25.0.70 до 10.25.0.90. На практика нашия DHCP раздава адреси в пула на DHCP на рутера. - Казваме, че руера с IP 10.25.0.1 също раздава адреси и той е водещ. - Следващия DHCP сървър с IP 10.25.0.22 (нашия) ще се ръководи от рутерския DHCP и ще е вторичен. Имаме още работа в настройката на DHCP сървъра.

    ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 00:0c:29:e8:e8:db brd ff:ff:ff:ff:ff:ff altname enp2s0 inet 10.25.0.22/21 brd 10.25.7.255 scope global ens32 valid_lft forever preferred_lft forever inet 10.25.0.86/21 brd 10.25.7.255 scope global secondary dynamic ens32 valid_lft 368sec preferred_lft 368sec inet6 fe80::20c:29ff:fee8:e8db/64 scope link valid_lft forever preferred_lft forever

    Запомнете името на мрежовия интерфейс ens32 и съответния IP адрес който има. Продължаваме с настройката на DHCP сървъра.

    nano /etc/default/isc-dhcp-server # On what interfaces should the DHCP server (dhcpd) serve DHCP requests? # Separate multiple interfaces with spaces, e.g. "eth0 eth1". INTERFACESv4="ens32" INTERFACESv6=""

    Указваме на кой интерфейс на сървъра ще работи DHCP услугата. В случая имаме един интерфейс и той е ens32. Сега още нещо ще трябва да дефинираме в DHCP сървъра. Ще обвържем IP адреси с MAC адреси. Първия ще е интерфейса ens32. Ако адреса му беше в пула с раздаване на адреси за да се изключи раздаването на неговия адрес твърдо ще укажем на този MAC трябва да се присвои това IP. Да го направим.

    ip link show ens32 2: ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000 link/ether 00:0c:29:e8:e8:db brd ff:ff:ff:ff:ff:ff nano /etc/dhcp/dhcpd.conf # Най-отдолу добавяме: host pxe { hardware ethernet 00:0c:29:e8:e8:db; fixed-address 10.25.0.22; }

    Първо видяхме на интерфейса ens32 какъв MAC адрес притежава. След това казахме за хоста phe с мрежови интерфейс с МАС адрес 00:0c:29:e8:e8:db да се присвои IP адрес 10.25.0.22. Така никой друг няма да може да има IP адрес 10.25.0.22. Ако искате още някой да дефинирате с твърд адрес то това е начина. Добавяте отдолу още една дефиниция (host име {....}). Ами готови сме. Да рестартираме DHCP сървъра.

    service isc-dhcp-server restart service isc-dhcp-server status isc-dhcp-server.service - LSB: DHCP server Loaded: loaded (/etc/init.d/isc-dhcp-server; generated) Active: active (running) since Fri 2023-02-17 15:44:00 EST; 8s ago Docs: man:systemd-sysv-generator(8) Process: 2380 ExecStart=/etc/init.d/isc-dhcp-server start (code=exited, status=0/SUCCESS) Tasks: 4 (limit: 4674) Memory: 4.9M CPU: 20ms CGroup: /system.slice/isc-dhcp-server.service └─2395 /usr/sbin/dhcpd -4 -q -cf /etc/dhcp/dhcpd.conf ens32 Feb 17 15:43:58 pxe systemd[1]: Starting LSB: DHCP server... Feb 17 15:43:58 pxe isc-dhcp-server[2380]: Launching IPv4 server only. Feb 17 15:43:58 pxe dhcpd[2395]: Wrote 0 deleted host decls to leases file. Feb 17 15:43:58 pxe dhcpd[2395]: Wrote 0 new dynamic host decls to leases file. Feb 17 15:43:58 pxe dhcpd[2395]: Wrote 0 leases to leases file. Feb 17 15:43:58 pxe dhcpd[2395]: Server starting service. Feb 17 15:44:00 pxe isc-dhcp-server[2380]: Starting ISC DHCPv4 server: dhcpd. Feb 17 15:44:00 pxe systemd[1]: Started LSB: DHCP server.

    До тук всичко работи без грешка. Да конфигурираме TFTP сървъра.

    nano /etc/default/tftpd-hpa TFTP_USERNAME="tftp" TFTP_DIRECTORY="/tftpboot" TFTP_ADDRESS=":69" TFTP_OPTIONS="--secure" RUN_DAEMON="yes" OPTIONS="-l -s /tftpboot"

    Казахме на TFTP сървъра да работи като демон услуга. Домашната папка на TFTP сървъра ще е /tftpboot. Обърнете внимание на:OPTIONS="-l -s /tftpboot". Чрез параметъра -s променихме основната директория на стартиране на TFTP сървъра да е /tftpboot. Чрез параметъра -l казахме TFTP сървъра да работи в самостоятелен режим на очакване, а няа да ползва inetd демона. Забележете услугата работи на порт 69. Ако имате защитна стена отворете този порт. Особено е важно ако ползвате сървър на Ubuntu. Командата за Ubuntu e:

    sudo ufw status sudo ufw list sudo ufw 69/udp allow


    За Debian това не важи, освен ако не сте сложили допълнително защитна стена. Да стартираме услугата TFTP.

    service tftpd-hpa start service tftpd-hpa status tftpd-hpa.service - LSB: HPA's tftp server Loaded: loaded (/etc/init.d/tftpd-hpa; generated) Active: active (running) since Fri 2023-02-17 13:43:12 EST; 45min ago Docs: man:systemd-sysv-generator(8) Tasks: 1 (limit: 4674) Memory: 668.0K CPU: 7ms CGroup: /system.slice/tftpd-hpa.service └─1097 /usr/sbin/in.tftpd --listen --user tftp --address :69 --secure /sr> Feb 17 13:43:12 pxe systemd[1]: Starting LSB: HPA's tftp server... Feb 17 13:43:12 pxe tftpd-hpa[1090]: Starting HPA's tftpd: in.tftpd. Feb 17 13:43:12 pxe systemd[1]: Started LSB: HPA's tftp server.

    Услугата работи без грешка.

    Работа с образи и ядра на ОС

    Да започнем с Linux. По-лесен е за разбиране. Ще се пробваме да създадем образи за инсталиране на най-популярните Linux дистрибуции. За начало да смъкнем iso образите им домашната ни папка. Първия образ ще е на Debian:

    cd ~/ wget https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-11.6.0-amd64-netinst.iso ls -l /root total 397312 -rw-r--r-- 1 root root 406847488 Dec 17 07:26 debian-11.6.0-amd64-netinst.iso

    Първия образ го смъкнахме. Продължаваме с образа на Ubuntu:

    cd ~/ wget http://archive.ubuntu.com/ubuntu/dists/bionic-updates/main/installer-amd64/current/images/netboot/mini.iso ls -l /root total 476160 -rw-r--r-- 1 root root 406847488 Dec 17 07:26 debian-11.6.0-amd64-netinst.iso -rw-r--r-- 1 root root 80740352 Sep 15 2021 mini.iso

    Втория образ също е смъкнат в домашната папка на root. Да смъкнем и Fedora:

    cd ~/ wget https://download.fedoraproject.org/pub/fedora/linux/releases/37/Server/x86_64/iso/Fedora-Server-netinst-x86_64-37-1.7.iso ls -l /root total 1157228 -rw-r--r-- 1 root root 406847488 Dec 17 07:26 debian-11.6.0-amd64-netinst.iso -rw-r--r-- 1 root root 697411584 Nov 5 01:48 Fedora-Server-netinst-x86_64-37-1.7.iso -rw-r--r-- 1 root root 80740352 Sep 15 2021 mini.iso

    Готови сме с популярните дистрибуции на Linux. Следващото нещо е сложим ядрата на трите дистрибуции в собствени папки. Започваме с Debian. За да копираме ядрото му от ISO образа в папка примерно /tftpboot/kernels/debian11, първо ще монтираме образа в /mnt.

    mount -o loop /root/debian-11.6.0-amd64-netinst.iso /mnt mount: /mnt: WARNING: source write-protected, mounted read-only.


    Създаваме папка за ядрото на Debian.

    mkdir –pv /tftpboot/kernels/debian11


    Копираме ядрото на Debian в току що създадената му папка.

    cp -av /mnt/install.amd/{vmlinuz,initrd.gz} /tftpboot/kernels/debian11 ls -l /tftpboot/kernels/debian11 total 24284 -r--r--r-- 1 root root 17852058 Dec 17 05:44 initrd.gz -r--r--r-- 1 root root 7008928 Dec 17 05:44 vmlinuz


    Ще копираме и още един файл в папката на ядрата. Този файл ще се ползва от всички дистрибуции на Linux.

    cp -av /usr/lib/syslinux/memdisk /tftpboot/kernels ls -l /tftpboot/kernels total 32 drwxr-xr-x 2 root root 4096 Feb 18 19:04 debian11 -rw-r--r-- 1 root root 26792 Aug 16 2020 memdisk

    С ядрото на Debian 11 сме готови. Да копираме съдържанието на самия образ на Debian в /tftpboot/images/debian11. И пак първо създаваме папката за образа.

    mkdir -pv /tftpboot/images/debian11 ls -l /tftpboot/images/ total 4 drwxr-xr-x 2 root root 4096 Feb 18 19:12 debian11


    За да прехвърлите файловете от ISO образа в /tftpboot/images/debian11 има два пътя. Първия е чрез копиране.

    cp -r /mnt/* /tftpboot/images/debian11 ls -l /tftpboot/images/debian11 total 728 -r--r--r-- 1 root root 146 Feb 18 19:17 autorun.inf dr-xr-xr-x 3 root root 4096 Feb 18 19:17 boot dr-xr-xr-x 2 root root 4096 Feb 18 19:17 css lrwxrwxrwx 1 root root 1 Feb 18 19:17 debian -> . dr-xr-xr-x 3 root root 4096 Feb 18 19:17 dists dr-xr-xr-x 4 root root 4096 Feb 18 19:17 doc dr-xr-xr-x 4 root root 4096 Feb 18 19:17 EFI dr-xr-xr-x 3 root root 4096 Feb 18 19:17 firmware -r--r--r-- 1 root root 184032 Feb 18 19:17 g2ldr -r--r--r-- 1 root root 8192 Feb 18 19:17 g2ldr.mbr dr-xr-xr-x 2 root root 4096 Feb 18 19:17 install dr-xr-xr-x 4 root root 4096 Feb 18 19:17 install.amd dr-xr-xr-x 2 root root 4096 Feb 18 19:17 isolinux -r--r--r-- 1 root root 92460 Feb 18 19:17 md5sum.txt dr-xr-xr-x 2 root root 4096 Feb 18 19:17 pics dr-xr-xr-x 3 root root 4096 Feb 18 19:17 pool -r--r--r-- 1 root root 8509 Feb 18 19:17 README.html -r--r--r-- 1 root root 291 Feb 18 19:17 README.mirrors.html -r--r--r-- 1 root root 86 Feb 18 19:17 README.mirrors.txt -r--r--r-- 1 root root 543 Feb 18 19:17 README.source -r--r--r-- 1 root root 5192 Feb 18 19:17 README.txt -r--r--r-- 1 root root 364571 Feb 18 19:17 setup.exe dr-xr-xr-x 2 root root 4096 Feb 18 19:17 tools -r--r--r-- 1 root root 233 Feb 18 19:17 win32-loader.ini

    Всичко е тук. Има и още един начин. Чрез приложението rsync. Само за информация командата е:

    rsync -av --progress /mnt/* /tftpboot/images/debian11

    Създаване на PXE стартиращо меню

    Не съм забравил за Ubuntu и Fedora, просто искам да хванете логиката, да не се разсейвате. След това ще покажа даже и за Windows. Продължаваме с менюто. Когато клиента се договори с PXE сървъра, той му предлага меню от което да се реши какво ще инсталира. Сега ще създадем и първия ред от менюто. Той ще е за Debian. Създаваме стартиращо меню:

    mkdir -vp /tftpboot/pxelinux.cfg mkdir: created directory '/tftpboot/pxelinux.cfg' touch /tftpboot/pxelinux.cfg/default nano /tftpboot/pxelinux.cfg/default default menu.c32 prompt 0 timeout 300 TIMEOUT local menu title ########## PXE Boot Menu ##########


    Добавяме ред в менюто отнасящ се за Debian

    nano /tftpboot/pxelinux.cfg/default # продължаваме с попълването на файла за Debian LABEL Debian Net Boot MENU LABEL Debian KERNEL debian/install.amd/vmlinuz append initrd=debian/install.amd/initrd.gz TEXT HELP The debian minimal install! ENDTEXT UI menu.c32 label install1 menu label ^Install Ubuntu NFS kernel /kernels/ubuntu2004/vmlinuz append initrd=/kernels/ubuntu2004/initrd \ nfsroot=192.168.2.1:/tftpboot/images/ubuntu2004 ro netboot=nfs boot=casper ip=dhcp ---label UBUNTU test MENU LABEL UBUNTU 2004 test x64 http ISO file kernel kernel_boot/ubuntu/ubuntu20.04/vmlinuz initrd= kernel_boot/ubuntu/ubuntu20.04/initrd append ip=dhcp vga=normal method=http://192.168.2.1/images/ubuntu-20.04.3-desktop-amd64.isolabel install menu label ^Install Ubuntu 20.04 LTS Desktop try and install kernel ubuntu2004/vmlinuz initrd ubuntu2004/initrd append ip=dhcp netboot=nfs \ nfsroot=192.168.100.11:/netboot/nfs/ubuntu2004/ boot=casper auto=true root=/dev/ram0 maybe-ubiquitylabel install menu label ^Install Ubuntu 20.04 LTS Desktop automatic install kernel ubuntu2004/vmlinuz initrd ubuntu2004/initrd append ip=dhcp netboot=nfs automatic-ubiquity boot=casper nfsroot=192.168.100.11:/netboot/nfs/ubuntu2004/ auto=true url=http://192.168.2.1/local-sources.seed splash toram ---








    #Ubuntu kernel location $mkdir –pv /tftpboot/kernels/ubuntu2004 $cp -av /mnt/casper/{initrd,vmlinuz} /tftpboot/kernels/ubuntu20.04#Fedora/RHEL/Centos kernel location $cp -av /mnt/isolinux/{initrd.img,vmlinuz} /tftpboot/kernels/centos For window images and kernel: For window we need one more step, we need a kernel and windpe ISO file. If you want to create WINPE.iso images, please refer PART 3. #copy window kernel $cp -av /usr/lib/syslinux/memdisk /tftpboot/kernels #copy window PW iso file inside /tftpboot/kernels $cp -av windpw.iso /tftpboot/kernels $mkdir –pv /tftpboot/images/window10 $mount -o loop window10.iso /mnt $rsync -av --progress /mnt/* /tftpboot/images/window10 $umount /mnt