question about creation of updated DVD iso
Olivier Galibert
galibert at pobox.com
Tue May 23 14:42:17 UTC 2006
I've managed to make a script to create a boot.img with an updated
kernel. It's horribly hacky in places, but hey, it works.
The filesystem setup needed is a directory with as subdirectories:
- boot: The contents of boot.iso, i.e. one isolinux directory with boot.cat, etc.
- initrd: The contents of the initrd (gzip -dc initrd.img | cpio -id --no-absolute-filenames)
- configs: A directory with:
- kernel-2.6.16-1.2111_FC5.x86_64.rpm (or another one, just not a xen one I think)
- defmods.txt which is attached and comes from the anaconda-runtime
scripts and Mk.1 eyeball
- isolinux.cfg if you want to change it, otherwise remove the cp from the script
- ks.cfg if you want to add it, otehrwise remove the cp from the
script, you'll need an "ks=cdrom:/isolinux/ks.cfg" in the append of
isolinux.cfg to use it automatically
Also you need gen_initramfs_list.sh and gen_init_cpio from the linux
kernel sources somewhere (in the script they're in ../..).
Then you run mkiso, and hopefully you'll get a beautiful newboot.iso
you can use for a nfs install. It's probably reasonably easy to
extent to a dvd iso regeneration.
OG.
-------------- next part --------------
#!/bin/sh
a=`cat initrd/etc/arch`
rm -rf new
mkdir new
rsync -a initrd new
rsync -a boot new
mkdir new/kernel
(cd new/kernel; rpm2cpio ../../configs/kernel*.rpm | cpio -id --no-absolute-filenames)
v=`ls new/kernel/lib/modules`
mkdir new/modules.1 new/modules.2
find new/kernel/lib/modules -name '*.ko' |xargs -iz mv z new/modules.1
touch new/modlist.txt
for f in `cat configs/defmods.txt`; do echo $f >> new/modlist.txt; done
for f in `egrep -v '^Version' new/initrd/modules/module-info |egrep -v '^ '`; do echo $f >> new/modlist.txt; done
for f in `cat new/modlist.txt | sort -u`; do
mv new/modules.1/$f.ko new/modules.2
done
echo 'dir /'$v' 700 0 0' > new/modcpio.txt
echo 'dir /'$v'/'$a' 700 0 0' >> new/modcpio.txt
../../gen_initramfs_list.sh new/modules.2 | sed 's%file /%file '$v'/'$a'/%' >> new/modcpio.txt
../../gen_init_cpio new/modcpio.txt | gzip --best > new/initrd/modules/modules.cgz
cp new/kernel/boot/vmlinuz-$v new/boot/isolinux/vmlinuz
cp configs/isolinux.cfg configs/ks.cfg new/boot/isolinux/.
../../gen_initramfs_list.sh new/initrd > new/cpiolist.txt
../../gen_init_cpio new/cpiolist.txt | gzip --best > new/boot/isolinux/initrd.img
mkisofs -o newboot.iso \
-b isolinux/isolinux.bin -c isolinux/boot.cat \
-no-emul-boot -boot-load-size 4 -boot-info-table \
new/boot
#cdrecord dev=/dev/hdc blank=fast gracetime=0 -nofix -v -sao -eject newboot.iso
-------------- next part --------------
fat vfat nfs sunrpc lockd floppy cramfs loop edd pcspkr squashfs
ohci-hcd uhci-hcd ehci-hcd hid mousedev usb-storage sd_mod sr_mod ub
ieee1394 ohci1394 sbp2
ide-cd
sr_mod sg st sd_mod scsi_mod iscsi_tcp
fat msdos vfat ext3 reiserfs jfs xfs
dm-mod dm-zero dm-snapshot dm-mirror
md raid0 raid1 raid5 raid6
vga16fb
yenta_socket i82365 tcic pcmcia
8390
atmel
crc-ccitt
exportfs
hermes
hostap
i2o_core
ieee80211_crypt
jbd
libata
megaraid_mm
mii
mptscsih
nfs_acl
orinoco
qla2xxx
qlogicfas408
scsi_transport_fc
scsi_transport_iscsi
scsi_transport_sas
scsi_transport_spi
sungem_phy
vgastate
xor
More information about the fedora-devel-list
mailing list