Pardus Preseed ISO Oluşturma

Published 09-18-2019 00:00:00

Doküman “ISO İnşa Adımları, Örnek Preseed Dosyası ve ISO İnşa Betiği” adımlarını içererir. ISO İnşa Adımları‘nı inceledikten sonra kendi preseed dosyanızı oluşturarak ilerleyebilirsiniz.

#ISO İnşa Adımları

Öncelikle;

sudo su

ile yetki alınır. Daha sonra iso inşa için gerekli paketler kurulur;

apt install wget xorriso isolinux -y

Baz alınacak Pardus imajı indirilir;

wget http://indir.pardus.org.tr/ISO/Pardus19/Pardus-19.0-XFCE-amd64.iso

ISO dosyalarının oluşturulacağı dizin /opt altına oluşturulur;

mkdir -p /opt/pardusiso

Pardus Pardus-19.0-XFCE isosu açılır;

xorriso -osirrox on -indev Pardus-19.0-XFCE-amd64.iso -extract / /opt/pardusiso

Kurulum seçeneklerine preseed.cfg satırı eklenir;

sed -i 's+append vga=788  --- quiet+append file=/cdrom/preseed.cfg vga=788  --- quiet+g' /opt/pardusiso/isolinux/install.cfg 

sed -i 's+append video=vesa:ywrap,mtrr vga=788  --- quiet+append file=/cdrom/preseed.cfg video=vesa:ywrap,mtrr vga=788  --- quiet+g' /opt/pardusiso/isolinux/install.cfg

yukarıdaki iki sed komutu ile hem “Kur” seçeneğine hemde “Grafik arayüz ile kur” seçeneğine preseed dosyası eklenir.

new-preseed.iso kısmına yeni oluşacak iso dosyasının ismini verilir;

xorriso -as mkisofs -o new-preseed.iso -isohybrid-mbr /usr/lib/ISOLINUX/isohdpfx.bin -c isolinux/boot.cat -b isolinux/isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table  /opt/pardusiso/

Yukarıdaki komutların çalıştırıldığı dizine new-preseed.iso ismi ile dosya oluşturulur. Arzu edilirse /tmp/new-preseed.iso şeklinde tanımlama ile istenilen dizine oluşturulması sağlanabilir.

#Örnek Preseed Dosyası

Aşağıdaki satırları preseed.cfg dosyası oluşturarak pardus_build_iso.sh betiğinin yanına koyabilir veya elle /opt/pardusiso/isolinux/ dizini altına oluşturabilir/kopyalayabilirsiniz


# This file replaces preseed.cfg embedded in the initrd by
# debian-installer. It should be kept in sync except with the
# mirror/{codename,suite} dropped so that the image installs
# what's available on the CD instead of hardcoding a specific
# release.

d-i debian-installer/locale string tr_TR
d-i debian-installer/locale seen false

# Don't complain about incomplete translation
d-i localechooser/translation/warn-light boolean true
d-i localechooser/translation/warn-severe boolean true
d-i localechooser/translation/text/warn-incomplete boolean false
d-i localechooser/translation/text/warn-partial boolean false

# To create a normal user account.
d-i passwd/user-fullname string Pardus
d-i passwd/username string pardus
# Normal user's password, either in clear text
d-i passwd/user-password password pardus
d-i passwd/user-password-again password pardus
# or encrypted using a crypt(3) hash.
#d-i passwd/user-password-crypted password [crypt(3) hash]
# Create the first user with the specified UID instead of the default.
#d-i passwd/user-uid string 1010

# Change default hostname
d-i netcfg/get_hostname string pardus
d-i netcfg/get_hostname seen false
#Domain name otomatik atanır
d-i netcfg/get_domain string pardus.local

# Default repository information (don't include codename data, d-i figures it
# out from what's available in the ISO)
d-i mirror/country string manually
d-i mirror/http/hostname string depo.pardus.org.tr
d-i mirror/http/hostname seen false
d-i mirror/http/directory string /pardus
d-i mirror/http/proxy string

# We might need these later, think about the following lines.
d-i apt-setup/services-select multiselect
#d-i apt-setup/security_host string depo.pardus.org.tr
#d-i apt-setup/security_path string /guvenlik

# Set apt
d-i apt-setup/use_mirror boolean false
d-i apt-setup/disable-cdrom-entries boolean true
d-i apt-setup/cdrom/set-first boolean false
d-i apt-setup/cdrom/set-next boolean false
d-i apt-setup/cdrom/set-failed boolean false
d-i apt-setup/enable-source-repositories boolean false

# Disable upgrading while installation
#d-i pkgsel/upgrade select none
d-i pkgsel/upgrade select full-upgrade

# No root login allowed
d-i passwd/root-login boolean false
# Create a normal user account
d-i passwd/make-user boolean true

# Disable popularity-contest
popularity-contest popularity-contest/participate boolean false

# You can choose to install non-free and contrib software.
d-i apt-setup/non-free boolean true
d-i apt-setup/contrib boolean true
# Uncomment this if you don't want to use a network mirror.
d-i apt-setup/use_mirror boolean false

# Run late commands in the target
d-i preseed/late_command string sed -i 's/GRUB_CMDLINE_LINUX_DEFAULT="quiet"/GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"/g' /target/etc/default/grub; \
sed -i 's/#GRUB_GFXMODE=640x480/GRUB_GFXMODE=640x480/g' /target/etc/default/grub; \
sed -i 's/Debian/Pardus/g' /target/etc/default/grub; \
rm -fr /target/boot/efi/EFI/debian; \
cp -a /target/boot/efi/EFI/pardus /target/boot/efi/EFI/debian; \
in-target update-grub 

#Yeni depo eklenir
d-i apt-setup/local0/repository string deb http://depo.pardus.org.tr/pardus ondokuz main contrib non-free
d-i apt-setup/local0/source boolean false
#Kendi depolarımı ve gpg keyi ekledim
d-i apt-setup/local1/repository string deb http://depopardus.com.tr/pardus testing main
d-i apt-setup/local1/source boolean false
d-i apt-setup/local1/key string http://depopardus.com.tr/pardus/omer-archive-keyring.gpg

###Linkler

#ISO İnşa Betiği

Aşağıdaki satırları kopyalayıp pardus_build_iso.sh dosyası içine atınız.

chmod +x pardus_build_iso.sh

ile çalıştırma yetkisi veriniz. Daha sonra

./pardus_build_iso.sh

komutu ile betiği çalıştırınız.

#!/bin/bash

## ISO oluşturmak içn gerekli paket bağımlılıkları kurulur.
apt install wget xorriso isolinux -y

## Baz alınacak Pardus imajı indirilir.
wget http://indir.pardus.org.tr/ISO/Pardus19/Pardus-19.0-XFCE-amd64.iso

echo "ISO dosyalarının oluşturulacağı dizin /opt altına oluşturuluyor..."
mkdir -p /opt/pardusiso

echo "Pardus Pardus-19.0-XFCE isosu açılıyor..."
xorriso -osirrox on -indev Pardus-19.0-XFCE-amd64.iso -extract / /opt/pardusiso

echo "Konfigurasyon dosyaları kopyalanıyor..."
cp menu.cfg menu_tr.cfg /opt/pardusiso/isolinux/
cp preseed.cfg /opt/pardusiso/

echo "Kurulum seçeneklerine preseed.cfg satırı ekleniyor..."
sed -i 's+append vga=788  --- quiet+append file=/cdrom/preseed.cfg vga=788  --- quiet+g' 	/opt/pardusiso/isolinux/install.cfg
sed -i 's+append video=vesa:ywrap,mtrr vga=788  --- quiet+append file=/cdrom/preseed.cfg video=vesa:ywrap,mtrr vga=788  --- quiet+g' /opt/pardusiso/isolinux/install.cfg

echo "ISO oluşturuluyor..."

DATE=`date +%y%m%d%H%M`

xorriso -as mkisofs -o Pardus-19.0-XFCE-amd64-$DATE.iso -isohybrid-mbr /usr/lib/ISOLINUX/isohdpfx.bin -c isolinux/boot.cat -b isolinux/isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table  /opt/pardusiso/

#echo "ISO için oluşturulan dizin siliniyor..."
rm -rf /opt/pardusiso

yer=$(pwd)
iso="Pardus-19.0-XFCE-amd64-"$DATE".iso"
echo "ISO " $yer "dizini altına " $iso "ismi ile oluşturuldu.."