64 lines
1.2 KiB
Bash
Executable file
64 lines
1.2 KiB
Bash
Executable file
#!/bin/bash
|
|
set -e
|
|
|
|
mkdir -p ../build
|
|
cd ../build
|
|
|
|
if [ "$EUID" -ne 0 ]
|
|
then echo "Please run as root"
|
|
exit
|
|
fi
|
|
|
|
if lsblk | grep -q "loop0"; then
|
|
echo "loop0 found, trying to unmount automatically"
|
|
kpartx -d /dev/loop0
|
|
losetup -d /dev/loop0
|
|
fi
|
|
|
|
echo "Creating empty image"
|
|
dd if=/dev/zero of=0s.img bs=1M count=7500
|
|
|
|
sync
|
|
|
|
sleep 1
|
|
|
|
echo "Mouting empty image"
|
|
losetup /dev/loop0 0s.img
|
|
|
|
# echo "Zeroing empty image (no real reason to do so, still...)"
|
|
# dd if=/dev/zero of=/dev/loop0 bs=1024 count=1024
|
|
|
|
echo "Creating partitions"
|
|
|
|
# sfdisk was "upgraded" -> tons of flags removed
|
|
|
|
SIZE=`fdisk -l /dev/loop0 | grep Disk | awk '{print $5}'`
|
|
CYLINDERS=`echo $SIZE/255/63/512 | bc`
|
|
|
|
../hacks/sfdisk --force -D -uS -H 255 -S 63 -C $CYLINDERS /dev/loop0 << EOF
|
|
128,130944,0x0C,*
|
|
131072,,,-
|
|
EOF
|
|
|
|
# sfdisk --force -u S /dev/loop0 << EOF
|
|
# 128,130944,0x0C,*
|
|
# 131072,,,-
|
|
# EOF
|
|
|
|
losetup -d /dev/loop0
|
|
sync
|
|
|
|
kpartx -a 0s.img
|
|
|
|
# Resources don't become avaliable immediately
|
|
sleep 1
|
|
|
|
echo "Creating fs"
|
|
mkfs.vfat -F 32 -n "boot" /dev/mapper/loop0p1
|
|
mkfs.ext3 -F -L "rootfs" /dev/mapper/loop0p2
|
|
|
|
# Creating partitions is apperantly async
|
|
sleep 1
|
|
|
|
kpartx -d /dev/loop0
|
|
losetup -d /dev/loop0
|