Samuel Verschelde cd5a536347 Update .treeinfo 5 سال پیش
..
boot bc4940663c Update files for XCP-ng 8.0 5 سال پیش
install bc4940663c Update files for XCP-ng 8.0 5 سال پیش
.treeinfo cd5a536347 Update .treeinfo 5 سال پیش
EULA bc4940663c Update files for XCP-ng 8.0 5 سال پیش
LICENSES bc4940663c Update files for XCP-ng 8.0 5 سال پیش
README.md bc4940663c Update files for XCP-ng 8.0 5 سال پیش
groups-XS.xml bc4940663c Update files for XCP-ng 8.0 5 سال پیش
groups.xml 0c95a46c5a xcp-ng-updater renamed to xcp-ng-xapi-plugins 5 سال پیش

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