Tftpboot: Difference between revisions

From CLONWiki
Jump to navigation Jump to search
Boiarino (talk | contribs)
No edit summary
Boiarino (talk | contribs)
No edit summary
 
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
'''Tftpboot setting to boot diskless VME controllers'''
'''Tftpboot setting to boot diskless VME controllers'''


If ''/tftpboot'' directory does not exist yet, copy it from ''/usr/downloads'' (it come from Bryan Moffit in April 2025).


 
File ''/tftpboot/efi/boot/grub2/grub.cfg'' should have following contents:
Create file ''/tftpboot/efi/boot/grub2/grub.cfg'' with following contents:
 


  function load_video {
  function load_video {
Line 13: Line 12:
  insmod all_video
  insmod all_video
  }
  }
 
  load_video
  load_video
  set gfxpayload=keep
  set gfxpayload=keep
Line 19: Line 18:
  set timeout=2
  set timeout=2
  menuentry 'Diskless CentOS7 x86_64, any network device'  --class redhat --class gnu-linux --class gnu --class os {
  menuentry 'Diskless CentOS7 x86_64, any network device'  --class redhat --class gnu-linux --class gnu --class os {
  linuxefi linux-install/CentOS7-x86_64-Diskless/vmlinuz-3.10.0-1062.9.1.el7.x86_64 zram=1 ip=::::::dhcp root=nfs:192.168.10.1:/diskless/CentOS7-devel/x86_64/root ro vga=0x305 module_blacklist=ipmi_si,ipmi_msghandler,ipmi_devintf,w83977f_wdt
  linuxefi linux-install/CentOS7-x86_64-Diskless/vmlinuz-3.10.0-1062.9.1.el7.x86_64 zram=1 ip=::::::dhcp root=nfs:192.168.10.1:/diskless/CentOS7/x86_64/root ro vga=0x305 module_blacklist=ipmi_si,ipmi_msghandler,ipmi_devintf,w83977f_wdt
  initrdefi linux-install/CentOS7-x86_64-Diskless/initramfs-jvme-3.10.0-1062.9.1.el7.x86_64.img
  initrdefi linux-install/CentOS7-x86_64-Diskless/initramfs-jvme-3.10.0-1062.9.1.el7.x86_64.img
  }
  }


Edit file ''/etc/dhcp/dhcpd.conf'':
that file will serve all EFI-bootable VME controllers.
 
  subnet 192.168.10.0 netmask 255.255.255.0 {
In directory ''/tftpboot/pxelinux.cfg'', PXE-bootable controllers boot files are stored. For example:
        option domain-name "jlab.org";
  C0A80A06 -> test6
        option domain-name-servers 129.57.32.100, 129.57.32.101;
  test6
        option routers 192.168.10.1;
        use-host-decl-names true;
pool {
    range 192.168.10.2 192.168.10.20;
    deny dynamic bootp clients;
    allow unknown clients;
    }
  }


  set vendorclass = option vendor-class-identifier;
where ''C0A80A06'' is test6's IP address in hex format (192.168.10.6), and ''test6'' has following contents:
option pxe-system-type code 93 = unsigned integer 16;
  default CentOS7
set pxetype = option pxe-system-type;
label CentOS7
    kernel CentOS7-x86_64-Diskless/vmlinuz-3.10.0-1062.9.1.el7.x86_64
    append initrd=CentOS7-x86_64-Diskless/initramfs-jvme-3.10.0-1062.9.1.el7.x86_64.img ip=bootdev:dhcp root=nfs:192.168.10.1:/diskless/CentOS7/x86_64/root,tcp ro ifname=bootdev:00:20:38:0A:07:D7


# DISKLESS Clients in here
It should be mentioned that in both cases VME controller's root directories will be mounted as 'read only'. All individual controller-specific directories will be placed in 'snapshot' area.
group
{
if substring(vendorclass, 0, 9)="PXEClient" {
  if pxetype=00:06 or pxetype=00:07 {
      filename  "efi/boot/grub2/x86_64-efi/core.efi";
  } else {
      filename "linux-install/pxelinux.0";
  }
}
  next-server 192.168.10.1;
host test1 {
hardware ethernet 00:20:38:03:10:34;
fixed-address 192.168.10.4;
}
host test4 {
hardware ethernet 00:20:38:10:14:f7;
fixed-address 192.168.10.5;
}
} # Diskless clients group

Latest revision as of 16:09, 15 May 2025

Tftpboot setting to boot diskless VME controllers

If /tftpboot directory does not exist yet, copy it from /usr/downloads (it come from Bryan Moffit in April 2025).

File /tftpboot/efi/boot/grub2/grub.cfg should have following contents:

function load_video {
insmod efi_gop
insmod efi_uga
insmod video_bochs
insmod video_cirrus
insmod all_video
}

load_video
set gfxpayload=keep
insmod gzio
set timeout=2
menuentry 'Diskless CentOS7 x86_64, any network device'  --class redhat --class gnu-linux --class gnu --class os {
linuxefi linux-install/CentOS7-x86_64-Diskless/vmlinuz-3.10.0-1062.9.1.el7.x86_64 zram=1 ip=::::::dhcp root=nfs:192.168.10.1:/diskless/CentOS7/x86_64/root ro vga=0x305 module_blacklist=ipmi_si,ipmi_msghandler,ipmi_devintf,w83977f_wdt
initrdefi linux-install/CentOS7-x86_64-Diskless/initramfs-jvme-3.10.0-1062.9.1.el7.x86_64.img
}

that file will serve all EFI-bootable VME controllers.

In directory /tftpboot/pxelinux.cfg, PXE-bootable controllers boot files are stored. For example:

C0A80A06 -> test6
test6

where C0A80A06 is test6's IP address in hex format (192.168.10.6), and test6 has following contents:

default CentOS7

label CentOS7
    kernel CentOS7-x86_64-Diskless/vmlinuz-3.10.0-1062.9.1.el7.x86_64
    append initrd=CentOS7-x86_64-Diskless/initramfs-jvme-3.10.0-1062.9.1.el7.x86_64.img ip=bootdev:dhcp root=nfs:192.168.10.1:/diskless/CentOS7/x86_64/root,tcp ro ifname=bootdev:00:20:38:0A:07:D7

It should be mentioned that in both cases VME controller's root directories will be mounted as 'read only'. All individual controller-specific directories will be placed in 'snapshot' area.