blob: 884ac1fedf9a9a1012baf7d4acfd1af62abd0a44 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
#! /bin/bash
set -e
if [ "${UID}" != "0" ]; then
echo "artixinstall: requires root permissions"
exit 1
fi
pacman -Sy
pacman -S --needed --noconfirm parted fzf
#
# Config questions
#
DRIVE=$1
TARGET=$2
if [ -z "${DRIVE}" ]; then
DRIVE="/dev/$(lsblk | grep disk | fzf --disabled | awk '{print $1}')"
fi
if [[ "${DRIVE}" == "/dev/mmcblk"* ]] | [[ "${DRIVE}" == "/dev/nvme"* ]]; then
PART_PREFIX="${DRIVE}p"
else
PART_PREFIX="${DRIVE}"
fi
if [ -z "${TARGET}" ]; then
TARGET=$(echo "Enter GRUB target (commonly i386-pc): " | fzf --disabled --print-query | sed -n '1 p')
fi
# Needed because otherwise the disk might be overwritten
# without installing a bootable system.
if [ -z "${TARGET}" ]; then
echo -e "\e[1m\e[1;31mGRUB target must not be empty.\e[0m"
exit 1
fi
parted -s ${DRIVE} mklabel msdos
parted -s -a optimal ${DRIVE} mkpart primary ext4 0% 1GiB
parted -s -a optimal ${DRIVE} mkpart primary btrfs 1GiB 100%
mkfs.ext4 -F -L BOOT ${PART_PREFIX}1
mkfs.btrfs -f ${PART_PREFIX}2
mkdir /btrfs
mount -o compress=zstd ${PART_PREFIX}2 /btrfs
btrfs subvolume create /btrfs/root
umount /btrfs
mount -o compress=zstd,subvol=/root ${PART_PREFIX}2 /mnt
mkdir /mnt/boot
mount ${PART_PREFIX}1 /mnt/boot
rc-service ntpd start
basestrap /mnt base openrc elogind-openrc vim man ntp-openrc git
basestrap /mnt linux linux-headers linux-lts linux-lts-headers linux-firmware
artix-chroot /mnt bash -c "curl -fsSL https://raw.githubusercontent.com/HimbeerserverDE/artixinstall/main/mkartix | sh -s -- ${DRIVE} ${PART_PREFIX} ${TARGET}"
fstabgen -U /mnt >> /mnt/etc/fstab
umount -R /mnt
echo -e "\n\e[1m\e[1;32mArtix has been successfully installed! It is now safe to reboot."
echo -e "\e[1m\e[1;32mDon't forget to change the root password and hostname."
echo -e "\e[1m\e[1;32mSetting up networking is left to you, dhcpcd and wpa_supplicant are installed."
echo -en "\e[0m"
|