#!/bin/bash # linux-deployment-scripts # Copyright (C) 2024 VM-Experiments # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . trap '' SIGINT SIGTERM parted -s /dev/sda mklabel msdos parted -s /dev/sda mkpart primary linux-swap 0% 2GiB parted -s /dev/sda mkpart primary ext4 2GiB 100% mkswap /dev/sda1 mkfs.ext4 /dev/sda2 mount /dev/sda2 /mnt swapon /dev/sda1 tar -xzvf /rootfs.tar.gz -C /mnt genfstab -U /mnt >>/mnt/etc/fstab mount --bind /dev /mnt/dev mount --bind /proc /mnt/proc mount --bind /sys /mnt/sys if command -v grub2-mkconfig &>/dev/null; then chroot /mnt /bin/bash -c "grub2-mkconfig -o /boot/grub/grub.cfg" elif command -v grub-mkconfig &>/dev/null; then chroot /mnt /bin/bash -c "grub-mkconfig -o /boot/grub/grub.cfg" fi if command -v grub2-install &>/dev/null; then chroot /mnt /bin/bash -c "grub2-install /dev/sda" elif command -v grub-install &>/dev/null; then chroot /mnt /bin/bash -c "grub-install /dev/sda" fi while true; do read -p "Enter a username (lowercase letters, digits, underscores and hyphens): " username chroot /mnt /bin/bash -c "useradd -m '$username'" if [ $? -eq 0 ]; then break fi done while true; do chroot /mnt /bin/bash -c "passwd '$username'" if [ $? -eq 0 ]; then break fi done while true; do read -p "Enter the hostname: " hostname chroot /mnt /bin/bash -c "echo $hostname > /etc/hostname" if [ $? -eq 0 ]; then break fi done