{"id":1985,"date":"2023-09-09T20:58:41","date_gmt":"2023-09-09T18:58:41","guid":{"rendered":"https:\/\/linux-bibel.at\/?p=1985"},"modified":"2023-09-09T20:58:43","modified_gmt":"2023-09-09T18:58:43","slug":"pxe-boot-linux-start-ueber-das-netzwerk","status":"publish","type":"post","link":"https:\/\/linux-bibel.at\/index.php\/2023\/09\/09\/pxe-boot-linux-start-ueber-das-netzwerk\/","title":{"rendered":"PXE-Boot &#8211; Linux-Start \u00fcber das Netzwerk"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Wenn man sich schon einmal im BIOS \/ UEFI umgesehen hat, findet man dort unter den Boot-Optionen neben dem Start von Festplatte, USB oder optischem Medium auch oft den Eintrag&nbsp;<strong>PXE-Boot<\/strong>. PXE ist die Abk\u00fcrzung f\u00fcr &#8222;<em>Preboot eXecution Environment<\/em>&#8220; &#8211; schnell und einfach gesagt, bedeutet dies, man startet den Rechner \u00fcber das Netzwerk &#8211; man holt die Daten, die man zum Starten des Rechners ben\u00f6tigt von einem anderen Rechner. Man holt sich das Betriebssystem von einem anderen Rechner.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Genutzt wird PXE-Boot meist, um auf einem Rechner ein neues Betriebssystem aufzusetzen &#8211; vor allem dann, wenn man viele solcher Rechner \/ Laptops aufsetzt &#8211; etwa in einer Firma.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Standardm\u00e4\u00dfig, mit bereits installierten Betriebssystem w\u00fcrde dies also so aussehen &#8211; der Rechner startet vom auf der Festplatte installiertem Betriebssystem:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"210\" height=\"212\" src=\"https:\/\/linux-bibel.at\/wp-content\/uploads\/2023\/09\/pxe-boot.drawio.png\" alt=\"\" class=\"wp-image-1986\" srcset=\"https:\/\/linux-bibel.at\/wp-content\/uploads\/2023\/09\/pxe-boot.drawio.png 210w, https:\/\/linux-bibel.at\/wp-content\/uploads\/2023\/09\/pxe-boot.drawio-150x150.png 150w\" sizes=\"auto, (max-width: 210px) 100vw, 210px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Um ein Betriebssystem zu installieren, startet man hingegen \u00fcber ein externes Medium &#8211; etwa von einer CD\/DVD, von einem USB-Stick oder von einer externen Festplatte:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"281\" height=\"321\" src=\"https:\/\/linux-bibel.at\/wp-content\/uploads\/2023\/09\/pxe-boot.drawio1.png\" alt=\"\" class=\"wp-image-1987\" srcset=\"https:\/\/linux-bibel.at\/wp-content\/uploads\/2023\/09\/pxe-boot.drawio1.png 281w, https:\/\/linux-bibel.at\/wp-content\/uploads\/2023\/09\/pxe-boot.drawio1-263x300.png 263w\" sizes=\"auto, (max-width: 281px) 100vw, 281px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Jetzt gehen wir \u00fcber zum Start \u00fcber PXE &#8211; der Rechner startet so gesehen \u00fcber die Netzwerkkarte und holt sich das zu startende Betriebssystem von einem anderen Rechner:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"620\" height=\"212\" src=\"https:\/\/linux-bibel.at\/wp-content\/uploads\/2023\/09\/pxe-boot.drawio2.png\" alt=\"\" class=\"wp-image-1988\" srcset=\"https:\/\/linux-bibel.at\/wp-content\/uploads\/2023\/09\/pxe-boot.drawio2.png 620w, https:\/\/linux-bibel.at\/wp-content\/uploads\/2023\/09\/pxe-boot.drawio2-300x103.png 300w\" sizes=\"auto, (max-width: 620px) 100vw, 620px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Man kann jedoch nicht ganz einfach auf einem Rechner ein Image hinterlegen und dann per PXE-Boot auf dieses Image zugreifen &#8211; man muss den Rechner, auf dem das Image liegt, nat\u00fcrlich vorbereiten, damit ein anderer Rechner auf das Image zugreifen kann.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">PXE-Server vorbereiten<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">In diesem Beispiel nehmen wir Debian als Betriebssystem f\u00fcr einen PXE-Server, dies kann nat\u00fcrlich auch ein Raspberry Pi mit Raspbian OS sein. Auf dem PXE-Server, also Debian &#8211; installieren wir \u00fcber die\u00a0Paket-Verwaltung\u00a0das Paket &#8222;<strong>dnsmasq<\/strong>&#8222;. Als N\u00e4chstes muss Dnsmasq konfiguriert werden &#8211; dazu \u00f6ffnen wir als\u00a0root\u00a0auf dem\u00a0Terminal\u00a0die n\u00f6tige Konfigurationsdatei:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>vim \/etc\/dnsmasq.conf<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Oder eben:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>nano \/etc\/dnsmasq.conf<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Diese Datei gilt es jetzt an die eigenen Bed\u00fcrfnisse anzupassen &#8211; in der Regel sieht die Konfigurationsdatei anschlie\u00dfend so aus:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>enable-tftp\ntftp-root=\/var\/lib\/tftpboot\ndhcp-boot=\/pxelinux.0,0.0.0.0\ndomain-needed\nbogus-priv\nlisten-address=192.168.56.1\nexpand-hosts\ndhcp-range=192.168.56.10,192.168.56.15,12h<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Je nach Debian-Version sind die Zeilen schon vorhanden &#8211; ist dies so, entfernen Sie nur die Raute &#8222;<strong>#<\/strong>&#8220; vor der Zeile und passen die Zeilen an, alternativ f\u00fcgen Sie diese einfach am Ende der Datei als neue Zeilen hinzu.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Der PXE-Server sollte nat\u00fcrlich eine statische IP-Adresse haben &#8211; diese ermitteln Sie am Server mit dem Befehl:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ip a<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Die IP-Adresse geben Sie jetzt in der Zeile [c]listen-address=[\/c] an. In der Zeile [c]dhcp-range=[\/c] k\u00f6nnen Sie jetzt noch den IP-Bereich anpassen, welche IP-Adressen auf den Server zugreifen d\u00fcrfen &#8211; in der Regel sollte die komplette Zeile, wie beschrieben schon passen (<em>privater Adressbereich<\/em>). Die Eingabe &#8222;<strong>12h<\/strong>&#8220; k\u00f6nnen Sie so belassen, wie es ist.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Jetzt gehen Sie schon an das Eingemachte. Sie erstellen das n\u00f6tige Verzeichnis:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mkdir \/var\/lib\/tftpboot<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Anschlie\u00dfend wechseln Sie in das Verzeichnis:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cd \/var\/lib\/tftpboot\/<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Jetzt wird das eigentliche Image heruntergeladen &#8211; konkreter, wir laden nicht das Image herunter, sondern nur den Installer f\u00fcr die Netinstall. F\u00fcr Debian Bookworm:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>wget https:\/\/ftp.debian.org\/debian\/dists\/bookworm\/main\/installer-amd64\/current\/images\/netboot\/netboot.tar.gz<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Handelt es sich um eine aktuellere Version &#8211; m\u00fcssen Sie nur &#8222;<strong>bookworm<\/strong>&#8220; durch das passende Release austauschen, f\u00fcr 32 Bit passen Sie &#8222;<strong>installer-amd64<\/strong>&#8220; an &#8211; \u00f6ffnen Sie einfach die Adresse im Webbrowser und folgen den Links. Jetzt wird das komprimierte Archiv entpackt:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>tar xzvf netboot.tar.gz<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Und anschlie\u00dfend werden die Rechte an allen Dateien angepasst:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>chown nobody:nogroup -R .<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Wichtig &#8211; nicht den Punkt am Ende vergessen. Jetzt muss die Netzwerkkarte wissen, wohin Sie Anfragen weiterleiten muss &#8211; hierzu nehme ich die Iptables, Minimalkonfiguration am Terminal:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>echo 1 &gt; \/proc\/sys\/net\/ipv4\/ip_forward\niptables -A FORWARD -o eth0 -i eth1 -s 192.168.56.0\/24 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT\niptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT\niptables -A POSTROUTING -t nat -j MASQUERADE<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">F\u00fcr die Iptables wird es demn\u00e4chst einen passenden Artikel auf der Linux Bibel geben, nat\u00fcrlich auch f\u00fcr die Nftables. Jetzt wird Dnsmasq neu gestartet:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>service dnsmasq restart<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Wir bleiben nat\u00fcrlich im Verzeichnis mit dem heruntergeladenen Installer und installieren uns \u00fcber die Paket-Verwaltung folgende Pakete &#8222;<strong>pxelinux syslinux<\/strong>&#8222;. Anschlie\u00dfend passen wir unseren Installer an, wir modifizieren diesen:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mkdir \/tmp\/initrd\ncd \/tmp\/initrd\/\ncat \/var\/lib\/tftpboot\/debian-installer\/amd64\/initrd.gz | gzip -d | cpio -i\ncp \/root\/preseed.cfg .\nfind | cpio -o --format=newc | gzip -9c &gt; ..\/initrd.gz\ncp ..\/initrd.gz \/var\/lib\/tftpboot\/debian-installer\/amd64\/<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Wie oben schon beschrieben &#8211; die Befehle gelten f\u00fcr 64 Bit &#8211; passen Sie bei 32 Bit &#8222;<strong>amd64<\/strong>&#8220; wie in der Verzeichnis-Hierarchie vorgegeben an. Jetzt passen wir die Syslinux-Konfiguration an:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>vim \/var\/lib\/tftpboot\/debian-installer\/amd64\/boot-screens\/syslinux.cfg<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Oder eben:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>nano \/var\/lib\/tftpboot\/debian-installer\/amd64\/boot-screens\/syslinux.cfg<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Diese k\u00f6nnte f\u00fcr Debian Bookworm so aussehen:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># D-I config version 2.0\ninclude debian-installer\/amd64\/boot-screens\/menu.cfg\ndefault debian-installer\/amd64\/boot-screens\/vesamenu.c32\nprompt 0\ntimeout 0\nDEFAULT bookworm\n\nLABEL bookworm\n        kernel debian-installer\/amd64\/linux\n        append vga=normal initrd=debian-installer\/amd64\/initrd.gz auto=true interface=auto netcfg\/dhcp_timeout=60 netcfg\/choose_interface=auto priority=critical preseed\/file=\/preseed.cfg IPAPPEND 2<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">In der Regel m\u00fcssen Sie nur &#8222;<strong>bookworm<\/strong>&#8220; durch das gew\u00fcnschte Release austauschen. Und jetzt das Wichtigste &#8211; die Konfiguration des zu installierenden Debian. Wir erstellen diese Konfiguration im aktuellen Verzeichnis:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>vim preseed.cfg<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Oder eben:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>nano preseed.cfg<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Eine Beispiel-Konfiguration:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Locale \/ Keymap\nd-i debian-installer\/locale \t\t      string de_DE.UTF-8\nd-i debian-installer\/keymap \t\t      select de-latin1\nd-i console-keymaps-at\/keymap \t\t      select de\nd-i languagechooser\/language-name-fb \t      select German\nd-i countrychooser\/country-name \t      select Germany\nd-i console-setup\/layoutcode \t\t      string de_DE\n# Netzwerk-Konfiguration\nd-i netcfg\/dhcp_timeout                       string 30\nd-i netcfg\/choose_interface                   select eth0\nd-i netcfg\/hostname \t\t\t      string gew\u00fcnschter_hostname\n# Installationsquelle\nd-i mirror\/country                            string manual\nd-i mirror\/http\/hostname                      string ftp.de.debian.org\nd-i mirror\/http\/directory                     string \/debian\nd-i mirror\/codename                           string bookworm\nd-i mirror\/suite\t\t\t      string bookworm\nd-i mirror\/udeb\/suite \t\t\t      string bookworm\nd-i mirror\/http\/proxy                         string\nd-i mirror\/noarch \t\t\t      error\n# Installer \/ Apt-Setup\nd-i debian-installer\/allow_unauthenticated    string true\nd-i finish-install\/reboot_in_progress         note\nd-i prebaseconfig\/reboot_in_progress          note\nd-i apt-setup\/non-free                        boolean true\nd-i apt-setup\/contrib                         boolean true\n# Uhr und Zeitzone\nd-i clock-setup\/utc                           boolean true\nd-i clock-setup\/ntp                           boolean true\nd-i clock-setup\/ntp-server                    string  0.pool.ntp.org\nd-i time\/zone                                 string Europe\/Berlin\n# Partitionierung \/ Grub\nd-i partman-auto\/disk                         string \/dev\/sda\nd-i partman-auto\/method                       string regular\nd-i partman-lvm\/device_remove_lvm             boolean true\nd-i partman-auto\/purge_lvm_from_device        boolean true\nd-i partman-lvm\/confirm                       boolean true\nd-i partman\/alignment                         select cylinder\nd-i partman\/confirm                           boolean true\nd-i partman-basicfilesystems\/no_swap \t      boolean false\nd-i partman-partitioning\/confirm_write_new_label boolean true\nd-i partman\/choose_partition                  select finish\nd-i partman\/confirm_nooverwrite               boolean true\nd-i grub-installer\/only_debian                boolean true\n# Boot\/Root-Partition, Zahlen in MB\nd-i partman-auto\/expert_recipe string             \\\n condpart ::                                      \\\n 500 500 500 ext4                                 \\\n     $primary{ } $bootable{ }                     \\\n     method{ format } format{ }                   \\\n     use_filesystem{ } filesystem{ ext4 }         \\\n     mountpoint{ \/boot }                          \\\n .                                                \\\n 10240 10240 10240 ext4                              \\\n     $primary{ }                                  \\\n     method{ format } format{ }                   \\\n     use_filesystem{ } filesystem{ ext4 }         \\\n     mountpoint{ \/ }                              \\\n .                                                \\\n# Root User anlegen\nd-i passwd\/root-login\t\t\t      boolean true\nd-i passwd\/root-password-crypted \t      password passwort\n# User anlegen\nd-i passwd\/user-fullname \t\t      string Benutzer Name\nd-i passwd\/username \t\t\t      string benutzer\n# User-Passwort (hier im Klartext)\nd-i passwd\/user-password \t\t      password sicheres_passwort\nd-i passwd\/user-password-again \t\t      password sicheres_passwort\n# Software Selections\ntasksel tasksel\/first                         multiselect  ssh-server standard\nd-i     pkgsel\/include                        string       ssh vim ethtool sysstat ntp ntpdate\n# Mail-Konfiguration\nexim4-config     exim4\/no_config              boolean true\nexim4-config     exim4\/exim3_upgrade          boolean true\n# SSH-Server\nssh ssh\/new_config  \t\t \t      boolean true\nssh ssh\/use_old_init_script \t      \t      boolean true\nssh ssh\/protocol2_only      \t      \t      boolean true\nssh ssh\/run_sshd    \t\t      \t      boolean true\nssh ssh\/SUID_client \t\t      \t      boolean true\nssh ssh\/disable_cr_auth     \t      \t      boolean false\n# Pop-Contest\npopularity-contest popularity-contest\/participate boolean false<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">In diesem Fall wird ein Standard-Debian ohne grafische Oberfl\u00e4che installiert. Die Boot-Partition hat 500 Megabyte, die Systempartition 10 Gigabyte. Den Benutzer erstellen Sie mit der Zeile [c]d-i passwd\/user-fullname string Benutzer Name[\/c], den Login-Namen mit [c]d-i passwd\/username string benutzer[\/c]. Das root-Passwort mit [c]d-i passwd\/root-password-crypted password passwort[\/c], das Passwort des normalen Benutzers mit [c]d-i passwd\/user-password password sicheres_passwort[\/c] und [c]d-i passwd\/user-password-again password sicheres_passwort[\/c]. Software installieren Sie mit [c]tasksel tasksel\/first multiselect ssh-server standard[\/c] &#8211; so installieren Sie etwa KDE Plasma als grafische Oberfl\u00e4che mit:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>tasksel tasksel\/first                         multiselect  ssh-server standard plasma-desktop<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Im Grunde ist die Konfiguration recht verst\u00e4ndlich &#8211; mehr zur Konfiguration finden Sie unter\u00a0<a rel=\"noreferrer noopener\" href=\"https:\/\/wiki.debian.org\/DebianInstaller\/Preseed\" target=\"_blank\">preseed.cfg<\/a>. F\u00fcr ein absolut sicher gehashtes root-Passwort starten Sie noch den Befehl:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>printf \"sicheres_passwort\" | mkpasswd -s -m sha-512<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Dies war es schon &#8211; jetzt brauchen Sie nur noch auf den zu installierenden Rechnern im BIOS\/UEFI auf PXE-Boot umstellen und die IP-Adresse Ihres PXE-Servers angeben.<\/p>\n<div class=\"pld-like-dislike-wrap pld-custom\">\r\n    <div class=\"pld-like-wrap  pld-common-wrap\">\r\n    <a href=\"javascript:void(0)\" class=\"pld-like-trigger pld-like-dislike-trigger  \" title=\"Gef\u00e4llt mir\" data-post-id=\"1985\" data-trigger-type=\"like\" data-restriction=\"cookie\" data-already-liked=\"0\">\r\n                            <img src=\"https:\/\/linux-bibel.at\/wp-content\/uploads\/2023\/12\/Daumen-Hoch.png\" alt=\"Gef\u00e4llt mir\" \/>\r\n            <\/a>\r\n    <span class=\"pld-like-count-wrap pld-count-wrap\">0    <\/span>\r\n<\/div><div class=\"pld-dislike-wrap  pld-common-wrap\">\r\n    <a href=\"javascript:void(0)\" class=\"pld-dislike-trigger pld-like-dislike-trigger  \" title=\"Gef\u00e4llt mir nicht\" data-post-id=\"1985\" data-trigger-type=\"dislike\" data-restriction=\"cookie\" data-already-liked=\"0\">\r\n                            <img src=\"https:\/\/linux-bibel.at\/wp-content\/uploads\/2023\/12\/Daumen-Runter.png\" alt=\"Gef\u00e4llt mir nicht\" \/>\r\n            <\/a>\r\n    <span class=\"pld-dislike-count-wrap pld-count-wrap\">0<\/span>\r\n<\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>Wenn man sich schon einmal im BIOS \/ UEFI umgesehen hat, findet man dort unter den Boot-Optionen neben dem Start von Festplatte, USB oder optischem Medium auch oft den Eintrag&nbsp;PXE-Boot. PXE ist die Abk\u00fcrzung f\u00fcr &#8222;Preboot eXecution Environment&#8220; &#8211; schnell und einfach gesagt, bedeutet dies, man startet den Rechner \u00fcber das Netzwerk &#8211; man holt [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":763,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[17],"tags":[15],"class_list":["post-1985","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-system","tag-system"],"_links":{"self":[{"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/posts\/1985","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/comments?post=1985"}],"version-history":[{"count":1,"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/posts\/1985\/revisions"}],"predecessor-version":[{"id":1989,"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/posts\/1985\/revisions\/1989"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/media\/763"}],"wp:attachment":[{"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/media?parent=1985"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/categories?post=1985"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/tags?post=1985"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}