Creating an Unattended Install Disk
Although this process was written for SLES 8 SP 3, it was used successfully to create an unattended install disk for SLES 9 SP1.
- Mount and copy your SP CD1 to /iso/cdboot (you can delete all rpm in /iso/cdboot/ to reduce the size of the final cd).
- Mount the SP CD1 to /mnt/sp
- Perform:
cp /mnt/sp/boot/loader/linux /iso/cdboot/boot/loader/
cp /mnt/sp/boot/loader/initrd /iso/cdboot/boot/loader/
cp /mnt/sp/boot/loader/initrd /iso/
touch /iso/info
The file info is used to setup network and connect to the nfs repository
to install the system.
file:
/iso/info
install: nfs://$SERVER/$SOURCELOCATION
netdevice: eth0
textmode: 1
forceinsmod: 1
nopcmcia: 1
Note that
$SERVER and
$SOURCELOCATION are not literals; change them to your values.
An example tweak of the
isolinux.cfg to get different autoyast control file:
default autoyast#autoyast
label autoyast
kernel linux
append initrd=initrd ramdisk_size=65536 autoyast=http://$SERVER/$AUTOYAST install=nfs://$SERVER/$SOURCELOCATION#failsafe
label failsafe
kernel linux
append initrd=initrd ramdisk_size=65536 ide=nodma apm=off acpi=off# apic
#label apic
# kernel linux
# append initrd=initrd ramdisk_size=65536 apic# manual
#label manual
# kernel linux
# append initrd=initrd ramdisk_size=65536 manual=1memory test
label memtest
kernel memtestimplicit 0
gfxboot bootlogo
display message
prompt 1
timeout 100
readinfo 2
framebuffer 1
notice 2
Note that
$SERVER,
$AUTOYAST, and
$SOURCELOCATION are not literals; change them to your values.
Here is a script to create a cdboot with the sp kernel and info file
#!/bin/bash
# Script: makeiso.shINITRD=/iso/initrd
INITRD_GUNZIP=/iso/initrd_gunzip
INITRD_MOUNT=/iso/temp/initrd
INFO=$1
CDBOOT=/iso/cdboot
ISO=$2
INITRD_FINAL=$CDBOOT/boot/loader/initrdif [ "$#" -lt 2 ]
then
echo "Usage: makeiso file_info image.iso"
exit 1
fimkdir -p $INITRD_MOUNT
gunzip -q < $INITRD > $INITRD_GUNZIP
mount -o loop -t minix $INITRD_GUNZIP $INITRD_MOUNT
cp $INFO $INITRD_MOUNTumount $INITRD_MOUNTgzip < $INITRD_GUNZIP > $INITRD_FINALmkisofs -R -l -J -o $ISO -b boot/loader/isolinux.bin -c boot.catalog
-no-emul-boot -boot-load-size 4 -boot-info-table
$CDBOOT
rm -f $INITRD_GUNZIP
To use this: on a SUSE system (because by default most RedHat kernels do not include the minix file system), in /iso simply use:
# ./makeiso.sh info slescustom.iso
(
source)
Post-operative notes:
- the whole info mess may not be necessary with SLES 9: on closer examination, I see that I accidentally included the isolinux.cfg file instead of the info file; everything worked properly, presumably because I'd included both the install and autoyast parameters in my isolinux.cfg file.