Init
This commit is contained in:
commit
4230cb2880
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
builds/
|
33
arch.pkr.hcl
Normal file
33
arch.pkr.hcl
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
source "virtualbox-iso" "arch-vbox-efi" {
|
||||||
|
guest_os_type = "Linux_64"
|
||||||
|
iso_urls = ["https://packages.oth-regensburg.de/archlinux/iso/2024.07.01/archlinux-2024.07.01-x86_64.iso"]
|
||||||
|
iso_checksum = "sha256:398dceea2d04767fbb8b61a9e824f2c8f5eacf62b2cb5006fd63321d978d48bc"
|
||||||
|
firmware = "efi"
|
||||||
|
memory = "1024"
|
||||||
|
cpus = "2"
|
||||||
|
disk_size = "5000"
|
||||||
|
boot_wait = "5s"
|
||||||
|
boot_command = [
|
||||||
|
"<enter>",
|
||||||
|
"<wait30s>passwd<enter><wait>packer<enter><wait>packer<enter><wait>",
|
||||||
|
"top<enter>"
|
||||||
|
]
|
||||||
|
ssh_username = "root"
|
||||||
|
ssh_password = "packer"
|
||||||
|
shutdown_command = "echo 'packer' | sudo -S shutdown -P now"
|
||||||
|
output_directory = "builds/${source.name}-${source.type}"
|
||||||
|
}
|
||||||
|
|
||||||
|
build {
|
||||||
|
sources = ["sources.virtualbox-iso.arch-vbox-efi"]
|
||||||
|
|
||||||
|
provisioner "file" {
|
||||||
|
source = "deliver"
|
||||||
|
destination = "/tmp/"
|
||||||
|
}
|
||||||
|
|
||||||
|
provisioner "shell" {
|
||||||
|
scripts = [ "scripts/00-packeys.sh", "scripts/10-disk.sh", "scripts/20-install.sh", "scripts/30-configure.sh", "scripts/40-bootloader.sh" ]
|
||||||
|
expect_disconnect = "true"
|
||||||
|
}
|
||||||
|
}
|
6
deliver/00-wired.network
Normal file
6
deliver/00-wired.network
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
[Match]
|
||||||
|
Name=enp* ens*
|
||||||
|
|
||||||
|
[Network]
|
||||||
|
DHCP=yes
|
||||||
|
DNS=1.1.1.1
|
5
scripts/00-packeys.sh
Normal file
5
scripts/00-packeys.sh
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
dirmngr &
|
||||||
|
pacman-key --init
|
||||||
|
pacman-key --populate
|
20
scripts/10-disk.sh
Normal file
20
scripts/10-disk.sh
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Partition
|
||||||
|
echo -e 'g\nn\n1\n2048\n+300M\nn\n2\n\n\np\nw' | fdisk /dev/sda
|
||||||
|
sync
|
||||||
|
|
||||||
|
# Format
|
||||||
|
mkfs.fat -F32 /dev/sda1
|
||||||
|
mkfs.ext4 /dev/sda2
|
||||||
|
sync
|
||||||
|
|
||||||
|
# Mount
|
||||||
|
mount /dev/sda2 /mnt
|
||||||
|
mkdir /mnt/boot
|
||||||
|
mount /dev/sda1 /mnt/boot
|
||||||
|
sync
|
||||||
|
|
||||||
|
# Display
|
||||||
|
df -h
|
||||||
|
mount
|
4
scripts/20-install.sh
Normal file
4
scripts/20-install.sh
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
pacstrap -K /mnt base linux-hardened linux-firmware grub efibootmgr sudo vim
|
||||||
|
|
27
scripts/30-configure.sh
Normal file
27
scripts/30-configure.sh
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# generate fstab
|
||||||
|
genfstab -U /mnt >> /mnt/etc/fstab
|
||||||
|
|
||||||
|
# Set time
|
||||||
|
arch-chroot /mnt ln -sf /usr/share/zoneinfo/Europe/Berlin /etc/localtime
|
||||||
|
arch-chroot /mnt hwclock --systohc
|
||||||
|
|
||||||
|
# Localize
|
||||||
|
echo -e 'en_US.UTF-8 UTF-8\nde_DE.UTF-8 UTF-8' > /mnt/etc/locale.gen
|
||||||
|
arch-chroot /mnt locale-gen
|
||||||
|
echo 'LANG=de_DE.UTF-8' > /mnt/etc/locale.conf
|
||||||
|
echo 'KEYMAP=de-latin1' > /mnt/etc/vconsole.conf
|
||||||
|
|
||||||
|
# pacman easter egg :)
|
||||||
|
sed -i 's/\[options\]/\[options\]\nILoveCandy/g' /mnt/etc/pacman.conf
|
||||||
|
|
||||||
|
# set user and password, setup sudo
|
||||||
|
arch-chroot /mnt groupadd sudo
|
||||||
|
sed -i 's/# \%sudo/\%sudo/g' /mnt/etc/sudoers
|
||||||
|
arch-chroot /mnt useradd --create-home --password '$1$yChoD0uK$A606S7MGjw5OBvH4ZpIXO/' -G sudo user # user:user
|
||||||
|
|
||||||
|
# network
|
||||||
|
cp /tmp/deliver/00-wired.network /mnt/etc/systemd/network/00-wired.network
|
||||||
|
chmod 644 /mnt/etc/systemd/network/00-wired.network
|
||||||
|
arch-chroot /mnt systemctl enable systemd-networkd
|
5
scripts/40-bootloader.sh
Normal file
5
scripts/40-bootloader.sh
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
arch-chroot /mnt grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=BOOT
|
||||||
|
cp /mnt/boot/EFI/BOOT/{grubx64.efi,BOOTX64.EFI} 2>&1 || true
|
||||||
|
arch-chroot /mnt grub-mkconfig -o /boot/grub/grub.cfg
|
Loading…
Reference in New Issue
Block a user