iglunix/createimg.sh

90 lines
2.1 KiB
Bash
Executable File

#!/bin/sh
echo "Createimg.sh"
rm iglunix.img
dd if=../tiny-linux-bootloader/disk of=iglunix.img
source build_utils
FILE_SIZE=$(stat -c %s iglunix.img)
echo "FILE_SIZE=${FILE_SIZE}"
PARTITION_START=$(($FILE_SIZE / 512))
PARTITION_START=$(($PARTITION_START + 1))
echo "PARTITION_START=${PARTITION_START}"
#create room for a partition
ls -al iglunix.img -h
dd if=/dev/zero bs=1 count=0 seek=20G of=iglunix.img
ls -al iglunix.img -h
echo "n
p
1
${PARTITION_START}
w
" | fdisk iglunix.img
PARTITION_START2=$((${PARTITION_START} * 512))
echo "PARTITION_START2: ${PARTITION_START2}"
LOOPBACK=$(losetup -o ${PARTITION_START2} -s -f iglunix.img)
echo "loopback interface: ${LOOPBACK}"
#ERROR IF NO LOOPBACK
[ -z "$LOOPBACK" ] && echo "loopback creation failed!" && exit -1
mke2fs -t ext4 -L "__IGLUNIX_ROOT" ${LOOPBACK}
ROOT=/mnt/__IGLUNIX_ROOT
umount ${ROOT}
rm -rf ${ROOT}
mkdir -p ${ROOT}
mount ${LOOPBACK} ${ROOT}
packages=(musl mksh bmake gmake llvm libressl cmake curl rsync flex byacc om4 zlib samurai libffi python ca-certificates zlib expat gettext-tiny git kati netbsd-curses kakoune iglunix rust toybox busybox less file pci-ids e2fsprogs linux util-linux linux-pam kbd)
cp_packages ${ROOT}
echo "Linked ld.lld (from llvm) to ld"
ln -s /usr/bin/ld.lld /usr/bin/ld
echo "Copying misc files & creating misc dirs for live-usb"
mkdir ${ROOT}/proc/
mkdir ${ROOT}/dev/
mkdir ${ROOT}/tmp/
mkdir ${ROOT}/sys/
mkdir ${ROOT}/mnt/
mkdir ${ROOT}/etc/
mkdir ${ROOT}/root/
cp ./pkgs/tiny-linux-bootloader/fstab ${ROOT}/etc/fstab
cp /etc/hostname ${ROOT}/etc/hostname
cp /etc/passwd ${ROOT}/etc/passwd
touch ${ROOT}/etc/shadow
echo "Using the host keymap"
cp /etc/vconsole.conf ${ROOT}/etc/vconsole.conf
#TODO: this is a systemd file,
# use udev/kbd
echo "Copying init.d files& inittab"
mkdir ${ROOT}/etc/init.d/
cp -r /iglunix/init/init.d ${ROOT}/etc/
cp /iglunix/init/inittab ${ROOT}/etc/
echo "Unmounting & closing loopback"
umount ${ROOT}
losetup -d ${LOOPBACK}
exit
# losetup -o 32256 /dev/loop0 iglunix.img
# mkfs.vfat /dev/loop0
# mount /dev/loop0 ./isoroot
# #rm -r isoroot/*
# #cp -r isoout/* isoroot
# umount ./isoroot