|
1 | 1 | #!/bin/bash
|
2 | 2 | set -x
|
3 |
| -# Build a custom tinycore bootable image |
4 | 3 | ## define releases for tools
|
5 | 4 | . conf
|
6 |
| -PROGRAM=../../linux/CLI/dist/Release_i686/GNU-Linux/sedutil-cli |
7 |
| -VERSIONINFO=`git describe --dirty` |
8 |
| -BUILDTYPE=Rescue |
| 5 | +VERSIONINFO=`git describe --dirty` || VERSIONINFO=tarball |
| 6 | +BUILDTYPE=RESCUE32 |
| 7 | +ROOTDIR=32bit |
| 8 | + |
| 9 | +if [ x${1} == "xRescue32" ] ; then |
| 10 | + BUILDTYPE="RESCUE32" |
| 11 | + ROOTDIR="32bit" |
| 12 | +elif [ x${1} == "xRescue64" ] ; then |
| 13 | + BUILDTYPE="RESCUE64" |
| 14 | + ROOTDIR="64bit" |
| 15 | +else |
| 16 | + echo "NO BUILDTYPE specified defalted to Rescue32" |
| 17 | +fi |
9 | 18 | BUILDIMG=${BUILDTYPE}-${VERSIONINFO}.img
|
10 | 19 | echo "Building " $BUILDTYPE "image"
|
11 |
| -# Start fresh |
12 |
| -sudo rm -rf ${BUILDTYPE} ; mkdir ${BUILDTYPE} ; cd ${BUILDTYPE} |
13 |
| -[ -f ../scratch/${SYSLINUX}/bios/mbr/mbr.bin -a \ |
14 |
| - -x ../scratch/${SYSLINUX}/bios/extlinux/extlinux -a \ |
15 |
| - -f ../scratch/core.gz -a \ |
16 |
| - -f ../scratch/vmlinuz -a \ |
17 |
| - -f ../scratch/hdparm.tcz -a \ |
18 |
| - -f ${PROGRAM} \ |
19 |
| - ] || { echo " prereqs are not available "; exit 1; } |
| 20 | +[ -f scratch/${SYSLINUX}/bios/mbr/mbr.bin ] || { echo " prereqs are not available "; exit 1; } |
| 21 | +[ -x scratch/${SYSLINUX}/bios/extlinux/extlinux ] || { echo " prereqs are not available "; exit 1; } |
| 22 | +[ -f scratch/${SYSLINUX}/efi64/efi/syslinux.efi ] || { echo " prereqs are not available "; exit 1; } |
| 23 | +[ -f scratch/${SYSLINUX}/efi64/com32/elflink/ldlinux/ldlinux.e64 ] || { echo " prereqs are not available "; exit 1; } |
| 24 | +[ -f scratch/buildroot/${ROOTDIR}/images/bzImage ] || { echo " prereqs are not available "; exit 1; } |
| 25 | +[ -f scratch/buildroot/${ROOTDIR}/images/rootfs.cpio.xz ] || { echo " prereqs are not available "; exit 1; } |
| 26 | +[ -x scratch/buildroot/${ROOTDIR}/target/sbin/linuxpba ] || { echo " prereqs are not available "; exit 1; } |
| 27 | +[ -x scratch/buildroot/${ROOTDIR}/target/sbin/sedutil-cli ] || { echo " prereqs are not available "; exit 1; } |
| 28 | +[ -f buildroot/syslinux.cfg ] || { echo " prereqs are not available "; exit 1; } |
| 29 | +[ -f UEFI64/UEFI64-*.img.gz ] || { echo " prereqs are not available "; exit 1; } |
| 30 | +[ -f BIOS32/BIOS32-*.img.gz ] || { echo " prereqs are not available "; exit 1; } |
| 31 | +# |
| 32 | +# Remaster the root file system |
| 33 | +sudo rm -rf scratch/rescuefs |
| 34 | +sudo rm -f scratch/buildroot/${ROOTDIR}/images/rescuefs.cpio.xz |
| 35 | +mkdir scratch/rescuefs |
| 36 | +cd scratch/rescuefs |
| 37 | +xz --decompress --stdout ../buildroot/${ROOTDIR}/images/rootfs.cpio.xz | sudo cpio -i -H newc -d |
| 38 | +#weird permission denied on etc/issue |
| 39 | +echo "* ***********************************" > /tmp/issue |
| 40 | +echo "* DTA sedutil rescue image ${BUILDIMG}" >> /tmp/issue |
| 41 | +echo "*" >> /tmp/issue |
| 42 | +echo "* Login as root, there is no password" >> /tmp/issue |
| 43 | +echo "*" >> /tmp/issue |
| 44 | +echo "* ***********************************" >> /tmp/issue |
| 45 | +sudo mv /tmp/issue etc/issue |
| 46 | +sudo rm etc/init.d/S99* |
| 47 | +sudo mkdir -p usr/sedutil |
| 48 | +sudo cp ../../UEFI64/UEFI64-*.img.gz usr/sedutil/ |
| 49 | +sudo cp ../../BIOS32/BIOS32-*.img.gz usr/sedutil/ |
| 50 | +sudo find . | sudo cpio -o -H newc | xz -9 -C crc32 -c > ../buildroot/${ROOTDIR}/images/rescuefs.cpio.xz |
| 51 | +cd ../.. |
20 | 52 | #
|
21 |
| -dd if=/dev/zero of=${BUILDIMG} bs=1M count=15 |
22 |
| -(echo o;echo n;echo p;echo 1;echo "";echo "";echo a;echo 1;echo w) | fdisk -C 100 ${BUILDIMG} |
23 |
| -dd if=../scratch/${SYSLINUX}/bios/mbr/mbr.bin of=${BUILDIMG} count=1 conv=notrunc bs=512 |
| 53 | +sudo rm -rf ${BUILDTYPE} ; mkdir ${BUILDTYPE} ; cd ${BUILDTYPE} |
| 54 | +dd if=/dev/zero of=${BUILDIMG} bs=1M count=128 |
| 55 | +if [ ${BUILDTYPE} == "RESCUE32" ] ; then |
| 56 | + (echo o;echo n;echo p;echo 1;echo "";echo "";echo a;echo 1;echo w) | fdisk -C 100 ${BUILDIMG} |
| 57 | + dd if=../scratch/${SYSLINUX}/bios/mbr/mbr.bin of=${BUILDIMG} count=1 conv=notrunc bs=512 |
| 58 | +else |
| 59 | + (echo "n";echo "";echo "";echo "";echo "ef00";echo w;echo Y) | gdisk ${BUILDIMG} |
| 60 | +fi |
24 | 61 | LOOPDEV=`sudo losetup --show -f -o 1048576 ${BUILDIMG}`
|
25 |
| -sudo mkfs.ext4 $LOOPDEV -L ${BUILDTYPE}-${VERSIONINFO} |
| 62 | +if [ ${BUILDTYPE} == "RESCUE32" ] ; then |
| 63 | + sudo mkfs.ext4 $LOOPDEV -L ${BUILDTYPE} |
| 64 | +else |
| 65 | + sudo mkfs.vfat $LOOPDEV -n ${BUILDTYPE} |
| 66 | +fi |
26 | 67 | mkdir image
|
27 | 68 | sudo mount $LOOPDEV image
|
28 | 69 | sudo chmod 777 image
|
29 |
| -mkdir -p image/boot/extlinux |
30 |
| -sudo ../scratch/${SYSLINUX}/bios/extlinux/extlinux --install image/boot/extlinux |
31 |
| -cp ../scratch/vmlinuz image/boot/ |
32 |
| -echo "default DTA" >>image/boot/extlinux/extlinux.conf |
33 |
| -echo "prompt 0" >>image/boot/extlinux/extlinux.conf |
34 |
| -echo "noescape 1" >>image/boot/extlinux/extlinux.conf |
35 |
| -echo "label DTA" >>image/boot/extlinux/extlinux.conf |
36 |
| -echo " kernel /boot/vmlinuz" >>image/boot/extlinux/extlinux.conf |
37 |
| -echo " initrd /boot/core.gz" >>image/boot/extlinux/extlinux.conf |
38 |
| -echo " append loglevel=0 libata.allow_tpm=1 tinycore base norestore noswap superuser" >>image/boot/extlinux/extlinux.conf |
39 |
| -## Remaster the initrd |
40 |
| -mkdir core |
41 |
| -cd core |
42 |
| -zcat ../../scratch/core.gz | sudo cpio -i -H newc -d |
43 |
| -cd .. |
44 |
| -sudo mkdir -p core/usr/local/sbin/ |
45 |
| -sudo unsquashfs -f -li -d core ../scratch/hdparm.tcz |
46 |
| -sudo cp ${PROGRAM} core/usr/local/sbin/ |
47 |
| -## now repackage it |
48 |
| -cd core |
49 |
| -sudo find | sudo cpio -o -H newc | gzip -9 > ../image/boot/core.gz |
50 |
| -cd .. |
51 |
| -sudo rm -rf core |
| 70 | +if [ ${BUILDTYPE} == "RESCUE32" ] ; then |
| 71 | + sudo mkdir -p image/boot/extlinux |
| 72 | + sudo ../scratch/${SYSLINUX}/bios/extlinux/extlinux --install image/boot/extlinux |
| 73 | + sudo cp ../scratch/buildroot/32bit/images/bzImage image/boot/extlinux/ |
| 74 | + sudo cp ../scratch/buildroot/32bit/images/rescuefs.cpio.xz image/boot/extlinux/rootfs.cpio.xz |
| 75 | + sudo cp ../buildroot/syslinux.cfg image/boot/extlinux/extlinux.conf |
| 76 | +else |
| 77 | + sudo mkdir -p image/EFI/boot |
| 78 | + sudo cp ../scratch/${SYSLINUX}/efi64/efi/syslinux.efi image/EFI/boot/bootx64.efi |
| 79 | + sudo cp ../scratch/${SYSLINUX}/efi64/com32/elflink/ldlinux/ldlinux.e64 image/EFI/boot/ |
| 80 | + sudo cp ../scratch/buildroot/64bit/images/bzImage image/EFI/boot/ |
| 81 | + sudo cp ../scratch/buildroot/64bit/images/rescuefs.cpio.xz image/EFI/boot/rootfs.cpio.xz |
| 82 | + sudo cp ../buildroot/syslinux.cfg image/EFI/boot/ |
| 83 | +fi |
52 | 84 | sudo umount image
|
53 | 85 | sudo losetup -d $LOOPDEV
|
54 | 86 | gzip ${BUILDIMG}
|
0 commit comments