blob: 64d758a5fa3c36985ea814b5f14de335364f8197 (
plain)
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
|
#! /bin/sh
# @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
# @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
# FILL THOSE VARS
rootpasswd=""
username=""
userpasswd=""
hostname=""
# ajouter amd-ucode ou intel-ucode
packages="linux linux-firmware sof-firmware base base-devel grub efibootmgr networkmanager terminus-font neovim pipewire pipewire-pulse wireplumber git"
echo "Sécurité active, supprimez moi du script pour lancer l'installation." ; exit 1
# @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
# @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
catch_failure() {
echo "Une erreur est survenue. Arrêt du programme"
sleep 3
exit 1
}
close() {
echo "Fin, redémarrage dans 10 secondes."
echo "TODO : se connecter à internet, décommenter wheel dans sudoers, xdg-user-dirs-update"
sleep 10
reboot
}
ch() {
arch-chroot /mnt /bin/sh -c "$@" || catch_failure
}
### Main
echo "
███╗ ███╗ █████╗ ██████╗ ██████╗██╗ ██╗
████╗ ████║██╔══██╗██╔══██╗██╔════╝██║ ██║
██╔████╔██║███████║██████╔╝██║ ███████║
██║╚██╔╝██║██╔══██║██╔══██╗██║ ██╔══██║
██║ ╚═╝ ██║██║ ██║██║ ██║╚██████╗██║ ██║
╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝
Mon script personnel pour installer Arch.
Téléchargement : https://mielota.com/march.sh
Démarrage du programme dans 5 secondes ! Toutes les données du disque seront effacées !
"
sleep 5
echo "Configuration de timedatectl..."
timedatectl set-timezone Europe/Paris || catch_failure
echo "Partition des disques..."
(
echo g
echo n
echo 1
echo
echo +1G
echo t
echo 1
echo 1
echo n
echo 2
echo
echo
echo w
) | fdisk "/dev/nvme0n1" &> /dev/null || catch_failure
echo "Formattage du disque..."
echo "Formattage du ESP..."
yes | mkfs.fat -F 32 -n ESP /dev/nvme0n1p1 || catch_failure
echo "Formattage du ROOT..."
yes | mkfs.ext4 -L ROOT /dev/nvme0n1p2 || catch_failure
echo "Montage des partitions..."
echo "Montage de ROOT sur /mnt"
mount /dev/disk/by-label/ROOT /mnt || catch_failure
echo "Montage de ESP sur /mnt/boot/EFI"
mount --mkdir /dev/disk/by-label/ESP /mnt/boot/EFI || catch_failure
echo "Configuration des mirroirs de pacstrap... (peut prendre un moment)"
reflector --country France --age 10 --protocol https --sort rate --save /etc/pacman.d/mirrorlist || catch_failure
echo "Installation des paquets de base sur le système..."
pacstrap -K /mnt --noconfirm $packages || catch_failure
echo "Génération du fstab..."
genfstab -U /mnt >> /mnt/etc/fstab || catch_failure
echo "ARCH CHROOT"
echo "Configurer le temps..."
ch "ln -sf /usr/share/zoneinfo/Europe/Paris /etc/localtime"
ch "hwclock --systohc"
echo "Configuration des langues..."
ch "echo 'fr_FR.UTF-8 UTF-8' >> /etc/locale.gen"
ch "locale-gen"
ch "echo 'LANG=fr_FR.UTF-8' > /etc/locale.conf"
echo "Configuration du KEYMAP vconsole..."
ch "echo -e 'KEYMAP=fr-latin1\nXKBLAYOUT=fr\nXKBMODEL=pc105\nXKBOPTIONS=terminate:ctrl_alt_bksp\nFONT=ter-132b' > /etc/vconsole.conf"
echo "Application du hostname $hostname..."
ch "echo '$hostname' > /etc/hostname"
echo "Activation du service NetworkManager..."
ch "systemctl enable NetworkManager"
echo "Configuration du mot de passe root"
ch "echo 'root:$rootpasswd' | chpasswd"
echo "Configuration de l'utilisateur $username"
ch "useradd -m -G wheel $username"
echo "Configuration du mot de passe de $username"
ch "echo '$username:$userpasswd' | chpasswd"
echo "Installation de GRUB"
ch "grub-install --target=x86_64-efi --efi-directory=/boot/EFI"
echo "Génération de grub.cfg..."
ch "grub-mkconfig -o /boot/grub/grub.cfg"
close
|