diff --git a/build_initcpio.sh b/build_initcpio.sh new file mode 100755 index 0000000..4eab3ce --- /dev/null +++ b/build_initcpio.sh @@ -0,0 +1,50 @@ +#!/bin/sh + +echo "work dir: $1" + +_tools_list=( + /usr/bin/bcachefs + /usr/bin/fsck + /usr/bin/fsck.vfat + /usr/bin/switch_root + /usr/bin/blkid +) + +workdir=$1 + +echo "Populate initdramfs tree..." +cd $workdir +mkdir -p initramfs/{dev,proc,sys,run,mnt,mnt/bee_root,tmp,etc,usr,usr/bin,usr/lib} + +echo "Create /bin /lib /lib64 simlinks" +cd $workdir/initramfs +ln -s usr/lib lib64 +ln -s usr/lib lib +ln -s usr/bin bin +cd $workdir/initramfs/usr +ln -s lib lib64 + +echo "Install NYANIT..." +cd $workdir +lddtree --bindir / --copy-to-tree $workdir/initramfs init + +echo "Copy libs and binaries" +cd $workdir +lddtree --copy-to-tree $workdir/initramfs "${_tools_list[@]}" + +echo "Remove setuid flag from everything..." +chmod -R a-s $workdir/initramfs + +fakeroot -- sh << EOF +echo "Create console device node" +cd $workdir/initramfs +mknod -m 622 dev/console c 5 1 + +# Create cpio archive +echo "Create cpio archive" +cd $workdir/initramfs +find . | cpio -ov --format=newc > ../initramfs.cpio + +EOF + +echo "Done!" \ No newline at end of file