shimboot/build_rootfs.sh

60 lines
1.3 KiB
Bash
Raw Normal View History

2023-10-20 06:38:45 -04:00
#!/bin/bash
#build the debian rootfs
set -e
if [ "$DEBUG" ]; then
set -x
fi
print_help() {
2023-12-21 19:58:08 -05:00
echo "Usage: ./build_rootfs.sh rootfs_path release_name [custom_packages]"
2023-10-20 06:38:45 -04:00
}
check_deps() {
local needed_commands="realpath debootstrap"
for command in $needed_commands; do
if ! command -v $command &> /dev/null; then
echo $command
fi
done
}
if [ "$EUID" -ne 0 ]; then
echo "this needs to be run as root."
exit 1
fi
if [ -z "$2" ]; then
print_help
exit 1
fi
missing_commands=$(check_deps)
if [ "${missing_commands}" ]; then
echo "You are missing dependencies needed for this script."
echo "Commands needed:"
echo "${missing_commands}"
exit 1
fi
rootfs_dir=$(realpath "${1}")
release_name="${2}"
2023-12-21 19:58:08 -05:00
packages="${3-'task-xfce-desktop'}"
2023-10-20 06:38:45 -04:00
2023-10-21 05:06:52 -04:00
debootstrap --arch amd64 $release_name $rootfs_dir http://deb.debian.org/debian/
cp -ar rootfs/* $rootfs_dir
2023-10-20 22:30:02 -04:00
chroot_mounts="proc sys dev run"
for mountpoint in $chroot_mounts; do
mount --make-rslave --rbind "/${mountpoint}" "${rootfs_dir}/$mountpoint"
done
2023-12-21 19:58:08 -05:00
chroot_command="DEBUG=${DEBUG} release_name=${release_name} packages=${packages} /opt/setup_rootfs.sh"
2023-10-20 08:39:43 -04:00
chroot $rootfs_dir /bin/bash -c "${chroot_command}"
2023-10-20 22:30:02 -04:00
for mountpoint in $chroot_mounts; do
umount -l "${rootfs_dir}/$mountpoint"
2023-10-20 22:30:02 -04:00
done
2023-10-20 08:39:43 -04:00
echo "rootfs has been created"