PXE Server mit iVentoy

Erstellt am 17.05.2025 um 19:31:08 Uhr | muellda

Aktualisiert am 17.05.2025 um 19:31:08 Uhr | muellda

22. Juli 2023von mb-press

iVentoy ist ein neues geniales Projekt von dem Ventoy Entwickler. Ein einfacher (i)PXE Server ohne umständliche Konfiguration.
Installieren, ISO Dateien ablegen und den Client per PXE-Boot starten.

Installation

Aktuelle iVentoy Version herunterladen und nach /opt entpacken.

wget https://github.com/ventoy/PXE/releases/download/v1.0.21/iventoy-1.0.21-linux-free.tar.gz

tar xvfz iventoy-1.0.21-linux-free.tar.gz -C /opt

ln -s /opt/iventoy-1.0.21 /opt/iventoy

Ordnerstruktur:

/opt/iventoy/

data # license file, config files

doc # documents

iso # ISO files

lib # library files that needed by iVentoy, don’t put other files here

log # log files

user # user files, third-part software, auto install scritps, etc.

iVentoy starten

root@pxe:~# cd /opt/iventoy

root@pxe:/opt/iventoy# ./iventoy.sh start

iventoy start SUCCESS PID=325

Please open your browser and visit http://127.0.0.1:26000 or http://x.x.x.x:26000 (x.x.x.x is any valid IP address)

# iVentoy Status

root@pxe:/opt/iventoy# ./iventoy.sh status

iventoy is running, PID=325

# iVentoy Webserver Port

root@pxe:/opt/iventoy# lsof -i :26000

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME

iventoy 325 root 16u IPv4 164942036 0t0 TCP *:26000 (LISTEN)

Im Browser http://iventoy-server-ip:26000 aufrufen und den PXE Service starten.

PXE Client

Client per PXE booten.

iVentoy mit externem DHCP Server

Nutzt man einen externen DHCP Server im LAN,  DHCP Server Mode auf external stellen. (third-part dhcp server)

Am externen DHCP Server die Optionen next server und bootfile setzen. (next server = iVentoy ipadresse, bootfile = iventoy_loader_16000)

iVentoy update

Nicht einfach über die alte Version entpacken! (siehe Version update)

# iVentoy stoppen

cd /opt/iventoy

./iventoy.sh stop

# neue Version herunterladen und entpacken

wget https://github.com/ventoy/PXE/releases/download/v1.0.17/iventoy-1.0.17-linux-free.tar.gz

tar xvfz iventoy-1.0.17-linux-free.tar.gz -C /opt/

# config kopieren und ISOs verschieben

cp -v /opt/iventoy/data/config.dat /opt/iventoy-1.0.17/data/

mv -v /opt/iventoy/iso/* /opt/iventoy-1.0.17/iso/

# iVentoy symlink anpassen

rm /opt/iventoy

ln -s /opt/iventoy-1.0.17 /opt/iventoy

# iVentoy starten

cd /opt/iventoy

./iventoy.sh -R start

iVentoy autostart

Nach einem reboot soll der iVentoy Webserver und PXE Service automatisch gestartet werden. Das wird mit dem Paramenter -R erreicht.

iVentoy starten, über das WebUI konfigurieren und mit dem grünen Button den PXE Service starten. Die Konfiguration wird jetzt automatisch gespeichert.
Mit der -R Option startet iVentoy automatisch den PXE Service mit der zuletzt gespeicherten Konfiguration.

Die Datei /etc/systemd/system/iventoy.service mit folgendem Inhalt erstellen.

[Unit]

Description=iVentoy – a new netboot solution

After=network.target

[Service]

Type=simple

Restart=always

WorkingDirectory=/opt/iventoy

ExecStart=/usr/bin/bash /opt/iventoy/iventoy.sh -R start

ExecStop=/usr/bin/bash /opt/iventoy/iventoy.sh stop

RemainAfterExit=yes

[Install]

WantedBy=multi-user.target

Service neu laden, aktivieren und starten.

systemctl daemon-reload

systemctl enable iventoy.service

systemctl start iventoy.service

Service Status.

systemctl status iventoy.service

● iventoy.service – iVentoy – a new netboot solution

Loaded: loaded (/etc/systemd/system/iventoy.service; enabled; preset: enabled)

Active: active (exited) since Wed 2023-07-19 12:52:26 CEST; 2s ago

Process: 737 ExecStart=/usr/bin/bash /opt/iventoy/iventoy.sh -R start (code=exited, status=0/SUCCESS)

Main PID: 737 (code=exited, status=0/SUCCESS)

Tasks: 13 (limit: 2307)

Memory: 27.7M

CPU: 611ms

CGroup: /system.slice/iventoy.service

└─750 /opt/iventoy/lib/iventoy

Jul 19 12:52:26 deb12 systemd[1]: Started iventoy.service – iVentoy – a new netboot solution.

Jul 19 12:52:26 deb12 bash[737]: iventoy start SUCCESS PID=750

Jul 19 12:52:26 deb12 bash[737]: Please open your browser and visit http://127.0.0.1:26000 or http://x.x.x.x:26000 (x.x.x.x is any valid IP address)

# iVentoy Webserver Port

lsof -i :26000

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME

iventoy 179 root 33u IPv4 6254229 0t0 TCP *:26000 (LISTEN)

# iVentoy PXE Service Port

lsof -i :69

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME

iventoy 179 root 47u IPv4 6254274 0t0 UDP 192.168.50.162:tftp

iVentoy API

Über API Requests können Werte abgefragt und Befehle ausgeführt werden. (siehe Forum)

sysinfo, get_config_all, get_img_tree, get_dhcp_mode, get_mac_filter, get_mac_deny_list, sys_ip_list, start_server, stop_server

API Request sysinfo

curl -s ‚http://192.168.50.162:26000/iventoy/json‘ –data-raw ‚{„method“:“sysinfo“}‘

{„version“: „1.0.17 Linux 64-bit“,“curdir“: „/opt/iventoy“,“language“: „en“,“uuid“: „8842ccd3-9289-441e-b0c4-a0ec80de5602″,“edition“: 0,“status“: „running“,“os“: „linux“}

# jq installieren

apt install -y jq

curl -s ‚http://192.168.50.162:26000/iventoy/json‘ –data-raw ‚{„method“:“sysinfo“}‘ | jq

{

„version“: „1.0.17 Linux 64-bit“,

„curdir“: „/opt/iventoy“,

„language“: „en“,

„uuid“: „8842ccd3-9289-441e-b0c4-a0ec80de5602“,

„edition“: 0,

„status“: „running“,

„os“: „linux“

}

Ohne und mit jq.

iVentoy im LXC Container unter Proxmox

Läuft, wenn der Container mit diesen Optionen erstellt/konfiguriert wurde.

  • unprivileged container no
  • nesting 1
  • cores 2

iVentoy sonstiges

Drückt man im Bootmenü die F5 Taste, kommt man auf die iPXE Konsole.

Ubuntu Gnome Shell

Erstellt am 16.05.2025 um 08:31:17 Uhr | muellda

Aktualisiert am 16.05.2025 um 09:43:15 Uhr | muellda

Ubuntu

Installations-DVD

Die erste Variante ist, direkt Ubuntu herunterzuladen, das ISO-Abbild auf eine DVD zu brennen und von diesem Medium zu installieren. Detaillierte Installationsanleitungen gibt es im Artikeln für die Modi BIOS-_oder_Legacy und (U)EFI.

Laufendes System

In diesem Fall wird bei einem bestehenden Kubuntu, Xubuntu, Lubuntu oder von einer Minimalinstallation ausgehend zusätzlich ein Ubuntu mit GNOME installiert. Das benötigte Metapaket, das alle weiteren benötigten Pakete installiert [1], heißt:

  • ubuntu-desktop

Befehl zum Installieren der Pakete:

sudo apt-get install ubuntu-desktop

Nachtrag: Folgender Befehl installiert das ubuntu desktop ohne zusatzsoftware:

sudo apt-get install --no-install-recommends ubuntu-desktop

Following are the options

    To install the default Unity desktop environment: sudo apt-get install ubuntu-desktop

    To install the Unity desktop environment without addons like (Email, OpenOffice): sudo aptitude install --without-recommends ubuntu-desktop

    To install a very lightweight desktop environment, just the basic GUI (XFCE): sudo apt-get install xubuntu-desktop (or LXDE: sudo apt-get install lubuntu-desktop for an even lighter GUI)

Das bedeutet, dass neben der reinen Desktop Umgebung auch die Standardanwendungen mitinstalliert werden. Anschließend kann man bei der grafischen Anmeldung wählen, welche der installierten Desktop Umgebungen geladen werden soll.

Wiki/Icons/gnome.png

GNOME

Möchte man hingegen nicht das komplette Ubuntu installieren, sondern nur GNOME auf einem bestehenden System ergänzen, dann hat man folgende beiden Möglichkeiten:

Das „echte“ GNOME

Hierbei wird eine Standard-GNOME Desktop Umgebung ohne die Ubuntu-typischen Besonderheiten und ohne das „Artwork“, aber mit zusätzlichen Anwendungen wie z.B. Evolution und LibreOffice installiert. Für die Installation des allgemeinen GNOME benötigt man das Paket:

  • gnome (universe)

Befehl zum Installieren der Pakete:

sudo apt-get install gnome 

Das minimale GNOME

Wenn man ausschließlich die Desktop-Umgebung GNOME, mit weniger zusätzlichen Anwendungen, installieren möchte, so muss folgendes Paket installiert [1] werden:

  • gnome-core (universe)

Befehl zum Installieren der Pakete:

sudo apt-get install gnome-core 

GNOME Shell

Möchte man weder das komplette GNOME Ubuntus, noch die gesamte Desktop-Umgebung GNOME installieren, sondern ausschließlich die grafische Benutzeroberfläche GNOME Shell, dann muss man dafür das folgendes Paket installieren:

  • gnome-shell

Befehl zum Installieren der Pakete:

sudo apt-get install gnome-shell 

I found a tutorial to install extensions of the Gnome-Shell.

Log into the Linux device

Execute the following commands in a terminal in order to install gnome tweaks: # install gnome tweaks utility sudo apt update sudo apt install gnome-tweaks # create the extensions directory mkdir ~/.local/share/gnome-shell/extensions -p # output the gnome shell version gnome-shell --version

Open a web browser and navigate to https://extensions.gnome.org/

Search for an extension to install and select it

From the Shell version… dropdown select the closest version to the installed gnome shell version output earlier

Select the latest version available from the Extension version… dropdown

Save the extension .zip file

Open a file manager and navigate to ~/Downloads

Extract the downloaded extension .zip file

Browse the extracted folder contents and edit metadata.json in a text editor

Copy the value of UUID key

Close the text editor

Navigate back one directory

Cut the entire extracted extension directory to ~/.local/share/gnome-shell/extensions/

Rename the directory to the UUID copied in step 11.

Restart Gnome Shell by logging out and logging back in

Launch Gnome Tweaks

Select Extensions from the left navigation menu

The newly installed extension should be listed

Enable the extension and enjoy

Raspberry Pi – remove GUI

Erstellt am 15.05.2025 um 09:27:51 Uhr | muellda

Aktualisiert am 15.05.2025 um 09:27:52 Uhr | muellda

I was able to remove the desktop environment include with Raspbian by first removing x11-common and then removing my ’stale‘ packages.

sudo apt-get remove --purge x11-common
sudo apt-get autoremove