Last active 1 month ago

kyx revised this gist 1 month ago. Go to revision

1 file changed, 2 insertions, 2 deletions

setuparchlinux.zsh

@@ -138,8 +138,8 @@ chmod 600 /etc/NetworkManager/system-connections/wifi.nmconnection
138 138 bootctl --root=/mnt --esp-path=/boot install
139 139 mkdir -p /mnt/boot/loader/entries
140 140
141 - #ROOT_UUID="$(blkid -s UUID -o value /dev/sda2)"
142 - ROOT_UUID='$(blkid -s UUID -o value "$ROOT_PART")'
141 +
142 + ROOT_UUID=$(blkid -s UUID -o value "$ROOT_PART")
143 143
144 144 cat >/mnt/boot/loader/loader.conf <<L
145 145 default arch

kyx revised this gist 1 month ago. Go to revision

No changes

kyx revised this gist 1 month ago. Go to revision

1 file changed, 34 insertions, 30 deletions

setuparchlinux.zsh

@@ -25,9 +25,8 @@ TIMEZONE="Europe/Paris"
25 25 LOCALE="fr_FR.UTF-8"
26 26 KEYMAP="fr"
27 27 ### =================================
28 -
29 28 die() {
30 - print -u2 "ERROR: $*"
29 + echo -u2 "ERROR: $*"
31 30 exit 1
32 31 }
33 32
@@ -41,19 +40,19 @@ done
41 40
42 41 [[ -b "$DISK" ]] || die "Disque invalide: $DISK"
43 42
44 - print "==> Vérification UEFI..."
43 + echo "==> Vérification UEFI..."
45 44 [[ -d /sys/firmware/efi ]] || die "UEFI requis"
46 45
47 - print "==> Synchronisation de l'heure..."
46 + echo "==> Synchronisation de l'heure..."
48 47 timedatectl set-ntp true 2>/dev/null || true
49 48
50 - print "==> Connexion Wi-Fi ($WIFI_INTERFACE)..."
49 + echo "==> Connexion Wi-Fi ($WIFI_INTERFACE)..."
51 50 iwctl --passphrase "$WIFI_PSK" station "$WIFI_INTERFACE" connect "$WIFI_SSID" \
52 51 || die "Connexion Wi-Fi échouée"
53 52
54 - ping -c 1 archlinux.org >/dev/null 2>&1 || die "Pas d'accès réseau"
53 + ping -c 6 ambrya.eu >/dev/null 2>&1 || die "Pas d'accès réseau"
55 54
56 - print "==> Partitionnement GPT sur $DISK"
55 + echo "==> Partitionnement GPT sur $DISK"
57 56 swapoff -a 2>/dev/null || true
58 57 umount -R /mnt 2>/dev/null || true
59 58
@@ -69,25 +68,25 @@ sgdisk -n 2:0:0 -t 2:8300 -c 2:"ARCH_ROOT" "$DISK"
69 68 partprobe "$DISK"
70 69 sleep 2
71 70
72 - print "==> Formatage..."
71 + echo "==> Formatage..."
73 72 mkfs.fat -F32 -n BOOT "$BOOT_PART"
74 73 mkfs.ext4 -F -L ROOT "$ROOT_PART"
75 74
76 - print "==> Montage..."
75 + echo "==> Montage..."
77 76 mount "$ROOT_PART" /mnt
78 77 mkdir -p /mnt/boot
79 78 mount "$BOOT_PART" /mnt/boot
80 79
81 - print "==> Installation du système de base..."
80 + echo "==> Installation du système de base..."
82 81 pacstrap -K /mnt \
83 82 base linux linux-firmware \
84 - networkmanager iwd sudo vim
83 + networkmanager iwd sudo vim bash
85 84
86 - print "==> Génération fstab..."
85 + echo "==> Génération fstab..."
87 86 genfstab -U /mnt >> /mnt/etc/fstab
88 87
89 - print "==> Configuration système (chroot)..."
90 - arch-chroot /mnt /usr/bin/env zsh <<EOF
88 + echo "==> Configuration système (chroot)..."
89 + arch-chroot /mnt /usr/bin/bash <<EOF
91 90 set -euo nounset
92 91
93 92 ln -sf /usr/share/zoneinfo/$TIMEZONE /etc/localtime
@@ -95,21 +94,21 @@ hwclock --systohc
95 94
96 95 sed -i 's/^#\\($LOCALE\\)/\\1/' /etc/locale.gen
97 96 locale-gen
98 - print "LANG=$LOCALE" > /etc/locale.conf
99 - print "KEYMAP=$KEYMAP" > /etc/vconsole.conf
97 + echo "LANG=$LOCALE" > /etc/locale.conf
98 + echo "KEYMAP=$KEYMAP" > /etc/vconsole.conf
100 99
101 - print "$HOSTNAME" > /etc/hostname
100 + echo "$HOSTNAME" > /etc/hostname
102 101 cat >/etc/hosts <<H
103 102 127.0.0.1 localhost
104 103 ::1 localhost
105 104 127.0.1.1 $HOSTNAME.localdomain $HOSTNAME
106 105 H
107 106
108 - print "root:$ROOT_PASSWORD" | chpasswd
109 - useradd -m -G wheel -s /bin/zsh "$USERNAME"
110 - print "$USERNAME:$USER_PASSWORD" | chpasswd
111 - sed -i 's/^# %wheel ALL=(ALL:ALL) ALL/%wheel ALL=(ALL:ALL) ALL/' /etc/sudoers
112 -
107 + echo "root:$ROOT_PASSWORD" | chpasswd
108 + useradd -m -G wheel -s /usr/bin/zsh "$USERNAME" 2>/dev/null || true
109 + echo "$USERNAME:$USER_PASSWORD" | chpasswd
110 + #sed -i 's/^# %wheel ALL=(ALL:ALL) ALL/%wheel ALL=(ALL:ALL) ALL/' /etc/sudoers
111 + pacman -S t networkmanager --noconfirm
113 112 systemctl enable NetworkManager
114 113 systemctl enable iwd
115 114
@@ -136,24 +135,29 @@ method=auto
136 135 NMC
137 136 chmod 600 /etc/NetworkManager/system-connections/wifi.nmconnection
138 137
139 - bootctl install
140 - ROOT_UUID=\$(blkid -s UUID -o value "$ROOT_PART")
138 + bootctl --root=/mnt --esp-path=/boot install
139 + mkdir -p /mnt/boot/loader/entries
141 140
142 - cat >/boot/loader/loader.conf <<L
141 + #ROOT_UUID="$(blkid -s UUID -o value /dev/sda2)"
142 + ROOT_UUID='$(blkid -s UUID -o value "$ROOT_PART")'
143 +
144 + cat >/mnt/boot/loader/loader.conf <<L
143 145 default arch
144 146 timeout 3
145 147 editor no
146 148 L
147 149
148 - cat >/boot/loader/entries/arch.conf <<E
150 + cat >/mnt/boot/loader/entries/arch.conf <<E
149 151 title Arch Linux
150 152 linux /vmlinuz-linux
151 153 initrd /initramfs-linux.img
152 - options root=UUID=\$ROOT_UUID rw
154 + options root=UUID=$ROOT_UUID rw
153 155 E
154 - EOF
156 + #EOF
155 157
156 - print "==> Nettoyage..."
158 + echo "==> Nettoyage..."
157 159 umount -R /mnt
158 160
159 - print "==> Installation terminée. Reboot possible."
161 + esp-path=/boot
162 + echo "==> Installation terminée. Reboot possible."
163 +

kyx revised this gist 1 month ago. Go to revision

No changes

kyx revised this gist 1 month ago. Go to revision

1 file changed, 0 insertions, 0 deletions

archlinux.zsh renamed to setuparchlinux.zsh

File renamed without changes

kyx revised this gist 1 month ago. Go to revision

1 file changed, 159 insertions

archlinux.zsh(file created)

@@ -0,0 +1,159 @@
1 + #!/usr/bin/env zsh
2 + set -euo nounset
3 +
4 + #############################################
5 + # Arch Linux install non-interactif (UEFI)
6 + # - ESP montée sur /boot de 2G (FAT32)
7 + # - Wi-Fi via wlan0 (SSID/PSK en variables)
8 + #
9 + # ATTENTION: CE SCRIPT EFFACE LE DISQUE.
10 + # À lancer depuis l'ISO Arch (archiso) en root.
11 + #############################################
12 +
13 + ### ====== VARIABLES À REMPLIR ======
14 + DISK="/dev/nvme0n1" # ex: /dev/sda ou /dev/nvme0n1
15 + HOSTNAME="arch"
16 + USERNAME="user"
17 + USER_PASSWORD="changeme"
18 + ROOT_PASSWORD="changeme"
19 +
20 + WIFI_INTERFACE="wlan0"
21 + WIFI_SSID="TON_SSID"
22 + WIFI_PSK="TON_PSK"
23 +
24 + TIMEZONE="Europe/Paris"
25 + LOCALE="fr_FR.UTF-8"
26 + KEYMAP="fr"
27 + ### =================================
28 +
29 + die() {
30 + print -u2 "ERROR: $*"
31 + exit 1
32 + }
33 +
34 + need() {
35 + command -v "$1" >/dev/null 2>&1 || die "Commande manquante: $1"
36 + }
37 +
38 + for c in sgdisk mkfs.fat mkfs.ext4 mount umount pacstrap genfstab arch-chroot iwctl; do
39 + need "$c"
40 + done
41 +
42 + [[ -b "$DISK" ]] || die "Disque invalide: $DISK"
43 +
44 + print "==> Vérification UEFI..."
45 + [[ -d /sys/firmware/efi ]] || die "UEFI requis"
46 +
47 + print "==> Synchronisation de l'heure..."
48 + timedatectl set-ntp true 2>/dev/null || true
49 +
50 + print "==> Connexion Wi-Fi ($WIFI_INTERFACE)..."
51 + iwctl --passphrase "$WIFI_PSK" station "$WIFI_INTERFACE" connect "$WIFI_SSID" \
52 + || die "Connexion Wi-Fi échouée"
53 +
54 + ping -c 1 archlinux.org >/dev/null 2>&1 || die "Pas d'accès réseau"
55 +
56 + print "==> Partitionnement GPT sur $DISK"
57 + swapoff -a 2>/dev/null || true
58 + umount -R /mnt 2>/dev/null || true
59 +
60 + PART_PREFIX="$DISK"
61 + [[ "$DISK" == *nvme* ]] && PART_PREFIX="${DISK}p"
62 +
63 + BOOT_PART="${PART_PREFIX}1"
64 + ROOT_PART="${PART_PREFIX}2"
65 +
66 + sgdisk --zap-all "$DISK"
67 + sgdisk -n 1:0:+2G -t 1:ef00 -c 1:"EFI_SYSTEM" "$DISK"
68 + sgdisk -n 2:0:0 -t 2:8300 -c 2:"ARCH_ROOT" "$DISK"
69 + partprobe "$DISK"
70 + sleep 2
71 +
72 + print "==> Formatage..."
73 + mkfs.fat -F32 -n BOOT "$BOOT_PART"
74 + mkfs.ext4 -F -L ROOT "$ROOT_PART"
75 +
76 + print "==> Montage..."
77 + mount "$ROOT_PART" /mnt
78 + mkdir -p /mnt/boot
79 + mount "$BOOT_PART" /mnt/boot
80 +
81 + print "==> Installation du système de base..."
82 + pacstrap -K /mnt \
83 + base linux linux-firmware \
84 + networkmanager iwd sudo vim
85 +
86 + print "==> Génération fstab..."
87 + genfstab -U /mnt >> /mnt/etc/fstab
88 +
89 + print "==> Configuration système (chroot)..."
90 + arch-chroot /mnt /usr/bin/env zsh <<EOF
91 + set -euo nounset
92 +
93 + ln -sf /usr/share/zoneinfo/$TIMEZONE /etc/localtime
94 + hwclock --systohc
95 +
96 + sed -i 's/^#\\($LOCALE\\)/\\1/' /etc/locale.gen
97 + locale-gen
98 + print "LANG=$LOCALE" > /etc/locale.conf
99 + print "KEYMAP=$KEYMAP" > /etc/vconsole.conf
100 +
101 + print "$HOSTNAME" > /etc/hostname
102 + cat >/etc/hosts <<H
103 + 127.0.0.1 localhost
104 + ::1 localhost
105 + 127.0.1.1 $HOSTNAME.localdomain $HOSTNAME
106 + H
107 +
108 + print "root:$ROOT_PASSWORD" | chpasswd
109 + useradd -m -G wheel -s /bin/zsh "$USERNAME"
110 + print "$USERNAME:$USER_PASSWORD" | chpasswd
111 + sed -i 's/^# %wheel ALL=(ALL:ALL) ALL/%wheel ALL=(ALL:ALL) ALL/' /etc/sudoers
112 +
113 + systemctl enable NetworkManager
114 + systemctl enable iwd
115 +
116 + mkdir -p /etc/NetworkManager/system-connections
117 + cat >/etc/NetworkManager/system-connections/wifi.nmconnection <<NMC
118 + [connection]
119 + id=wifi
120 + type=wifi
121 + autoconnect=true
122 +
123 + [wifi]
124 + ssid=$WIFI_SSID
125 + mode=infrastructure
126 +
127 + [wifi-security]
128 + key-mgmt=wpa-psk
129 + psk=$WIFI_PSK
130 +
131 + [ipv4]
132 + method=auto
133 +
134 + [ipv6]
135 + method=auto
136 + NMC
137 + chmod 600 /etc/NetworkManager/system-connections/wifi.nmconnection
138 +
139 + bootctl install
140 + ROOT_UUID=\$(blkid -s UUID -o value "$ROOT_PART")
141 +
142 + cat >/boot/loader/loader.conf <<L
143 + default arch
144 + timeout 3
145 + editor no
146 + L
147 +
148 + cat >/boot/loader/entries/arch.conf <<E
149 + title Arch Linux
150 + linux /vmlinuz-linux
151 + initrd /initramfs-linux.img
152 + options root=UUID=\$ROOT_UUID rw
153 + E
154 + EOF
155 +
156 + print "==> Nettoyage..."
157 + umount -R /mnt
158 +
159 + print "==> Installation terminée. Reboot possible."
Newer Older