From a0e4ef955929ff0fb5e9d8b41d2f4b8ea577a7fc Mon Sep 17 00:00:00 2001 From: Puechberty Arthur Date: Thu, 30 Jul 2026 01:08:57 +0200 Subject: [PATCH] first commit --- install.sh | 200 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 200 insertions(+) create mode 100644 install.sh diff --git a/install.sh b/install.sh new file mode 100644 index 0000000..8cf7dd7 --- /dev/null +++ b/install.sh @@ -0,0 +1,200 @@ +#!/bin/bash + +# ============================================================================== +# CONFIGURATION OBLIGATOIRE (À REMPLIR AVANT DE LANCER LE SCRIPT) +# ============================================================================== +DISK="/dev/sda" # Disque cible (ex: /dev/sda ou /dev/nvme0n1) +USERNAME="archuser" # Ton nom d'utilisateur +USER_PASS="motdepasse123" # Mot de passe utilisateur +ROOT_PASS="rootpassword123" # Mot de passe root +WIFI_SSID="TonReseauWiFi" # Nom du réseau Wi-Fi +WIFI_PASS="CleWiFi123" # Clé WPA du Wi-Fi +# ============================================================================== + +set -e + +echo "==================================================" +echo " INSTALLATION ARCH LINUX + HYPRLAND (ZEN/OPTI) " +echo "==================================================" + +# 1. Détection automatique du matériel (CPU) +if grep -q "Intel" /proc/cpuinfo; then + MICROCODE="intel-ucode" + MICROCODE_IMG="intel-ucode.img" +elif grep -q "AMD" /proc/cpuinfo; then + MICROCODE="amd-ucode" + MICROCODE_IMG="amd-ucode.img" +else + MICROCODE="" + MICROCODE_IMG="" +fi + +# 2. Connexion Wi-Fi automatique +echo "Configuration du Wi-Fi..." +WLAN_IF=$(ls /sys/class/net/ | grep -v lo | grep wlan | head -n 1) +if [ -n "$WLAN_IF" ]; then + iwctl --passphrase "$WIFI_PASS" station "$WLAN_IF" connect "$WIFI_SSID" + sleep 5 +fi + +if ! ping -c 1 archlinux.org &> /dev/null; then + echo "Erreur : Pas de connexion internet. Vérifie tes variables Wi-Fi ou branche un câble Ethernet." + exit 1 +fi +echo "Connexion internet établie." + +# 3. Synchronisation horloge et dépôts +echo "Préparation du système..." +timedatectl set-ntp true +pacman -Syy --noconfirm + +# 4. Partitionnement automatique +echo "Partitionnement de $DISK..." +if [[ $DISK == *"nvme"* ]] || [[ $DISK == *"mmcblk"* ]]; then + PART_EFI="${DISK}p1" + PART_ROOT="${DISK}p2" +else + PART_EFI="${DISK}1" + PART_ROOT="${DISK}2" +fi + +sgdisk -Z "$DISK" +sgdisk -n 1:0:+300M -t 1:ef00 "$DISK" +sgdisk -n 2:0:0 -t 2:8300 "$DISK" + +# 5. Formatage et Montage BTRFS optimisé +echo "Formatage BTRFS avec compression ZSTD..." +mkfs.fat -F32 "$PART_EFI" +mkfs.btrfs -f "$PART_ROOT" + +mount -o noatime,compress=zstd:1,space_cache=v2 "$PART_ROOT" /mnt +mkdir -p /mnt/boot +mount "$PART_EFI" /mnt/boot + +# 6. Installation du système strict minimum et optimisé +echo "Installation des paquets (Noyau ZEN, Hyprland, Wayland, Opti Laptop)..." +pacstrap /mnt base base-devel linux-zen linux-zen-headers linux-firmware btrfs-progs \ + networkmanager iwd sudo git neovim \ + $MICROCODE power-profiles-daemon thermald acpi acpid brightnessctl \ + pipewire pipewire-pulse pipewire-alsa pipewire-jack wireplumber \ + mesa wayland xdg-desktop-portal xdg-desktop-portal-hyprland \ + hyprland kitty wofi waybar hyprpaper ttf-jetbrains-mono-nerd + +# 7. Génération fstab optimisée +echo "Génération du fstab..." +genfstab -U /mnt >> /mnt/etc/fstab + +# 8. Configuration système dans le chroot +echo "Configuration du système..." +cat > /mnt/setup.sh << EOF +#!/bin/bash +set -e + +# Fuseau horaire +ln -sf /usr/share/zoneinfo/Europe/Paris /etc/localtime +hwclock --systohc + +# Localisation FR +sed -i 's/^#fr_FR.UTF-8 UTF-8/fr_FR.UTF-8 UTF-8/' /etc/locale.gen +sed -i 's/^#en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen +locale-gen +echo "LANG=fr_FR.UTF-8" > /etc/locale.conf +echo "KEYMAP=fr-latin9" > /etc/vconsole.conf + +# Réseau +echo "$HOSTNAME" > /etc/hostname +cat << HOSTS > /etc/hosts +127.0.0.1 localhost +::1 localhost +127.0.1.1 arch-laptop.localdomain arch-laptop +HOSTS + +# Utilisateurs +echo "root:$ROOT_PASS" | chpasswd +useradd -m -G wheel,video,audio,input,storage -s /bin/bash $USERNAME +echo "$USERNAME:$USER_PASS" | chpasswd +sed -i '/^# %wheel ALL=(ALL:ALL) ALL/s/^# //' /etc/sudoers + +# Initramfs optimisé avec systemd (démarrage plus rapide) +sed -i 's/^HOOKS=.*/HOOKS=(base systemd autodetect modconf block filesystems keyboard btrfs)/' /etc/mkinitcpio.conf +# Compression ZSTD pour l'initramfs +sed -i 's/^#COMPRESSION="zstd"/COMPRESSION="zstd"/' /etc/mkinitcpio.conf +mkinitcpio -P + +# Bootloader (systemd-boot) optimisé +bootctl --path=/boot install +# Configuration loader.conf (Timeout 0, éditeur désactivé) +cat << LOADERCONF > /boot/loader/loader.conf +timeout 0 +console-mode max +editor no +LOADERCONF + +ROOT_UUID=\$(blkid -s UUID -o value $PART_ROOT) +# Options noyau pour laptop (quiet, loglevel bas, économie d'énergie PCIe) +cat << ARCHCONF > /boot/loader/entries/arch.conf +title Arch Linux (Zen) +linux /vmlinuz-linux-zen +initrd /initramfs-linux-zen.img +EOF + +if [ -n "$MICROCODE_IMG" ]; then +cat << EOF >> /mnt/setup.sh +initrd /$MICROCODE_IMG +EOF +fi + +cat >> /mnt/setup.sh << EOF +options root=UUID=\$ROOT_UUID rw rootflags=compress=zstd:1 quiet loglevel=3 rd.systemd.show_status=auto rd.udev.log_level=3 nvme_core.default_ps_max_latency_us=0 pcie_aspm=power_save +ARCHCONF +bootctl update + +# Services modernes pour laptop +systemctl enable NetworkManager +systemctl enable iwd +systemctl enable power-profiles-daemon +systemctl enable thermald +systemctl enable acpid + +# Configuration Hyprland & Login TTY +USER_HOME="/home/$USERNAME" +mkdir -p \$USER_HOME/.config/hypr +cp /etc/hypr/hyprland.conf \$USER_HOME/.config/hypr/ + +# Clavier FR et optimisations basiques dans Hyprland +cat << HYPRLAND >> \$USER_HOME/.config/hypr/hyprland.conf + +# --- Config perso --- +input { + kb_layout = fr + touchpad { + natural_scroll = true + tap-to-click = true + } +} +HYPRLAND + +# Lancement auto de Hyprland sur TTY1 +cat << BASHPROFILE > \$USER_HOME/.bash_profile +if [ -z "\${WAYLAND_DISPLAY}" ] && [ "\${XDG_VTNR}" -eq 1 ]; then + exec Hyprland +fi +BASHPROFILE + +chown -R $USERNAME:$USERNAME \$USER_HOME +EOF + +# Exécution du chroot +chmod +x /mnt/setup.sh +arch-chroot /mnt /setup.sh + +# Nettoyage +rm /mnt/setup.sh +umount -R /mnt + +echo "==================================================" +echo "INSTALLATION TERMINÉE AVEC SUCCÈS !" +echo "==================================================" +echo "Redémarrage dans 3 secondes..." +sleep 3 +reboot \ No newline at end of file