source: ProjectBuilder/projects/proliantusbkey/0.9.6/rpmbootstrap.in@ 1436

Last change on this file since 1436 was 1436, checked in by Bruno Cornec, 12 years ago
  • Upload the 0.9.6 version of the PUSK (ProLiant USB Setup Key)
File size: 2.4 KB
Line 
1#!/bin/bash
2
3[ -f '@sysconfdir@/setupkey.conf' ] && . '@sysconfdir@/setupkey.conf'
4
5[ -z "$FS_SIZE" ] && FS_SIZE=900
6
7[ -z "$PACKAGES" ] && PACKAGES="yum dos2unix bash dracut device-mapper hp-health hpacucli hponcfg libxslt libstdc++.i686 hp-scripting-tools"
8
9[ -z "$DATA" ] && DATA=$(PWD)
10
11if [ ! -d "$DATA/customized" ]; then
12 echo "Cannot find the customized files used to capture and deploy configurations. Exiting now."
13 exit 1
14fi
15
16TMPDIR=$(mktemp -d)
17FS_FILE=$TMPDIR/ext3fs.img
18DRACUT=$(which dracut)
19DRACUT_OPT="-a dmsquash-live -o plymouth -v"
20
21#cd $TMPDIR
22
23mkdir $TMPDIR/{root,rpms}
24
25[ -f $FS_FILE ] && rm -rf $FS_FILE
26
27dd if=/dev/zero of=$FS_FILE bs=1M count=$FS_SIZE
28
29if [ ! $? -eq 0 ]; then
30 echo "Was not able to create a $FS_FILE ${FS_SIZE}MB file."
31 rm -rf $TMPDIR
32 exit 1
33fi
34
35LO_DEVICE=$(losetup -f)
36
37losetup $LO_DEVICE $FS_FILE
38
39if [ ! $? -eq 0 ]; then
40 echo "Was not able to attach $FS_FILE to any loopback device."
41 rm -rf $TMPDIR
42 exit 2
43fi
44
45cleanup() {
46 echo "Removing $TMPDIR"
47 rm -rf $TMPDIR
48}
49
50mkfs.ext3 -m0 -L root_fs $LO_DEVICE
51mount -o loop $LO_DEVICE $TMPDIR/root
52
53sync
54
55echo $KERNEL
56
57mkdir $TMPDIR/root/{tmp,dev,sys,proc,mnt}
58mkdir -p $TMPDIR/root/var/lib/rpm
59
60rpm --root $TMPDIR/root --initdb
61
62mkdir -p $TMPDIR/root/etc/{yum.repos.d,pki}
63
64mount -B /dev $TMPDIR/root/dev
65mount -B /proc $TMPDIR/root/proc
66mount -B /sys $TMPDIR/root/sys
67
68cp -a /etc/pki/rpm-gpg $TMPDIR/root/etc/pki
69cp /etc/resolv.conf $TMPDIR/root/etc/
70cp /etc/yum.conf $TMPDIR/root/etc/yum.conf
71cp /etc/yum.repos.d/* $TMPDIR/root/etc/yum.repos.d/
72touch $TMPDIR/root/etc/fstab
73#cp $(dirname $RPM_LIST)/hp-scripting-tools-8.70-52.rhel6.i386.rpm $TMPDIR/root/tmp/
74#cp $DATA/hp-scripting-tools-8.70-52.rhel6.i386.rpm $TMPDIR/root/tmp/
75
76yum --installroot=$TMPDIR/root/ -y install $PACKAGES
77yum --installroot=$TMPDIR/root/ clean all
78
79#tar -C $TMPDIR/root -xvf $(dirname $RPM_LIST)/ssstk.tar
80#tar -C $TMPDIR/root -xvf ./ssstk.tar
81cp -av $DATA/customized/* $TMPDIR/root
82
83KERNEL=$(chroot $TMPDIR/root rpm -q kernel)
84KERNEL_VERSION=${KERNEL##kernel-}
85echo "Installed kernel is $KERNEL_VERSION"
86
87chroot $TMPDIR/root depmod -a $KERNEL_VERSION
88chroot $TMPDIR/root $DRACUT $DRACUT_OPT /boot/initramfs.img $KERNEL_VERSION
89
90cp $TMPDIR/root/boot/initramfs.img $DATA
91cp $TMPDIR/root/boot/vmlinuz-$KERNEL_VERSION $DATA/vmlinuz
92
93umount $TMPDIR/root/sys
94umount $TMPDIR/root/proc
95umount $TMPDIR/root/dev
96
97umount $TMPDIR/root
98
99sleep 1
100
101echo "Releasing $LO_DEVICE"
102losetup -dv $LO_DEVICE
103
104mv $FS_FILE $DATA
105
106cleanup
Note: See TracBrowser for help on using the repository browser.