KobRheTilla
used register
Diese Konfigurationsparameter kann man über DHCP dynamisch vergeben.hostname und alles was mit network/ifconfig zusammenhängt usw.
Rob
Folge dem Video um zu sehen, wie unsere Website als Web-App auf dem Startbildschirm installiert werden kann.
Anmerkung: Diese Funktion ist in einigen Browsern möglicherweise nicht verfügbar.
Diese Konfigurationsparameter kann man über DHCP dynamisch vergeben.hostname und alles was mit network/ifconfig zusammenhängt usw.
Das ist schon richtig, aber wird das beim Hochfahren eines Clients in /etc/ übernommen, wenn dieser seinen Dateibaum von nem Server (z.B. /nfsexport/InstalledLinuxOS/etc) erhält?Diese Konfigurationsparameter kann man über DHCP dynamisch vergeben.
Wenn Hostname/IP-Adresse u.ä. nicht statisch vorkonfiguriert werden, sondern die DHCP-Werte übernommen werden, geht das alles. Wir hatten in der lokalen LUG im Jahr 2005 mal auf Basis von LTSP einen PVM-Cluster aufgebaut, um ein Video zu rendern. Alle Clients wurden übers Netz gebootet:Das ist schon richtig, aber wird das beim Hochfahren eines Clients in /etc/ übernommen, wenn dieser seinen Dateibaum von nem Server (z.B. /nfsexport/InstalledLinuxOS/etc) erhält?
Eventuell macht der systemd da ggf Probleme?Soweit ich weiß kann man auch bei Linux / noch immer ro mounten, man bräuchte dann nur ein /tmp zb in einer ramdisk o.ä. dann kann man auf individuelles verzichten
Ich denke @KobRheTilla hat mit LTSP einen Weg in die richtige Richtung aufgezeigt - dort wirds mittels ner template OS Installation und Images per squashfs für die Clients gemacht. Den systemd scheinens damit ja auch im Griff zu haben.Alternativ müsste man sonst für jeden client nen eigenes / erstellen das man dann indivudell zuweist zb anhand der mac-addresse, da bekommt dann entsprechend jeder client vom dhcp seine "eigene" pxe config
/edit das kann man natürlich auch etwas komplexer gestalten und zb / individuell pro maschine mounten aber zb /usr ro für alle gleich machen, dann hat man individuelle /var /etc etc
Wäre vielleicht hernach auch ganz interessant, wie sich das mit den BSDs lösen ließe./edit2 ich meine mich übrigens sehr dumpf daran zu erinnern das mal in den 2000ern des Bastelspaßes wegen mit OpenBSD(?) genauso gemacht zu haben, da kommt gerade sehr viel gefährliches Halbwissen wieder hoch ... ich muss mal schauen, villeicht probiere ich das heute Abend mal aus, irgendwie bekomm ich da richtig lust drauf je mehr wir hier schreiben
Wäre vielleicht hernach auch ganz interessant, wie sich das mit den BSDs lösen ließe.
Die Tatsache dass das Installationsskript inkl. aller benötigten Tools in die initramfs passt. Du könntest natürlich ein komplettes Root filesystem in die initramfs legen aber die muss ja komplett in den RAM passen und wird über lahmes tftp übertragen. Darum enthält die initramfs nur alles was benötigt wird ein NFS Share einzuhängen und sobald das erledigt ist wird ein chroot aufs richtige Root Dateisystem gemacht.Wo liegt denn DER große Unterschied, ein Installationsscript aufzurufen zum Aufruf einer Shell?
git clone https://github.com/ipxe/ipxe
cd ipxe/src
#!ipxe
dhcp
chain tftp://${next-server}/ipxe/menu
./src/config/general.h
...
/*
* Download protocols
*
*/
#define DOWNLOAD_PROTO_TFTP /* Trivial File Transfer Protocol */
#define DOWNLOAD_PROTO_HTTP /* Hypertext Transfer Protocol */
#undef DOWNLOAD_PROTO_HTTPS /* Secure Hypertext Transfer Protocol */
#undef DOWNLOAD_PROTO_FTP /* File Transfer Protocol */
#undef DOWNLOAD_PROTO_SLAM /* Scalable Local Area Multicast */
//#undef DOWNLOAD_PROTO_NFS /* Network File System Protocol */
// Download via NFS
#define DOWNLOAD_PROTO_NFS /* Network File System Protocol */
//#undef DOWNLOAD_PROTO_FILE /* Local filesystem access */
/*
* SAN boot protocols
*
*/
//#undef SANBOOT_PROTO_ISCSI /* iSCSI protocol */
#define SANBOOT_PROTO_ISCSI /* iSCSI protocol */
//#undef SANBOOT_PROTO_AOE /* AoE protocol */
//#undef SANBOOT_PROTO_IB_SRP /* Infiniband SCSI RDMA protocol */
//#undef SANBOOT_PROTO_FCP /* Fibre Channel protocol */
//#undef SANBOOT_PROTO_HTTP /* HTTP SAN protocol */
// Boot via SAN HTTP
#define SANBOOT_PROTO_HTTP /* HTTP SAN protocol */
....
gmake bin/undionly.kpxe EMBED=menu.ipxe OBJCOPY=/usr/local/bin/objcopy
bin/undionly.kpxe: pxelinux loader (version 3.70 or newer)
aus dem Verzeichnis ./src/bin
nach /tftpboot/
kopiert. /tftpboot/
habe ich das Unterverzeichnis /tftpboot/ipxe
erstellt. #!ipxe
set keep-san 1
menu PXE Bootmenu
item mfsbsd mfsbsd
item tiny TinyCore
choose --default mfsbsd --timeout 3000 target && goto ${target}
:mfsbsd
sanboot http://192.168.1.137/fbsd.iso
:tiny
sanboot http://192.168.1.137/tiny.iso
/usr/local/www/apache24/data
kopiert. Damit lassen sich ISO booten wie Tiny Core Linux oder mfsBSD damit man aber bspw. die Devuan Desktop live Daten der ISO mittels PXE booten kann braucht man einen NFS Server. Dazu mit TrueNAS Core laufen und habe dort eine NFS Share eingerichtet. Wie man dies bspw. auf FreeBSD macht findet man im Handbuch.cd /PFAD/ZUM/NFS/STAMMVERZEICHNIS
fetch https://mirror.leaseweb.com/devuan/devuan_chimaera/desktop-live/devuan_chimaera_4.0.0_amd64_desktop-live.iso
mdconfig -t vnode -f devuan_chimaera_4.0.0_amd64_desktop-live.iso
mount_cd9660 /dev/md0 /media
tree /media/live/
/media/live/
├── filesystem.squashfs
├── initrd.img
└── vmlinuz
mkdir devuan
cp -R /media/live devuan/
/mnt/Media/NFS
.
└── devuan
└── live
├── filesystem.squashfs
├── initrd.img
└── vmlinuz
/tftpboot/ipxe/menu
mit# Auf deine lokale Umgebund anpassen
set nfs-server 192.168.1.2
# Auf deine lokaler Umgebung anpassen
set nfs-root /mnt/Media/NFS
:devuan
# Zu den Argumenten und Paramtern: https://www.kernel.org/doc/html/latest/admin-guide/nfs/nfsroot.html#
kernel nfs://${nfs-server}:${nfs-root}/devuan/live/vmlinuz ip=dhcp nfsroot=${nfs-server}:${nfs-root}/devuan boot=/live root=/dev/nfs
initrd nfs://${nfs-server}:${nfs-root}/devuan/live/initrd.img
boot
port=0
interface=eth0
#dhcp-range=192.168.0.0,proxy
dhcp-range=192.168.0.230,192.168.0.235
enable-tftp
tftp-root=/home/data/netboot
pxe-service=x86PC,"PXELINUX (BIOS)",bios/pxelinux
pxe-service=x86-64_EFI,"PXELINUX (EFI)",efi64/syslinux.efi
log-queries
log-facility=/var/log/dnsmasq.log
log-dhcp
data
└── netboot
├── bios
│ ├── ldlinux.c32
│ ├── libcom32.c32
│ ├── libutil.c32
│ ├── pxelinux.0
│ ├── pxelinux.cfg -> ../pxelinux.cfg
│ └── vesamenu.c32
├── boot
│ ├── desktop-live
│ │ ├── boot
│ │ ├── efi
│ │ ├── isolinux
│ │ └── live
│ └── refracta-nox
│ ├── boot
│ ├── efi
│ ├── isolinux
│ ├── live
│ └── pkglist_refracta_12-test_nox_amd64-20211116_2049
├── efi64
│ ├── ldlinux.e64
│ ├── libcom32.c32
│ ├── libutil.c32
│ ├── pxelinux.cfg -> ../pxelinux.cfg
│ ├── syslinux.efi
│ └── vesamenu.c32
├── mnt-system
└── pxelinux.cfg
├── default
└── default~
mount -o loop -t iso9660 /home/berni/Downloads/devuan_chimaera_4.0.0_amd64_desktop-live.iso /home/data/netboot/boot/desktop-live
mount -o loop -t iso9660 /home/berni/Downloads/refracta_12-test_nox_amd64-20211116_2049.iso /home/data/netboot/boot/refracta-nox
# /etc/exports: the access control list for filesystems which may be exported
# to NFS clients. See exports(5).
#
# Example for NFSv2 and NFSv3:
# /srv/homes hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check)
#
# Example for NFSv4:
# /srv/nfs4 gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check)
# /srv/nfs4/homes gss/krb5i(rw,sync,no_subtree_check)
#
/home/data/netboot/boot/desktop-live *(rw,sync,no_subtree_check)
/home/data/netboot/boot/refracta-nox *(rw,sync,no_subtree_check)
MENU TITLE PXE Boot Menu
DEFAULT vesamenu.c32
LABEL local
MENU LABEL Boot from local drive
LOCALBOOT 0xffff
MENU BEGIN amd64
MENU TITLE amd64
LABEL memtest
MENU LABEL ^Memtest
KERNEL ::boot/refracta-nox/live/memtest
APPEND vga=788
LABEL desktop-live
MENU LABEL ^Chimaera-desktop-live
KERNEL ::boot/desktop-live/live/vmlinuz
APPEND vga=788 initrd=::boot/desktop-live/live/initrd.img boot=live root=/dev/nfs nfsroot=/home/data/netboot/boot/desktop-live init=/bin/bash
LABEL refracta-nox
MENU LABEL ^Refracta-nox
KERNEL ::boot/refracta-nox/live/vmlinuz
APPEND vga=788 initrd=::boot/refracta-nox/live/initrd.img boot=live root=/dev/nfs nfsroot=/home/data/netboot/boot/refracta-nox init=/bin/bash
MENU END
4. Die beiden gemounteten Verzeichnisse dann als NFS-Laufwerke exportiert:
Wir verwenden essentielle Cookies, damit diese Website funktioniert, und optionale Cookies, um den Komfort bei der Nutzung zu verbessern.
Siehe weitere Informationen und konfiguriere deine Einstellungen