Skip to content

Commit

Permalink
Update lvm-test.sh
Browse files Browse the repository at this point in the history
  • Loading branch information
yuceltoluyag committed Aug 17, 2024
1 parent 9052f3a commit b1a78e6
Showing 1 changed file with 30 additions and 159 deletions.
189 changes: 30 additions & 159 deletions lvm-test.sh
Original file line number Diff line number Diff line change
@@ -1,167 +1,53 @@
#!/bin/bash

# Terminus fontunu yükleme ve ayarlama (ilk işlem olarak)
echo "Terminus fontu yükleniyor..."
sudo pacman -S --noconfirm terminus-font

# Biraz daha küçük boyutlu Terminus fontunu ayarlama (28pt)
setfont ter-v28b

# Klavye düzenini yükleme (Türkçe Q)
loadkeys trq

# UEFI ya da BIOS kontrolü
if [ -d /sys/firmware/efi ]; then
echo "UEFI sistemi tespit edildi. UEFI kurulumu başlatılıyor..."
BOOT_MODE="UEFI"
else
echo "MBR (BIOS) sistemi tespit edildi. BIOS kurulumu başlatılıyor..."
BOOT_MODE="BIOS"
fi

# VirtualBox ortamında olup olmadığını kontrol etme
if grep -q "VirtualBox" /sys/class/dmi/id/product_name; then
echo "VirtualBox ortamı tespit edildi, Ethernet ile devam ediliyor..."
CONNECTION_TYPE="2"
else
# Kullanıcıya bağlantı türünü sorma
echo "Bağlantı türünü seçin:"
echo "1) Wi-Fi"
echo "2) Ethernet"
read -r CONNECTION_TYPE
fi

if [ "$CONNECTION_TYPE" == "1" ]; then
# Wi-Fi arayüzü tespit etme
INTERFACE=$(iw dev | awk '$1=="Interface"{print $2}')

if [ -z "$INTERFACE" ]; then
echo "Wi-Fi arayüzü bulunamadı! VirtualBox veya fiziksel cihazda çalıştığınızdan emin olun."
exit 1
fi

# Wi-Fi engellemesini kaldırma
rfkill unblock wifi

# Wi-Fi arayüzünü etkinleştirme
ip link set "$INTERFACE" up
# Wi-Fi arayüzü engellemesini kaldırma ve etkinleştirme
rfkill unblock wifi
ip link set wlan0 up

# Wi-Fi ağına bağlanma
iwctl <<EOF
station $INTERFACE scan
station $INTERFACE get-networks
echo "Bağlanmak istediğiniz ağın ismini girin (SSID):"
read -r SSID
station $INTERFACE connect $SSID
exit
# Wi-Fi bağlantısını ayarlama
iwctl <<EOF
station wlan0 scan
station wlan0 get-networks
station wlan0 connect "SSID_ADINIZ"
exit
EOF

elif [ "$CONNECTION_TYPE" == "2" ]; then
# Ethernet arayüzü tespit etme (enp0s3 gibi)
INTERFACE=$(ip link | awk -F: '/enp/{print $2}' | head -n 1 | xargs)

if [ -z "$INTERFACE" ]; then
echo "Ethernet arayüzü bulunamadı!"
exit 1
fi

# Ethernet arayüzünü etkinleştirme
ip link set "$INTERFACE" up

# DHCP ile IP adresi alma
dhclient "$INTERFACE"
else
echo "Geçersiz seçim! Lütfen 1 veya 2'yi seçin."
exit 1
fi

# Bağlantıyı test etme
ping -c3 gnu.org

# Mevcut diskleri gösterme
echo "Mevcut diskler:"
lsblk -o NAME,SIZE,TYPE,MOUNTPOINT

# Kurulum diskini belirleme
echo "Kurulum diskinizi belirleyin (örneğin /dev/sda):"
read -r DISK

# Diskte geçersiz GPT veya MBR hataları varsa düzeltme adımları
echo "Diskteki geçersiz partition tablolarını düzeltmek ister misiniz? (y/n)"
read -r FIX_PARTITIONS
if [ "$FIX_PARTITIONS" == "y" ]; then
sgdisk -Z "$DISK"
echo "Geçersiz GPT ve MBR tabloları temizlendi. Yeni bir GPT tablosu oluşturuluyor..."
sgdisk -o "$DISK" # Bu komut otomatik olarak yeni GPT tablosu oluşturur.
fi

# UEFI ya da BIOS moduna göre bölümlendirme
if [ "$BOOT_MODE" == "UEFI" ]; then
# UEFI sistemde EFI ve root bölümleri oluşturma
sgdisk -n 1:0:+512M -t 1:EF00 "$DISK" # 512MB EFI bölümünü oluşturma
sgdisk -n 2:0:0 -t 2:8300 "$DISK" # Kalan alanı root (Linux) bölümü olarak ayarlama
else
# BIOS sistemde MBR kullanarak bölümlendirme
parted "$DISK" mklabel msdos
parted "$DISK" mkpart primary ext4 1MiB 512MiB # 512MB boot bölümü
parted "$DISK" set 1 boot on # Boot flag ekle
parted "$DISK" mkpart primary ext4 512MiB 100% # Kalan alanı root olarak ayarla
fi

# Bölümleri tarama
partprobe "$DISK"

# Bölümü temizleme ve şifrelemeye hazırlama
wipefs -a "${DISK}2" # Tüm dosya sistemi imzalarını kaldır

# Eğer wipefs yeterli olmazsa, dd ile sıfırlayabilirsiniz (opsiyonel)
dd if=/dev/zero of="${DISK}2" bs=1M count=100 # İlk 100MB'yi sıfırlama
# Disk bölümleme ve formatlama (UEFI)
sgdisk -Z /dev/sda
gdisk /dev/sda
# 1. 512MB ESP bölümü oluşturma ve EFI System türü atama (ef00)
# 2. Geriye kalan alanı Linux dm-crypt türü (8308) olarak atama
partprobe -s /dev/sda

# Bölümleri formatlama
if [ "$BOOT_MODE" == "UEFI" ]; then
mkfs.fat -F32 -n ESP "${DISK}1"
cryptsetup -s 512 -h sha512 -i 5000 luksFormat "${DISK}2"
cryptsetup luksOpen "${DISK}2" cryptlvm
else
mkfs.ext4 -F "${DISK}2" # Root bölümünü force bayrağıyla formatla
cryptsetup -s 512 -h sha512 -i 5000 luksFormat "${DISK}2"
cryptsetup luksOpen "${DISK}2" cryptlvm
fi
mkfs.fat -F32 -n ESP /dev/sda1 # ESP bölümü formatlama
cryptsetup -s 512 -h sha512 -i 5000 luksFormat /dev/sda2 # CRYPT bölümü formatlama
cryptsetup luksOpen /dev/sda2 cryptlvm

# LVM oluşturma
# LVM Yapılandırma
pvcreate /dev/mapper/cryptlvm
vgcreate vg /dev/mapper/cryptlvm

echo "Swap alanı için boyut belirtin (örneğin 8G):"
read -r SWAPSIZE

lvcreate --size "$SWAPSIZE" vg --name swap
lvcreate -l +100%FREE vg --name root
lvcreate --size 8G vg --name swap # Swap alanı oluşturma
lvcreate -l +100%FREE vg --name root # Kalan alanı root için ayırma

# Dosya sistemlerini formatlama
mkfs.ext4 -L ROOT /dev/vg/root
mkswap -L SWAP /dev/vg/swap

# Dosya sistemlerini bağlama ve swap'ı etkinleştirme
# Dosya sistemlerini bağlama
mount /dev/vg/root /mnt
if [ "$BOOT_MODE" == "UEFI" ]; then
mkdir /mnt/efi
mount "${DISK}1" /mnt/efi
else
mount "${DISK}1" /mnt/boot
fi
mkdir /mnt/efi
mount /dev/sda1 /mnt/efi
swapon /dev/vg/swap

# Reflector kontrolü ve kurulumu
if ! command -v reflector &> /dev/null; then
echo "Reflector yüklü değil. Yükleniyor..."
pacman -S --noconfirm reflector
fi

# Reflector ile en hızlı mirrorları bulma ve kaydetme
reflector --verbose --country 'Germany' -l 5 --sort rate --save /etc/pacman.d/mirrorlist

# Sistemi kurma (Almanya için)
# Aynaları güncelleme ve temel sistemi kurma
reflector --country Germany --age 24 --protocol https --sort rate --save /etc/pacman.d/mirrorlist
pacstrap -K /mnt base base-devel linux-zen linux-zen-firmware intel-ucode cryptsetup lvm2 vim git iwd sbctl

# fstab oluşturma
Expand Down Expand Up @@ -202,28 +88,18 @@ cat <<EOL > /etc/hosts
127.0.1.1 $HOSTNAME.localdomain $HOSTNAME
EOL
systemctl enable systemd-networkd systemd-resolved systemd-timesyncd
systemctl enable iwd systemd-networkd systemd-resolved systemd-timesyncd
rm /etc/resolv.conf
ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf
# Ağ ayarları yapılandırması
if [ "$CONNECTION_TYPE" == "1" ]; then
cat <<EOL > /etc/systemd/network/wifi.network
[Match]
Name=$INTERFACE
[Network]
DHCP=yes
IPv6PrivacyExtensions=true
EOL
else
cat <<EOL > /etc/systemd/network/ethernet.network
cat <<EOL > /etc/systemd/network/wifi.network
[Match]
Name=$INTERFACE
Name=wlan0
[Network]
DHCP=yes
IPv6PrivacyExtensions=true
EOL
fi
cat <<EOL > /etc/systemd/resolved.conf
DNS=1.1.1.1#cloudflare-dns.com 1.0.0.1#cloudflare-dns.com
Expand Down Expand Up @@ -253,12 +129,7 @@ sbctl sign -s /efi/EFI/Linux/arch-linux-zen.efi
sbctl sign -s /efi/EFI/Linux/arch-linux-zen-fallback.efi
# Boot loader kurulumu
if [ "$BOOT_MODE" == "UEFI" ]; then
bootctl install --esp-path=/efi
else
grub-install --target=i386-pc --recheck "$DISK"
grub-mkconfig -o /boot/grub/grub.cfg
fi
bootctl install --esp-path=/efi
# Çıkış ve disk senkronizasyonu
exit
Expand Down

0 comments on commit b1a78e6

Please sign in to comment.