RouxAntoine
a2b5884726
support rootfs : - archlinux - ubuntu kernel 5.10.204 from url amazon url Co-authored-by: RouxAntoine <antoinroux@hotmail.fr> Co-committed-by: RouxAntoine <antoinroux@hotmail.fr>
54 lines
1.5 KiB
Bash
Executable File
54 lines
1.5 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
# inspired by https://github.com/oraoto/archlinux-firecracker/blob/master/scripts/build-arch-rootfs.sh
|
|
|
|
set -ex
|
|
|
|
DISK_SIZE=10G
|
|
DISK_FILE=../out/arch-rootfs.ext4
|
|
DISK_ROOT=../out/mount
|
|
|
|
# Allocate rootfs disk
|
|
fallocate -l "$DISK_SIZE" "$DISK_FILE"
|
|
mkfs.ext4 -F $DISK_FILE
|
|
|
|
# Mount rootfs to mount
|
|
mkdir -p $DISK_ROOT
|
|
|
|
sudo mount $DISK_FILE $DISK_ROOT
|
|
|
|
sudo pacstrap -c $DISK_ROOT bash filesystem systemd-sysvcompat pacman iproute2 openssh git vim
|
|
|
|
echo "nameserver 1.1.1.1" | sudo tee $DISK_ROOT/etc/resolv.conf
|
|
|
|
sudo tee $DISK_ROOT/etc/systemd/system/internal-network.service <<-'EOF'
|
|
[Unit]
|
|
Description=Internal Network
|
|
|
|
[Service]
|
|
Type=oneshot
|
|
ExecStart=ip link set eth0 up
|
|
ExecStart=ip addr add 172.16.0.2/24 dev eth0
|
|
ExecStart=ip route add default via 172.16.0.1 dev eth0
|
|
RemainAfterExit=yes
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|
|
EOF
|
|
|
|
sudo ln -s /etc/systemd/system/internal-network.service $DISK_ROOT/etc/systemd/system/multi-user.target.wants/
|
|
sudo ln -s /usr/lib/systemd/system/sshd.service $DISK_ROOT/etc/systemd/system/multi-user.target.wants/
|
|
|
|
# allow root login with empty password, unsafe !
|
|
sudo tee $DISK_ROOT/etc/ssh/sshd_config.d/98-archlinux.conf <<-'EOF'
|
|
PermitEmptyPasswords yes
|
|
PermitRootLogin yes
|
|
EOF
|
|
|
|
# Remove default (locked) root password
|
|
# See https://github.com/archlinux/svntogit-packages/commit/0320c909f3867d47576083e853543bab1705185b
|
|
sudo sed 's/^root:.*/root::14871::::::/' -i $DISK_ROOT/etc/shadow
|
|
|
|
sudo umount $DISK_ROOT
|
|
rmdir $DISK_ROOT
|