Add to ISO ability to boot from USB

DocImpact
Change-Id: I7b2dc2757c28881e02ed3bdb6edb7568af7bcf4d
Closes-Bug: #1387033
This commit is contained in:
Stanislaw Bogatkin 2015-02-11 20:09:55 +03:00
parent c3f3bf4c1f
commit d6093811e7
4 changed files with 26 additions and 10 deletions

View File

@ -16,7 +16,12 @@ menu color hotkey 7 #ffffffff #ff000000
menu color scrollbar 0 #ffffffff #00000000
label nailgunstatic
menu label Fuel Install (^Static IP)
menu label DVD Fuel Install (^Static IP)
menu default
kernel vmlinuz
append initrd=initrd.img biosdevname=0 ks=cdrom:/ks.cfg ip=10.20.0.2 gw=10.20.0.1 dns1=10.20.0.1 netmask=255.255.255.0 hostname=fuel.domain.tld showmenu=yes
label usbboot
menu label USB Fuel Install (S^tatic IP)
kernel vmlinuz
append initrd=initrd.img biosdevname=0 repo=hd:LABEL=will_be_substituted_with_ISO_VOLUME_ID:/ ks=hd:LABEL=will_be_substituted_with_ISO_VOLUME_ID:/ks.cfg ip=10.20.0.2 gw=10.20.0.1 dns1=10.20.0.1 netmask=255.255.255.0 hostname=fuel.domain.tld showmenu=yes

View File

@ -26,10 +26,12 @@ skipx
drives=""
removable_drives=""
for drv in `ls -1 /sys/block | grep "sd\|hd\|vd\|cciss"`; do
if (grep -q 0 /sys/block/${drv}/removable); then
drives="${drives} ${drv}"
else
removable_drives="${removable_drives} ${drv}"
if !(blkid | grep -q "${drv}.*Fuel"); then
if (grep -q 0 /sys/block/${drv}/removable); then
drives="${drives} ${drv}"
else
removable_drives="${removable_drives} ${drv}"
fi
fi
done
default_drive=`echo ${drives} ${removable_drives} | awk '{print $1}'`
@ -175,7 +177,9 @@ fi
tgtdrive=$(echo $tgtdrive | sed -e 's/!/\//')
# source
if test -e /dev/disk/by-uuid/will_be_substituted_with_actual_uuid; then
if test -e /dev/disk/by-label/will_be_substituted_with_ISO_VOLUME_ID; then
echo "harddrive --partition=LABEL=will_be_substituted_with_ISO_VOLUME_ID --dir=/" > /tmp/source.ks
elif test -e /dev/disk/by-uuid/will_be_substituted_with_actual_uuid; then
echo "harddrive --partition=UUID=will_be_substituted_with_actual_uuid --dir=/" > /tmp/source.ks
else
echo "cdrom" > /tmp/source.ks
@ -285,6 +289,8 @@ echo -e "* soft core unlimited\n* hard core unlimited" >> /etc/security/limits.c
%post --nochroot --log=/mnt/sysimage/root/anaconda-post-before-chroot.log
#!/bin/sh
set -x
SOURCE="/mnt/sysimage/tmp/source"
for I in `cat /proc/cmdline`; do case "$I" in *=*) eval $I;; esac ; done
@ -368,7 +374,9 @@ echo
mkdir -p ${SOURCE}
mkdir -p ${FS}
if test -e /dev/disk/by-uuid/will_be_substituted_with_actual_uuid; then
if test -e /dev/disk/by-label/will_be_substituted_with_ISO_VOLUME_ID; then
mount /dev/disk/by-label/will_be_substituted_with_ISO_VOLUME_ID ${SOURCE}
elif test -e /dev/disk/by-uuid/will_be_substituted_with_actual_uuid; then
mount /dev/disk/by-uuid/will_be_substituted_with_actual_uuid ${FS}
mount -o loop ${FS}/nailgun.iso ${SOURCE}
fi

View File

@ -228,10 +228,10 @@ $(BUILD_DIR)/iso/isoroot.done: \
########################
ifeq ($(filter mirantis,$(FEATURE_GROUPS)),mirantis)
ISO_VOLUME_ID:="Mirantis Fuel"
ISO_VOLUME_ID:="Mirantis_Fuel"
ISO_VOLUME_PREP:="Mirantis Inc."
else
ISO_VOLUME_ID:="OpenStack Fuel"
ISO_VOLUME_ID:="OpenStack_Fuel"
ISO_VOLUME_PREP:="Fuel team"
endif
@ -248,11 +248,14 @@ $(ISO_PATH): $(BUILD_DIR)/iso/isoroot.done
sudo sed -r -i -e "s/netmask=[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}/netmask=$(MASTER_NETMASK)/" $(BUILD_DIR)/iso/isoroot-mkisofs/isolinux/isolinux.cfg
sudo sed -r -i -e "s/gw=[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}/gw=$(MASTER_GW)/" $(BUILD_DIR)/iso/isoroot-mkisofs/isolinux/isolinux.cfg
sudo sed -r -i -e "s/will_be_substituted_with_PRODUCT_VERSION/$(PRODUCT_VERSION)/" $(BUILD_DIR)/iso/isoroot-mkisofs/isolinux/isolinux.cfg
sudo sed -r -i -e 's/will_be_substituted_with_ISO_VOLUME_ID/$(ISO_VOLUME_ID)/g' $(BUILD_DIR)/iso/isoroot-mkisofs/isolinux/isolinux.cfg
sudo sed -r -i -e 's/will_be_substituted_with_ISO_VOLUME_ID/$(ISO_VOLUME_ID)/g' $(BUILD_DIR)/iso/isoroot-mkisofs/ks.cfg
mkisofs -r -V $(ISO_VOLUME_ID) -p $(ISO_VOLUME_PREP) \
-J -T -R -b isolinux/isolinux.bin \
-no-emul-boot \
-boot-load-size 4 -boot-info-table \
-x "lost+found" -o $@ $(BUILD_DIR)/iso/isoroot-mkisofs
isohybrid $@
implantisomd5 $@
# IMGSIZE is calculated as a sum of iso size plus

View File

@ -110,7 +110,7 @@ sudo apt-get update
sudo apt-get -y install build-essential make git $GEMPKG debootstrap createrepo \
python-setuptools yum yum-utils libmysqlclient-dev isomd5sum bc \
python-nose libvirt-bin python-ipaddr python-paramiko python-yaml \
python-pip kpartx extlinux unzip genisoimage \
python-pip kpartx extlinux unzip genisoimage syslinux \
lrzip python-daemon python-dev
sudo gem install bundler -v 1.2.1
sudo gem install builder