Samuel Verschelde cd5a536347 Update .treeinfo 5 anni fa
..
boot bc4940663c Update files for XCP-ng 8.0 5 anni fa
install bc4940663c Update files for XCP-ng 8.0 5 anni fa
.treeinfo cd5a536347 Update .treeinfo 5 anni fa
EULA bc4940663c Update files for XCP-ng 8.0 5 anni fa
LICENSES bc4940663c Update files for XCP-ng 8.0 5 anni fa
README.md bc4940663c Update files for XCP-ng 8.0 5 anni fa
groups-XS.xml bc4940663c Update files for XCP-ng 8.0 5 anni fa
groups.xml 0c95a46c5a xcp-ng-updater renamed to xcp-ng-xapi-plugins 5 anni fa

README.md

How to build XCP-ng ISO

Note: some parts of this file are not up to date anymore, but it still contains valuable information so it is kept for now.

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