Skip to content

Latest commit

 

History

History

7.5

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

How to build XCP-ng ISO

Splash image and other

In your ISO folder, you need to create a boot/isolinux and add:

  • pg_help
  • pg_main
  • splash.lss (see below)

In the root SO folder:

  • .treeinfo

To generate the splash image (boot/isolinux/splash.lss), you need:

  • a 640x240 banner
  • In Gimp: Image/mode/index colors/14 (=16 including B&W)
  • export in gif format, ie splash.gif
  • giftopnm < splash.gif > splash.ppm
  • ppmtolss16 < splash.ppm > splash.lss

Note: in Fedora/CentOS/RH like, those packages are needed to create the splash image:

  • syslinux-perl
  • netpbm-progs

Create repodata

Go into the future ISO folder, and run createrepo using the groups.xml in this repo:

# createrepo . -o . -g ../groups.xml

install.img modification

  1. bzip2 -d install.img
  2. mkdir tmp && cd tmp && cpio -id < ../install.img.out
  3. Edit your files
  4. As root (because of some read-protected files such as etc/gshadow-): find . | cpio --create --format='newc' > /tmp/newinstall
  5. bzip2 /tmp/newinstall
  6. mv /tmp/newinstall /tmp/install.img
  7. Replace it into the ISO

ISO generation

You need genisoimage program.

Usage:

# cd isofolder/
# genisoimage -o ../xcpng.iso -v -r -J -V "XCP-ng 7.4" -c boot/isolinux/boot.cat -b boot/isolinux/isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table -eltorito-alt-boot -e boot/efiboot.img -no-emul-boot .

This will create a xcpng.iso file into your parent directory.

To get the ISO bootable on USB:

# isohybrid --uefi xcpng.iso

Write the ISO to a USB key

# dd if=xcpng.iso of=/dev/sdX bs=4M status=progress oflag=direct && sync

Misc

To get modify a package description without "rebuilding" it completely, you can use rpmrebuild -e -p your.rpm