======Creating a bootable USB for HP SPP ISO images======
// The steps below were tested to work on Devuan 1.0 and were used to update an HP ProLiant DL380e Gen8. //
Based on the blogpost [[http://erenturkay.com/blog/2015/05/10/creating-bootable-usb-for-hp-blades-service-pack/|Eren Türkay - Creating Bootable USB For HP Blades (Service Pack)]]. \\
Tools needed:
* fdisk from util-linux (tested with 2.25.2)
* mkfs.fat (tested with 3.0.27 (2014-11-12))
* syslinux (tested with 6.03)
* [[http://ms-sys.sourceforge.net/|ms-sys]] (tested with 2.5.3)
* gettext (for msgfmt)
// Change /dev/sdd in the below example commands to the device name of the USB device. //
// Quick check: insert the USB device, execute the 'dmesg' command, and check the last lines for the /dev/sdX name (where X is the letter of the device. //
Get the HP SPP ISO from the hpe.com website. // Tested with SPP 2017.04.0 (871795_001_spp-2017.04.0-SPP2017040.2017_0420.14.iso) //
As ms-sys does not seem to be available in Devuan 1.0 packages we need to get and compile the program. \\
Get ms-sys-2.5.3.tar.gz from the [[http://ms-sys.sourceforge.net/|ms-sys]] website.
Extract:
tar xzvf ms-sys-2.5.3.tar.gz
Compile:
cd ms-sys-2.5.3
make
// The ms-sys executable can now be found in the ./bin/ directory. // \\
// You can install it with 'make install' but I did not and used it from the compile directory instead. //
# zero-out mbr
ms-sys -z /dev/sdx
# create msdos label
parted -s /dev/sdx mklabel msdos
# write syslinux MBR provided by ms-sys
ms-sys -s /dev/sdx
Start fdisk on the USB drive:
fdisk /dev/sdd
Enter the following commands in fdisk (partial instruction):
- n one primary partition, using all space
- t and set it to type 'c' (w95 fat)
- a to set it bootable
- w to write changes
Format the partition as FAT32 (-F 32) and volume name USB (-n USB):
/sbin/mkfs.vfat -F 32 -n USB /dev/sdd1
Install syslinux on the USB drive:
/usr/bin/syslinux -i /dev/sdd1
Create the directory iso and usb under /mnt/ to mount the ISO and the USB drive:
mkdir /mnt/iso
mkdir /mnt/usb
Mount the iso and the USB drive.
mount 871795_001_spp-2017.04.0-SPP2017040.2017_0420.14.iso /mnt/iso
mount /dev/sdd1 /mnt/usb
Copy the files to the USB drive:
# Set source and destination variables.
export HP_SOURCE="/mnt/iso"
export HP_USB_DISK="/mnt/usb"
# Copy all the files from the ISO to the USB drive.
rsync -rltDuvh --progress $HP_SOURCE/ $HP_USB_DISK/
# Copy files required for booting from the /system/ directory on the ISO to the base of the USB drive.
cp -rf $HP_SOURCE/system/initrd.img $HP_USB_DISK
cp -rf $HP_SOURCE/system/vmlinuz $HP_USB_DISK
cp -rf $HP_SOURCE/system/*.c32 $HP_USB_DISK
cp -rf $HP_SOURCE/system/*.jpg $HP_USB_DISK
cp -rf $HP_SOURCE/system/blacklist $HP_USB_DISK
cp -rf $HP_SOURCE/system/sample.msg $HP_USB_DISK
cp -rf $HP_SOURCE/usb/syslinux.cfg $HP_USB_DISK
# HP's vesamenu file gives error. Copy vesamenu from system.
cp -f /usr/lib/syslinux/modules/bios/vesamenu.c32 $HP_USB_DISK
# Syslinux 6.03 needs extra files in addition to it's vesamenu.c32
cp -f /usr/lib/syslinux/modules/bios/libcom32.c32 $HP_USB_DISK/
cp -f /usr/lib/syslinux/modules/bios/libutil.c32 $HP_USB_DISK/
# Sync the changes to disk.
sync
Unmount the ISO and the USB drive:
umount /mnt/iso
umount /mnt/usb
Now the USB drive should be bootable and ready to use for firmware upgrades.