Ubuntu Server 24.04 üzerinde otomatik kurulum (autoinstall) yapmak isteyenler için kapsamlı bir rehber hazırladım. Bu yazıda, Ubuntu Server 24.04 Live Server ISO dosyasını kullanarak kendi autoinstall ISO’nuzu nasıl oluşturacağınızı adım adım anlatacağım.
1. Ortam Hazırlığı ve Gerekli Paketler
Autoinstall sürecine başlamadan önce, host sunucunuzun Ubuntu Server 24.04 olduğundan emin olun. Daha sonra, ISO dosyasını düzenlemek ve yeni bir ISO oluşturmak için gerekli olan paketleri yüklemelisiniz:
sudo apt update
sudo apt install -y xorriso isolinux grub-pc-bin grub-efi-amd64-bin
2. ISO Dosyasını Hazırlama
Ubuntu Server ISO dosyasını sisteminize indirdikten sonra, içeriğini kolayca erişebileceğiniz bir dizine kopyalamamız gerekiyor.
ISO Dosyasını Bağlama (Mount Etme)
Öncelikle, ISO dosyasını geçici bir dizine bağlayın:
mkdir -p /mnt/iso
sudo mount -o loop ubuntu-24.04.2-live-server-amd64.iso /mnt/iso
Not: ubuntu-24.04.2-live-server-amd64.iso
dosyasının adını indirdiğiniz ISO dosyasına göre güncellemeyi unutmayın.
Dosyaları Kopyalama
Şimdi, bağladığınız ISO içeriğini çalışacağımız ana dizine kopyalayalım:
mkdir -p /home/poc/ubuntu2404/iso
rsync -a /mnt/iso/ /home/poc/ubuntu2404/iso
sudo umount /mnt/iso
Bu komutlar, ISO içeriğini /home/poc/ubuntu2404/iso
dizinine kopyalayacak ve ardından geçici bağlama noktasını kaldıracaktır.
3. Auto Install Dosyalarını Yapılandırma
Otomatik kurulumun anahtarı, nocloud
dizini altında yer alacak meta-data
ve user-data
dosyalarıdır. Bu dosyalar, Ubuntu’nun kurulum sırasında ne yapması gerektiğini belirtir.
Nocloud Dizinini Oluşturma
İlk olarak, kopyaladığınız ISO içeriğinin bulunduğu dizinde nocloud
adında bir dizin oluşturun:
mkdir -p /home/poc/ubuntu2404/iso/nocloud
Meta-data Dosyası
meta-data
dosyası, genellikle cloud-init ile birlikte çalışan ve kurulacak sunucu hakkında temel bilgileri sağlayan dosyadır. Basit bir instance-id
ile oluşturabiliriz:
echo "instance-id: iid-local01" > /home/poc/ubuntu2404/iso/nocloud/meta-data
User-Data Dosyası
user-data
dosyası, otomatik kurulumun beynidir. Kullanıcı oluşturma, paket yükleme, komut çalıştırma, disk bölümlendirme, ağ ayarları gibi tüm detaylı yapılandırmaları içerir. Ubuntu’nun autoinstall yapılandırması genellikle bu dosyanın içine YAML formatında yazılır. İşte bir örnek user-data
yapılandırması:
#cloud-config
autoinstall:
version: 1
identity:
hostname: ubuntu24
username: poc
password: "$6$rounds=4096$psZlLS/DU$D.r8wJzwKXj/1oBW7XMHYr13vLUQcndur57PeoDQO5n86KeVM5axw11HzHXb6a2KpRY21.i/0veqjZTtmDdl5/"
locale: en_US
keyboard:
layout: us
ssh:
install-server: true
storage:
swap:
size: 0
grub:
efi: true
devices: [ /dev/sda ]
config:
- type: disk
id: disk
ptable: gpt
path: /dev/sda
wipe: superblock-recursive
preserver: false
- type: partition
id: efi-part
device: disk
size: 1073741824
flag: boot
wipe: superblock
preserver: false
grub_device: true
- type: format
id: efi-format
volume: efi-part
fstype: fat32
- type: mount
id: efi-mount
path: /boot/efi
device: efi-format
- type: partition
id: root-part
device: disk
size: 134217728000
- type: format
id: root-format
volume: root-part
fstype: ext4
- type: mount
id: root-mount
path: /
device: root-format
- type: partition
id: kiosk-part
device: disk
size: -1
- type: format
id: kiosk-format
volume: kiosk-part
fstype: ext4
- type: mount
id: kiosk-mount
path: /kiosk
device: kiosk-format
Buradaki yapılandırmaya göre disk yapısı şöyle oluşacak:

Önemli Notlar:
- Şifre Oluşturma: Yukarıdaki
password
alanı hashlenmiş bir şifre içerir. Kendi şifrenizi oluşturmak için aşağıdaki komutu kullanabilirsiniz:mkpasswd --method=SHA-512
- Girinti (Indentation): YAML dosyalarında girintiler kritik öneme sahiptir. Yanlış girinti hatalara yol açabilir. Boşluklara dikkat ettiğinizden emin olun. Girintileri kontrol etmek için
cat -A user-data
komutunu kullanabilirsiniz. - Dosya Tipi:
user-data
dosyasının çıktısıfile user-data
komutuylauser-data: ASCII text
olmalıdır.
Yukarıdaki user-data
yapılandırmasının adım adım ne işe yaradığına göz atalım:
#cloud-config # Bu satır, dosyanın bir cloud-init yapılandırma dosyası olduğunu belirtir.
autoinstall: # Bu bölüm, Ubuntu'nun autoinstall sürecine özgü yapılandırmaları içerir.
version: 1 # Autoinstall yapılandırma dosyasının sürümünü belirtir. Genellikle '1'dir.
identity: # Yeni kurulacak sistemin kimlik bilgilerini tanımlar.
hostname: ubuntu24 # Sistemin ana bilgisayar adını 'ubuntu24' olarak ayarlar.
username: poc # Sistemin kullanıcı adını 'poc' olarak ayarlar.
password: "$6$rounds=4096$..." # Hashlenmiş kullanıcı şifresi.
locale: en_US # Sistemin yerel ayarlarını (dil, tarih/saat) 'en_US' olarak ayarlar.
keyboard: # Klavye düzeni ayarlarını içerir.
layout: us # Sistem klavye düzenini US olarak ayarlar.
ssh:
install-server: true # SSH sunucusunun kurulmasını sağlar.
storage: # Depolama aygıtlarının (diskler ve bölümler) yapılandırmasını içerir.
swap: # Takas alanı ayarı.
size: 0 # Takas alanı boyutunu 0 olarak ayarlar (kullanılmaz).
grub: # GRUB önyükleyici ayarları.
efi: true # UEFI kurulumu olacağı için EFI desteğini etkinleştirir.
devices: [ /dev/sda ] # GRUB'un kurulacağı disk.
config:
- type: disk # Bu öğenin bir disk olduğunu belirtir.
id: disk # Diskin benzersiz kimliğini belirtir.
ptable: gpt # Diskin GPT bölümleme tablosunu kullanacağını belirtir.
path: /dev/sda # İşlem yapılacak disk yolu.
wipe: superblock-recursive # Diskteki mevcut süperblokları siler (temiz kurulum için).
preserver: false # Mevcut disk içeriğinin korunmayacağını belirtir.
- type: partition # EFI bölümü tanımı.
id: efi-part
device: disk
size: 1073741824 # Bölüm boyutunu bayt cinsinden belirtir (yaklaşık 1 GB).
flag: boot # Bu bölümün önyüklenebilir (EFI) olduğunu belirtir.
wipe: superblock
preserver: false
grub_device: true
- type: format # EFI bölümünü biçimlendirme.
id: efi-format
volume: efi-part
fstype: fat32 # Bölümün FAT32 dosya sistemiyle biçimlendirileceğini belirtir (EFI için standart).
- type: mount # EFI bölümünü bağlama.
id: efi-mount
path: /boot/efi
device: efi-format
- type: partition # Kök (root) bölümü tanımı.
id: root-part
device: disk
size: 134217728000 # Bölüm boyutu (yaklaşık 125 GB).
- type: format # Kök bölümünü biçimlendirme.
id: root-format
volume: root-part
fstype: ext4
- type: mount # Kök bölümünü bağlama.
id: root-mount
path: /
device: root-format
- type: partition # Kiosk (ikincil) bölüm tanımı.
id: kiosk-part
device: disk
size: -1 # Kalan tüm alanı kullanır.
- type: format # Kiosk bölümünü biçimlendirme.
id: kiosk-format
volume: kiosk-part
fstype: ext4
- type: mount # Kiosk bölümünü bağlama.
id: kiosk-mount
path: /kiosk
device: kiosk-format
4. Boot Parametrelerini Güncelleme
Yeni oluşturduğumuz nocloud
dizinini ve user-data
dosyasını kurulum sırasında tanıyabilmesi için GRUB menüsüne ekleme yapmalıyız.
Aşağıdaki dosyayı bir metin düzenleyici ile açın:
sudo nano /home/poc/ubuntu2404/iso/boot/grub/grub.cfg
Bu dosyanın içinde, linux
ile başlayan satırın sonuna aşağıdaki parametreyi ekleyin:
autoinstall ds=nocloud\;s=/cdrom/nocloud/ ---
Ekledikten sonra satır şöyle görünmelidir (örnek):
linux /casper/vmlinuz --- autoinstall ds=nocloud\;s=/cdrom/nocloud/ ---
5. Yeni ISO Dosyasını Oluşturma
Tüm düzenlemeleri yaptıktan sonra, otomatik kurulumu destekleyen yeni ISO dosyamızı oluşturabiliriz.
Önemli: Aşağıdaki komutu, daha önce rsync
ile kopyaladığınız ISO içeriğinin bulunduğu dizinde çalıştırmalısınız. Benim örneğimde bu dizin /home/poc/ubuntu2404/iso
idi.
cd /home/poc/ubuntu2404/iso
sudo xorriso -as mkisofs -r \
-V 'Ubuntu-Server 24.04.2 LTS amd64' \
--modification-date='2025021622492200' \
--grub2-mbr --interval:local_fs:0s-15s:zero_mbrpt,zero_gpt:'/home/poc/ubuntu2404/ubuntu-24.04.2-live-server-amd64.iso' \
--protective-msdos-label \
-partition_cyl_align off \
-partition_offset 16 \
--mbr-force-bootable \
-append_partition 2 0xef --interval:local_fs:6264708d-6274851d::'/home/poc/ubuntu2404/ubuntu-24.04.2-live-server-amd64.iso' \
-part_like_isohybrid \
-c '/boot.catalog' \
-b '/boot/grub/i386-pc/eltorito.img' \
-no-emul-boot \
-boot-load-size 4 \
-boot-info-table \
--grub2-boot-info \
-eltorito-alt-boot \
-e '--interval:appended_partition_2_start_1566177s_size_10144d:all::' \
-no-emul-boot \
-boot-load-size 10144 \
-isohybrid-gpt-basdat \
. \
-o /root/AutoInstall/UbuntuServer2404/ubuntu24-autoinstall.iso
Dikkat Edilmesi Gereken Yerler:
--interval:local_fs:0s-15s:zero_mbrpt,zero_gpt:'/home/poc/ubuntu2404/ubuntu-24.04.2-live-server-amd64.iso'
-append_partition 2 0xef --interval:local_fs:6264708d-6274851d::'/home/poc/ubuntu2404/ubuntu-24.04.2-live-server-amd64.iso'
Yukarıdaki iki satırda orijinal ISO dosyasının tam yolunu (/home/poc/ubuntu2404/ubuntu-24.04.2-live-server-amd64.iso
) doğru bir şekilde belirttiğinizden emin olun.
-o /root/AutoInstall/UbuntuServer2404/ubuntu24-autoinstall.iso
Bu son satırda ise yeni oluşturulacak ISO dosyasının çıkış yolunu ve adını belirtebilirsiniz.
Bu adımları tamamladıktan sonra, artık otomatik kurulum yeteneğine sahip kendi Ubuntu Server 24.04 ISO dosyanız hazır olacaktır. Bu ISO’yu sanal makinelerinizde veya fiziksel sunucularınızda kullanarak hızlı ve standartlaştırılmış kurulumlar yapabilirsiniz.