From 7fc2c714761d86ed5bcff586b5b38bb66f3836a2 Mon Sep 17 00:00:00 2001 From: airmancooma Date: Tue, 18 Mar 2025 18:50:08 +0100 Subject: [PATCH] =?UTF-8?q?A=20base-install=20script=20m=C3=B3dos=C3=ADt?= =?UTF-8?q?=C3=A1sa=20hogy=20mennyen=20a=20btrfs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- releng/airootfs/usr/local/bin/base-install | 130 ++++----------------- 1 file changed, 24 insertions(+), 106 deletions(-) diff --git a/releng/airootfs/usr/local/bin/base-install b/releng/airootfs/usr/local/bin/base-install index 73a54278..4402f351 100755 --- a/releng/airootfs/usr/local/bin/base-install +++ b/releng/airootfs/usr/local/bin/base-install @@ -103,6 +103,10 @@ if [ -d "/sys/firmware/efi" ]; then echo "Nem észleltünk LUKS titkosítást" fi + # Root UUID és fájlrendszer típus lekérése + ROOT_UUID=$(awk '$2=="/" {print $1}' /etc/fstab | grep -o 'UUID=.*' | cut -d'=' -f2) + FS_TYPE=$(awk '$2=="/" {print $3}' /etc/fstab) + # CPU microcode detect és a változó beállítása CPU=$(lscpu | grep "AMD" -c) if [[ $CPU -gt 0 ]]; then @@ -115,36 +119,12 @@ if [ -d "/sys/firmware/efi" ]; then CPU_UCODE="" fi - # Root UUID lekérdezése - ROOT_UUID=$(awk '$2=="/" {print $1}' /etc/fstab | grep -o 'UUID=.*' | cut -d'=' -f2) - - # Ellenőrizzük a btrfs subvolume-ot - if [ "$FS_TYPE" = "btrfs" ]; then - # Próbáljuk meg a findmnt segítségével meghatározni a subvolume-ot - SUBVOL=$(findmnt -n -o OPTIONS / 2>/dev/null | grep -o 'subvol=[^ ,]*' | cut -d'=' -f2 || echo "") - - # Ha nem sikerült, próbáljuk az fstabot - if [ -z "$SUBVOL" ]; then - SUBVOL=$(grep -E '^[^#].+\s/\s' /etc/fstab | grep -o 'subvol=[^ ,]*' | cut -d'=' -f2 || echo "") - fi - - # Ha még mindig nincs, használjuk az alapértelmezett értéket - if [ -z "$SUBVOL" ]; then - echo "Nem sikerült meghatározni a subvolume-ot, '@' vagy 'root' használata" - # Próbáljuk megtalálni, melyik subvolume létezik - if [ -d "/@" ] || grep -q "subvol=@" /etc/fstab; then - SUBVOL="@" - else - SUBVOL="root" - fi - fi - fi - # Systemd-boot konfiguráció mkdir -p /boot/loader/entries # Időtúllépés és editor beállítása cat > /boot/loader/loader.conf << EOF +default raveos.conf timeout 5 console-mode max editor yes @@ -156,24 +136,15 @@ EOF echo "BTRFS esetén csak a sima (nem titkosított) mód támogatott" # Nem kezeljük a BTRFS + LUKS kombinációt, áttérünk a nem titkosított btrfs kezelésre - # Ellenőrizzük a btrfs subvolume-ot - SUBVOL=$(findmnt -n -o OPTIONS / 2>/dev/null | grep -o 'subvol=[^ ,]*' | cut -d'=' -f2 || echo "") - if [ -z "$SUBVOL" ]; then - SUBVOL=$(grep -E '^[^#].+\s/\s' /etc/fstab | grep -o 'subvol=[^ ,]*' | cut -d'=' -f2 || echo "") - fi - if [ -z "$SUBVOL" ]; then - SUBVOL="@" - fi - - # Normál btrfs konfiguráció létrehozása cat > /boot/loader/entries/raveos.conf << EOF title RaveOS GNOME Gaming 1.0 linux /vmlinuz-linux-zen $CPU_UCODE initrd /initramfs-linux-zen.img -options root=UUID=$ROOT_UUID rootflags=subvol=$SUBVOL rw rootfstype=btrfs quiet +options root=UUID=$ROOT_UUID rootflags=subvol=@ rw rootfstype=btrfs quiet EOF - elif [ "$FS_TYPE" = "ext4" ]; then + else + # Ez csak ext4 vagy más fájlrendszer + LUKS esetén fut le echo "EXT4 + LUKS konfiguráció létrehozása" cat > /boot/loader/entries/raveos.conf << EOF title RaveOS GNOME Gaming 1.0 - LUKS+EXT4 @@ -181,44 +152,18 @@ linux /vmlinuz-linux-zen $CPU_UCODE initrd /initramfs-linux-zen.img options cryptdevice=UUID=$CRYPTDEVICE_UUID:$CRYPTNAME root=/dev/mapper/$CRYPTNAME rw rootfstype=ext4 quiet -EOF - else - # Egyéb fájlrendszer + LUKS - cat > /boot/loader/entries/raveos.conf << EOF -title RaveOS GNOME Gaming 1.0 - LUKS -linux /vmlinuz-linux-zen -$CPU_UCODE -initrd /initramfs-linux-zen.img -options cryptdevice=UUID=$CRYPTDEVICE_UUID:$CRYPTNAME root=/dev/mapper/$CRYPTNAME rw quiet EOF fi - - # Az alapértelmezett bejegyzés beállítása - cat > /boot/loader/loader.conf << EOF -default raveos.conf -timeout 5 -console-mode max -editor yes -EOF else # Nem titkosított rendszer esetén if [ "$FS_TYPE" = "btrfs" ]; then echo "BTRFS konfiguráció létrehozása (nem titkosított)" - # Ellenőrizzük a btrfs subvolume-ot - SUBVOL=$(findmnt -n -o OPTIONS / 2>/dev/null | grep -o 'subvol=[^ ,]*' | cut -d'=' -f2 || echo "") - if [ -z "$SUBVOL" ]; then - SUBVOL=$(grep -E '^[^#].+\s/\s' /etc/fstab | grep -o 'subvol=[^ ,]*' | cut -d'=' -f2 || echo "") - fi - if [ -z "$SUBVOL" ]; then - SUBVOL="@" - fi - cat > /boot/loader/entries/raveos.conf << EOF title RaveOS GNOME Gaming 1.0 linux /vmlinuz-linux-zen $CPU_UCODE initrd /initramfs-linux-zen.img -options root=UUID=$ROOT_UUID rootflags=subvol=$SUBVOL rw rootfstype=btrfs quiet +options root=UUID=$ROOT_UUID rootflags=subvol=@ rw rootfstype=btrfs quiet EOF else echo "Alapértelmezett konfiguráció létrehozása (nem titkosított)" @@ -230,14 +175,6 @@ initrd /initramfs-linux-zen.img options root=UUID=$ROOT_UUID rw quiet EOF fi - - # Az alapértelmezett bejegyzés beállítása - cat > /boot/loader/loader.conf << EOF -default raveos.conf -timeout 5 -console-mode max -editor yes -EOF fi # EFI partíció és a partíció száma @@ -269,19 +206,14 @@ else FS_TYPE=$(lsblk -no FSTYPE /dev/mapper/$CRYPTNAME 2>/dev/null || echo "") if [ -z "$FS_TYPE" ]; then - # Ha még nincs megnyitva a titkosított eszköz, feltételezzük, hogy btrfs - echo "Nem sikerült meghatározni a fájlrendszer típusát, btrfs-t feltételezünk" - FS_TYPE="btrfs" + # Ha még nincs megnyitva a titkosított eszköz, feltételezzük, hogy ext4 + echo "Nem sikerült meghatározni a fájlrendszer típusát, ext4-et feltételezünk" + FS_TYPE="ext4" fi echo "Fájlrendszer típusa: $FS_TYPE" # Modulok és hook-ok hozzáadása a mkinitcpio.conf-hoz - if [ "$FS_TYPE" = "btrfs" ] && ! grep -q "btrfs" <<< "$(grep "^MODULES=" /etc/mkinitcpio.conf)"; then - echo "BTRFS modul hozzáadása" - sed -i 's/MODULES=(/MODULES=(btrfs /' /etc/mkinitcpio.conf - fi - if ! grep -q "dm[-_]crypt" <<< "$(grep "^MODULES=" /etc/mkinitcpio.conf)"; then echo "dm-crypt modul hozzáadása" sed -i 's/MODULES=(/MODULES=(dm-crypt /' /etc/mkinitcpio.conf @@ -318,32 +250,18 @@ else mkinitcpio -P # GRUB konfiguráció módosítása + # Csak ext4 + LUKS kombinációt támogatunk + echo "GRUB konfiguráció frissítése alapértelmezett LUKS beállításokkal" + sed -i "s|^GRUB_CMDLINE_LINUX=\"\"|GRUB_CMDLINE_LINUX=\"cryptdevice=UUID=$CRYPTDEVICE_UUID:$CRYPTNAME root=/dev/mapper/$CRYPTNAME\"|" /etc/default/grub + else + # Fájlrendszer típus lekérése + ROOT_UUID=$(awk '$2=="/" {print $1}' /etc/fstab | grep -o 'UUID=.*' | cut -d'=' -f2) + FS_TYPE=$(awk '$2=="/" {print $3}' /etc/fstab) + + # btrfs esetén speciális kernel paraméterek hozzáadása if [ "$FS_TYPE" = "btrfs" ]; then - # Ellenőrizzük a btrfs subvolume-ot - SUBVOL=$(findmnt -n -o OPTIONS / 2>/dev/null | grep -o 'subvol=[^ ,]*' | cut -d'=' -f2 || echo "") - - # Ha nem sikerült, próbáljuk az fstabot - if [ -z "$SUBVOL" ]; then - SUBVOL=$(grep -E '^[^#].+\s/\s' /etc/fstab | grep -o 'subvol=[^ ,]*' | cut -d'=' -f2 || echo "") - fi - - # Ha még mindig nincs, használjuk az alapértelmezett értéket - if [ -z "$SUBVOL" ]; then - echo "Nem sikerült meghatározni a subvolume-ot, '@' vagy 'root' használata" - if [ -d "/@ " ] || grep -q "subvol=@" /etc/fstab; then - SUBVOL="@" - else - SUBVOL="root" - fi - fi - - # BTRFS esetén rd.luks formátumot használunk - echo "GRUB konfiguráció frissítése BTRFS+LUKS beállításokkal" - sed -i "s|^GRUB_CMDLINE_LINUX=\"\"|GRUB_CMDLINE_LINUX=\"rd.luks.name=$CRYPTDEVICE_UUID=$CRYPTNAME root=/dev/mapper/$CRYPTNAME rootflags=subvol=$SUBVOL rd.luks.options=discard rootfstype=btrfs\"|" /etc/default/grub - else - # EXT4 vagy más fájlrendszer esetén a hagyományos cryptdevice formátumot használjuk - echo "GRUB konfiguráció frissítése alapértelmezett LUKS beállításokkal" - sed -i "s|^GRUB_CMDLINE_LINUX=\"\"|GRUB_CMDLINE_LINUX=\"cryptdevice=UUID=$CRYPTDEVICE_UUID:$CRYPTNAME root=/dev/mapper/$CRYPTNAME\"|" /etc/default/grub + echo "GRUB konfiguráció frissítése BTRFS beállításokkal" + sed -i "s|^GRUB_CMDLINE_LINUX=\"\"|GRUB_CMDLINE_LINUX=\"root=UUID=$ROOT_UUID rootflags=subvol=@ rootfstype=btrfs\"|" /etc/default/grub fi fi @@ -364,4 +282,4 @@ fi echo "Calamares eltávolítása..." pacman -Rs calamares --noconfirm -echo "Telepítés befejezve!" +echo "Telepítés befejezve!" \ No newline at end of file