$ pkexec bash -lc 'set -e echo "==> Anwenden startet ..." # --- 1) Locale/LANG setzen (live System) --- LANG_SET="en_US.UTF-8" echo " - /etc/locale.conf aktualisieren" printf "LANG=%s\n" "$LANG_SET" > /etc/locale.conf || true if [ -f /etc/default/libc-locales ]; then sed -i "s/^#\s*${LANG_SET}\b/${LANG_SET}/" /etc/default/libc-locales || true grep -q "^${LANG_SET}\b" /etc/default/libc-locales || echo "${LANG_SET}" >> /etc/default/libc-locales xbps-reconfigure -f glibc-locales || true fi # --- 2) XKB Tastatur (live System) --- XKB_LAYOUT="de" mkdir -p /etc/X11/xorg.conf.d cat > /etc/X11/xorg.conf.d/00-keyboard.conf <> /etc/rc.conf fi else printf "KEYMAP=\"%s\" " "${CONSOLE_KEYMAP}" > /etc/rc.conf fi # --- 4) Zeitzone (live System) --- TZ_PATH="Europe/Berlin" if [ -f "/usr/share/zoneinfo/${TZ_PATH}" ]; then ln -sf "/usr/share/zoneinfo/${TZ_PATH}" /etc/localtime echo " - Zeitzone gesetzt: ${TZ_PATH}" else echo "WARN: Zeitzone nicht gefunden: ${TZ_PATH}" fi # --- 5) Partitionierung / Btrfs (Ziel /mnt) --- PMODE="btrfs" DEV="/dev/sda" CONFIRM=1 MBASE="/mnt" OPTS="compress=zstd,noatime,ssd,space_cache=v2" if [ "$PMODE" = "btrfs" ]; then if [ "$CONFIRM" != "1" ]; then echo "FEHLER: Bestätigung fehlt (FORMATIEREN)"; exit 2; fi if [ -z "$DEV" ] || [ ! -b "$DEV" ]; then echo "FEHLER: Ungültiges Device: $DEV"; exit 2; fi echo "==> Btrfs auf $DEV einrichten" mkdir -p "$MBASE" umount -R "$MBASE" 2>/dev/null || true swapoff -a 2>/dev/null || true echo " - mkfs.btrfs -f $DEV" mkfs.btrfs -f "$DEV" UUID=$(blkid -s UUID -o value "$DEV" || true) echo " - UUID: ${UUID}" echo " - Subvolumes erstellen" mount "$DEV" "$MBASE" (btrfs subvolume create "/mnt/@") && (btrfs subvolume create "/mnt/@home") && (btrfs subvolume create "/mnt/@var") && (btrfs subvolume create "/mnt/@log") && (btrfs subvolume create "/mnt/@cache") || true umount "$MBASE" echo " - Root (@) mounten" mount -o "subvol=@,$OPTS" "$DEV" "$MBASE" || mount "$DEV" "$MBASE" mkdir -p "$MBASE/etc" "$MBASE/home" "$MBASE/var" "$MBASE/.snapshots" "$MBASE/var/log" "$MBASE/var/cache" if [ -d "$MBASE/@home" ]; then mkdir -p "$MBASE/home"; fi mount -o "subvol=@home,$OPTS" "$DEV" "$MBASE/home" 2>/dev/null || true mount -o "subvol=@var,$OPTS" "$DEV" "$MBASE/var" 2>/dev/null || true mount -o "subvol=@log,$OPTS" "$DEV" "$MBASE/var/log" 2>/dev/null || true mount -o "subvol=@cache,$OPTS" "$DEV" "$MBASE/var/cache" 2>/dev/null || true mount -o "subvol=@snapshots,$OPTS" "$DEV" "$MBASE/.snapshots" 2>/dev/null || true echo " - fstab schreiben (in $MBASE/etc/fstab)" mkdir -p "$MBASE/etc" [ -f "$MBASE/etc/fstab" ] && cp -a "$MBASE/etc/fstab" "$MBASE/etc/fstab.bak" || true : > "$MBASE/etc/fstab" { echo "# /etc/fstab – generiert vom Installer"; } >> "$MBASE/etc/fstab" echo '"'"'UUID=${UUID} / btrfs rw,compress=zstd,noatime,ssd,space_cache=v2,subvol=@ 0 0'"'"' >> "$MBASE/etc/fstab" echo '"'"'UUID=${UUID} /home btrfs rw,compress=zstd,noatime,ssd,space_cache=v2,subvol=@home 0 0'"'"' >> "$MBASE/etc/fstab" echo '"'"'UUID=${UUID} /var btrfs rw,compress=zstd,noatime,ssd,space_cache=v2,subvol=@var 0 0'"'"' >> "$MBASE/etc/fstab" echo '"'"'UUID=${UUID} /var/log btrfs rw,compress=zstd,noatime,ssd,space_cache=v2,subvol=@log 0 0'"'"' >> "$MBASE/etc/fstab" echo '"'"'UUID=${UUID} /var/cache btrfs rw,compress=zstd,noatime,ssd,space_cache=v2,subvol=@cache 0 0'"'"' >> "$MBASE/etc/fstab" echo " - Btrfs-Setup abgeschlossen." fi # --- 6) Benutzer (live System) --- USER_NAME="bloat" REAL_NAME="bloat" PASSWD_RAW="1234" GROUPS="wheel,audio,video,cdrom,plugdev,lp,scanner,network" if [ -n "$USER_NAME" ]; then if id "$USER_NAME" >/dev/null 2>&1; then echo " - Benutzer existiert bereits: $USER_NAME" else useradd -m ${REAL_NAME:+-c "$REAL_NAME"} -G "$GROUPS" "$USER_NAME" echo "$USER_NAME:$PASSWD_RAW" | chpasswd echo " - Benutzer angelegt: $USER_NAME" fi fi echo "==> Anwenden beendet."' ==> Anwenden startet ... - /etc/locale.conf aktualisieren Generating GNU libc locales... en_US.UTF-8... done. glibc-locales: configuring ... glibc-locales: configured successfully. - Zeitzone gesetzt: Europe/Berlin ==> Btrfs auf /dev/sda einrichten - mkfs.btrfs -f /dev/sda btrfs-progs v6.11 See https://btrfs.readthedocs.io for more information. Performing full device TRIM /dev/sda (298.09GiB) ... NOTE: several default settings have changed in version 5.15, please make sure this does not affect your deployments: - DUP for metadata (-m dup) - enabled no-holes (-O no-holes) - enabled free-space-tree (-R free-space-tree) Label: (null) UUID: 29bb25df-f679-495e-b662-4a47b207761f Node size: 16384 Sector size: 4096 (CPU page size: 4096) Filesystem size: 298.09GiB Block group profiles: Data: single 8.00MiB Metadata: DUP 1.00GiB System: DUP 8.00MiB SSD detected: no Zoned device: no Features: extref, skinny-metadata, no-holes, free-space-tree Checksum: crc32c Number of devices: 1 Devices: ID SIZE PATH 1 298.09GiB /dev/sda - UUID: 29bb25df-f679-495e-b662-4a47b207761f - Subvolumes erstellen Create subvolume '/mnt/@' Create subvolume '/mnt/@home' Create subvolume '/mnt/@var' Create subvolume '/mnt/@log' Create subvolume '/mnt/@cache' - Root (@) mounten - fstab schreiben (in /mnt/etc/fstab) - Btrfs-Setup abgeschlossen. - Benutzer angelegt: bloat ==> Anwenden beendet. [OK] Alle Aktionen erfolgreich.