Initial commit
This commit is contained in:
72
build-rootfs.sh
Executable file
72
build-rootfs.sh
Executable file
@@ -0,0 +1,72 @@
|
||||
#!/bin/sh
|
||||
# vim: set sw=4 ts=4 sts=4 et :
|
||||
|
||||
set -e
|
||||
|
||||
. ./config
|
||||
|
||||
mkdir -p /mnt/gentoo/usr/bin
|
||||
[ -h /mnt/gentoo/bin ] || ln -s usr/bin /mnt/gentoo/bin
|
||||
[ -h /mnt/gentoo/sbin ] || ln -s usr/sbin /mnt/gentoo/sbin
|
||||
[ -h /mnt/gentoo/usr/sbin ] || ln -s bin /mnt/gentoo/usr/sbin
|
||||
|
||||
mkdir -p /mnt/gentoo/etc/portage
|
||||
ln -snf \
|
||||
/var/db/repos/gentoo/profiles/${profile} \
|
||||
/mnt/gentoo/etc/portage/make.profile
|
||||
cp -r portage/. /mnt/gentoo/etc/portage/
|
||||
|
||||
ROOT=/mnt/gentoo \
|
||||
PORTAGE_CONFIGROOT=/mnt/gentoo \
|
||||
${target}-emerge -Kvnj \
|
||||
sys-apps/busybox \
|
||||
sys-apps/systemd \
|
||||
net-misc/openssh \
|
||||
net-misc/wget \
|
||||
sys-fs/btrfs-progs \
|
||||
--
|
||||
ROOT=/mnt/gentoo \
|
||||
PORTAGE_CONFIGROOT=/mnt/gentoo \
|
||||
${target}-emerge -vnj \
|
||||
net-wireless/wireless-regdb \
|
||||
sys-kernel/linux-firmware \
|
||||
--
|
||||
|
||||
mkdir -p \
|
||||
/mnt/gentoo/boot/efi \
|
||||
/mnt/gentoo/dev \
|
||||
/mnt/gentoo/home \
|
||||
/mnt/gentoo/proc \
|
||||
/mnt/gentoo/sys \
|
||||
|| exit
|
||||
|
||||
: > /mnt/gentoo/etc/machine-id
|
||||
|
||||
while read name; do
|
||||
if [ ! -h /mnt/gentoo/bin/"${name}" ]; then
|
||||
printf "'/bin/%s' -> 'busybox'\n" "${name}"
|
||||
ln -snf busybox /mnt/gentoo/bin/"${name}" \
|
||||
|| printf 'Failed to create busybox symlink for %s\n' "${name}"
|
||||
fi
|
||||
done < busybox.symlinks
|
||||
|
||||
tar -c -C overlay . \
|
||||
| tar -x --keep-newer-files -C /mnt/gentoo
|
||||
|
||||
cp -uv /usr/${target}/usr/bin/grub-editenv /mnt/gentoo/usr/bin/
|
||||
|
||||
if [ -f /mnt/gentoo/etc/udev/hwdb.bin ]; then
|
||||
mv /mnt/gentoo/etc/udev/hwdb.bin /mnt/gentoo/usr/lib/udev/
|
||||
fi
|
||||
|
||||
systemctl preset-all --root=/mnt/gentoo
|
||||
|
||||
systemd-sysusers --root=/mnt/gentoo
|
||||
if grep -q '^root:.*/bin/bash$' /mnt/gentoo/etc/passwd; then
|
||||
sed -ri 's@(root:.*):/bin/bash@\1:/bin/sh@' /mnt/gentoo/etc/passwd
|
||||
fi
|
||||
|
||||
if ! grep -q Include /mnt/gentoo/etc/ssh/sshd_config; then
|
||||
echo 'Include /etc/ssh/sshd_config.d/*.conf' \
|
||||
>> /mnt/gentoo/etc/ssh/sshd_config
|
||||
fi
|
||||
Reference in New Issue
Block a user