diff --git a/README.md b/README.md index 779a77d..c577105 100755 --- a/README.md +++ b/README.md @@ -5,4 +5,4 @@ minimal dependencies. kernel and subsystems are/will be built in a rootless containers. -start with ./build.sh \ No newline at end of file +start with ./scripts/build_everything.sh diff --git a/scripts/build_everything.sh b/scripts/build_everything.sh index 693755e..e8a06ba 100755 --- a/scripts/build_everything.sh +++ b/scripts/build_everything.sh @@ -5,8 +5,8 @@ echo $dir cd $dir ./install_dependencies.sh ./build_kernel.sh -./build_filesystem.sh ./build_initramfs.sh +./build_filesystem.sh ./build_image.sh diff --git a/scripts/build_filesystem.sh b/scripts/build_filesystem.sh index 03c1998..5a4bca2 100755 --- a/scripts/build_filesystem.sh +++ b/scripts/build_filesystem.sh @@ -1,21 +1,28 @@ #!/bin/bash + if [ "$(id -u)" -ne 0 ]; then echo "switching from $(id -un) to root" exec sudo "$0" "$@" fi - +set -e cd "$(dirname "$0")" DIR="$(dirname "$0")" cd .. echo $PWD -if [ ! -d "./outputs/root" ]; then + +if [ ! -d ./outputs/root/bin ]; then + rm -rf './outputs/root' mkdir -p ./outputs/root/ - debootstrap noble ./outputs/root http://archive.ubuntu.com/ubuntu + debootstrap noble ./outputs/root https://us.archive.ubuntu.com/ubuntu fi rm -rf './outputs/chroot' mkdir -p ./outputs/chroot/ rsync -av ./outputs/root/ ./outputs/chroot/ mkdir -p ./outputs/chroot/proc + +if mountpoint -q "./outputs/chroot/proc/"; then + umount -lf "./outputs/chroot/proc/" +fi mount --bind /proc ./outputs/chroot/proc cp ./config/filesystem_chroot_install.sh ./outputs/chroot/filesystem_chroot_install.sh chmod +x ./outputs/chroot/filesystem_chroot_install.sh diff --git a/scripts/build_initramfs.sh b/scripts/build_initramfs.sh index 381c004..ff79f80 100755 --- a/scripts/build_initramfs.sh +++ b/scripts/build_initramfs.sh @@ -5,8 +5,9 @@ cd .. echo $PWD echo "cleaning filesystem and creating initram directories" rm -rf ./dependencies/initram/ -mkdir -p ./dependencies/ mkdir -p ./outputs/ +mkdir -p ./dependencies/ +mkdir -p ./dependencies/initram/ mkdir -p ./dependencies/initram/{bin,dev,etc,lib,proc,sbin,sys,tmp,usr} mkdir -p ./dependencies/initram/usr/{bin,sbin} mkdir -p ./dependencies/initram/etc/{bin,sbin} diff --git a/scripts/install_dependencies.sh b/scripts/install_dependencies.sh index 55542cb..d043847 100755 --- a/scripts/install_dependencies.sh +++ b/scripts/install_dependencies.sh @@ -4,8 +4,10 @@ if [ "$(id -u)" -ne 0 ]; then exec sudo "$0" "$@" fi set -e -list="kpartx podman debootstrap" +list="kpartx podman debootstrap " apt update for item in $list; do - apt list --installed $item 2>/dev/null || sudo apt-get install -y $item + apt install -y $item done +cd "$(dirname "$0")" +find . -type f -name "*" -exec chmod +x {} +