PXE Sunucusu ile Debian Kurulumu

Network üzerinden işletim sistemi kurulumu yapmak, özellikle birden fazla makine yönetiyorsanız zaman kazandıran ve pratik bir yöntemdir. Bu rehberde, bir PXE (Preboot Execution Environment) sunucusu kurarak Debian 12 (Bookworm) işletim sistemini network üzerinden nasıl kurabileceğinizi adım adım anlatacağım. Bu sayede, kurulum için USB bellek veya CD’ye ihtiyacınız kalmayacak.

Neler Gerekli?

Bu kurulum için öncelikle Debian 12 yüklü bir sunucuya ihtiyacınız var. Ayrıca, kuracağınız makinelerin UEFI ve network boot özelliklerini desteklediğinden emin olun.


1. Gerekli Paketleri Yükleme

İlk adım olarak, PXE sunucusu işlevlerini yerine getirecek olan dnsmasq ve tftpd-hpa gibi temel paketleri yüklüyoruz.

sudo apt update
sudo apt install -y dnsmasq tftpd-hpa apache2 pxelinux syslinux-common curl
  • dnsmasq: DHCP ve DNS sunucusu olarak görev yapacak.
  • tftpd-hpa: TFTP (Trivial File Transfer Protocol) sunucusu. Kurulum dosyalarını istemcilere sunacak.
  • apache2: İhtiyaç duyulursa web sunucusu olarak kullanılabilir.
  • curl: Dosya indirme aracı.

2. TFTP Sunucusu Klasörünü Hazırlama

TFTP sunucusunun dosyaları sunacağı bir dizin oluşturmamız ve doğru izinleri vermemiz gerekiyor. Bu dizini genellikle /srv/tftp olarak belirleriz.

sudo mkdir -p /srv/tftp
sudo chown -R tftp:tftp /srv/tftp

3. Debian Kurulum Dosyalarını İndirme

Şimdi, Debian’ın network üzerinden kurulumu için gerekli olan temel dosyaları resmi Debian reposundan indirelim ve oluşturduğumuz TFTP dizinine açalım.

cd /tmp
curl -LO http://deb.debian.org/debian/dists/bookworm/main/installer-amd64/current/images/netboot/netboot.tar.gz
sudo tar -xzf netboot.tar.gz -C /srv/tftp

Bu komut, netboot.tar.gz dosyasını indirir ve içindeki debian-installer klasörünü /srv/tftp dizinine çıkarır. Bu işlemden sonra aşağıdaki dosyaların varlığını kontrol edebilirsiniz:

  • /srv/tftp/debian-installer/amd64/grubx64.efi
  • /srv/tftp/debian-installer/amd64/linux
  • /srv/tftp/debian-installer/amd64/initrd.gz

4. TFTP Sunucusunu Yapılandırma ve Başlatma

tftpd-hpa servisini, oluşturduğumuz TFTP dizinini kullanacak şekilde yapılandıralım. Bu ayarları /etc/default/tftpd-hpa dosyasına ekliyoruz.

sudo tee /etc/default/tftpd-hpa >/dev/null <<'EOF'
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/srv/tftp"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="--secure --create"
EOF

Yapılandırma bittikten sonra servisi etkinleştirip başlatalım. Bu sayede sunucu her yeniden başladığında otomatik olarak çalışacaktır.

sudo systemctl enable --now tftpd-hpa

5. GRUB Yapılandırmasını Oluşturma (UEFI)

Modern sistemlerde kullanılan UEFI için, network boot menüsünü oluşturmak amacıyla GRUB yapılandırma dosyasını hazırlamamız gerekiyor.

sudo mkdir -p /srv/tftp/debian-installer/amd64/grub
sudo tee /srv/tftp/debian-installer/amd64/grub/grub.cfg >/dev/null <<'EOF'
set default=0
set timeout=5

menuentry 'Debian 12 Kurulumu (Bookworm) - UEFI' {
    linux /debian-installer/amd64/linux priority=critical ---
    initrd /debian-installer/amd64/initrd.gz
}

menuentry 'Kurtarma Modu' {
    linux /debian-installer/amd64/linux rescue/enable=true ---
    initrd /debian-installer/amd64/initrd.gz
}
EOF

Bu yapılandırma, açılış sırasında basit bir menü sunarak kullanıcının kurulumu veya kurtarma modunu seçmesini sağlar.


6. Otomatik Kurulum (Opsiyonel)

Eğer birden fazla makineye aynı ayarlarla kurulum yapmak isterseniz, preseed dosyası kullanarak kurulumu otomatikleştirebilirsiniz. Bu işlem, kurulum sırasında size soru sorulmasını engeller. Preseed dosyasını initrd görüntüsüne gömmek için şu adımları izleyin:

sudo mkdir -p /root/initrd-work && cd /root/initrd-work
zcat /srv/tftp/debian-installer/amd64/initrd.gz | cpio -id
sudo cp /var/www/html/pxe/preseed.cfg ./preseed.cfg
find . | cpio -H newc -o | gzip -c | sudo tee /srv/tftp/debian-installer/amd64/initrd.gz >/dev/null

Bu komutlar, initrd dosyasını açar, içine preseed dosyasını ekler ve sıkıştırıp geri kaydeder.

Otomatik kurulum için yeni bir menü girişi oluşturmak isterseniz, grub.cfg dosyasına şu satırları ekleyebilirsiniz:

menuentry 'Debian 12 (UEFI, Otomatik Kurulum)' {
    linux /debian-installer/amd64/linux \
        auto=true priority=critical \
        preseed/file=/preseed.cfg \
        debian-installer/locale=tr_TR.UTF-8 \
        keyboard-configuration/xkb-keymap=tr ---
    initrd /debian-installer/amd64/initrd.gz
}

Not: preseed.cfg dosyasının içeriği, otomatik kurulum ayarlarını belirler. Bu dosyanın web sunucusunda (/var/www/html/pxe/) erişilebilir olması gerekir.

Bu adımları tamamladıktan sonra PXE sunucunuz kullanıma hazır olacaktır. Hedef makinenin BIOS/UEFI ayarlarından Network Boot (Ağdan Önyükleme) seçeneğini etkinleştirerek kurulumu başlatabilirsiniz.

Leave a Reply

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir