-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathchimera
More file actions
133 lines (106 loc) · 3.31 KB
/
chimera
File metadata and controls
133 lines (106 loc) · 3.31 KB
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
#!/bin/sh
set -e
# --- CONFIGURATION ---
DISK="/dev/sda"
ROOT_PART="${DISK}2"
EFI_PART="${DISK}1"
HOSTNAME="chimera-vm"
USER_NAME="user"
USER_PASS="chimera"
echo "=================================================="
echo " INSTALLATION CHIMERA (BASE-FULL + WAYLAND) "
echo "=================================================="
# 1. NETTOYAGE
echo "[1/6] Nettoyage du disque..."
umount -R /media/root 2>/dev/null || true
swapoff -a 2>/dev/null || true
wipefs -a $DISK
# 2. PARTITIONNEMENT
echo "[2/6] Partitionnement..."
sfdisk $DISK <<EOF
label: gpt
,512M,U
,,L
EOF
mkfs.vfat -F32 -n "EFI" $EFI_PART
mkfs.xfs -f -L "ROOT" $ROOT_PART
# 3. MONTAGE
echo "[3/6] Montage..."
mkdir -p /media/root
mount $ROOT_PART /media/root
mkdir -p /media/root/boot/efi
mount $EFI_PART /media/root/boot/efi
# 4. BOOTSTRAP
echo "[4/6] Bootstrap (Base système)..."
chimera-bootstrap /media/root
# 5. FSTAB
genfstab /media/root > /media/root/etc/fstab
# 6. CONFIGURATION
echo "[5/6] Installation et configuration..."
TARGET_UUID=$(blkid -s UUID -o value $ROOT_PART)
cat <<EOF > /media/root/install_internal.sh
#!/bin/sh
set -e
echo " -> [CHROOT] Mise à jour..."
apk update
echo " -> [CHROOT] Installation Base..."
# On garde base-full pour la sécurité matériell
apk add base-full linux-stable limine
# 2. Installer interface
apk add chimera-repo-user
apk add niri
echo " -> [CHROOT] Utilisateur..."
useradd -m -G wheel,kvm $USER_NAME
#echo "$USER_NAME:$USER_PASS" | chpasswd
#echo "root:$USER_PASS" | chpasswd
# LA CORRECTION EST ICI : ajout de "-c SHA512"
# Sans cela, le mot de passe est corrompu ou illisible pour le système
echo "${USER_NAME}:${USER_PASS}" | chpasswd -c SHA512
echo "root:${USER_PASS}" | chpasswd -c SHA512
# On déverrouille le compte pour être sûr
usermod -U $USER_NAME
echo " -> [CHROOT] Configuration de l'environnement Wayland..."
# On force certaines variables pour que les applis choisissent Wayland
cat <<ENV > /etc/environment
# Firefox en mode Wayland natif
MOZ_ENABLE_WAYLAND=1
# Qt en mode Wayland (fallback sur xcb si échec)
QT_QPA_PLATFORM=wayland;xcb
# Pour que les applis SDL (jeux) utilisent Wayland
SDL_VIDEODRIVER=wayland
ENV
echo " -> [CHROOT] Services..."
mkdir -p /etc/dinit.d/boot.d
ln -sf /usr/lib/dinit.d/sddm /etc/dinit.d/boot.d/
ln -sf /usr/lib/dinit.d/NetworkManager /etc/dinit.d/boot.d/
ln -sf /usr/lib/dinit.d/syslog-ng /etc/dinit.d/boot.d/
echo " -> [CHROOT] Bootloader..."
update-initramfs -c -k all
mkdir -p /boot/efi/EFI/BOOT
cp /usr/share/limine/BOOTX64.EFI /boot/efi/EFI/BOOT/BOOTX64.EFI
# Copie Kernel FAT32
cd /boot
KERNEL_FILE=\$(ls vmlinuz* | head -n 1)
INITRD_FILE=\$(ls initramfs* initrd* 2>/dev/null | head -n 1)
cp \$KERNEL_FILE /boot/efi/
cp \$INITRD_FILE /boot/efi/
cat <<LIMINE_CONF > /boot/efi/limine.conf
timeout: 3
/Chimera Linux (Wayland Ready)
protocol: linux
kernel_path: boot():/\$KERNEL_FILE
module_path: boot():/\$INITRD_FILE
cmdline: root=UUID=$TARGET_UUID rw quiet
LIMINE_CONF
echo "$HOSTNAME" > /etc/hostname
ln -sf /usr/share/zoneinfo/America/Montreal /etc/localtime
rm /install_internal.sh
exit
EOF
chmod +x /media/root/install_internal.sh
# 7. EXÉCUTION
chimera-chroot /media/root /install_internal.sh
echo "=================================================="
echo " INSTALLATION NIRI TERMINÉE."
echo "=================================================="
# reboot