Aşağıdakiler değiştirilmiş bir önyükleme görüntüsü oluşturur. CD'ye yazın veya test etmek için ISO'yu bir VM'ye yerleştirin. İhtiyacınız olacak cpio
ve genisoimage
(bu paketlerin ve yürütülebilir dosyaların adları).
Aşağıdakiler Makefile biçimindedir, ancak etkileşimli olarak girilebilir. ${IN_ISO}
Orijinal ISO görüntüsünü ifade eder ( -alternative
sürümü kullandım ve aynı şeyi yapmanızı öneririm), ${OUT_ISO}
istenen ISO adına.
# Extract the ISO image to mount/ and copy it to cdroot/
cdroot:
mkdir -p mount
sudo mount -o loop ${IN_ISO} mount
mkdir cdroot
cd cdroot && tar cf - ../mount --transform 's,^mount/,,' | tar xf -
sudo umount mount && rm -r mount
chmod -R a+rw cdroot
# Copy new files to the disk. Content of those files is posted below
prepare: cdroot
cp isolinux.cfg cdroot/isolinux/isolinux.cfg
test -e ./initrd.orig.gz || cp cdroot/install/initrd.gz ./initrd.orig.gz
mkdir -p initrd
cd initrd && gunzip <../initrd.orig.gz | sudo cpio -i && cd ..
cp preseed.cfg initrd/preseed.cfg
cd initrd && find . | cpio -o --format=newc | gzip -9 > ../cdroot/install/initrd.gz && cd ..
sudo rm -rf initrd
# Create the ISO image. Make sure to use extensions for lower-case filenames
iso: cdroot prepare
genisoimage -o ${OUT_ISO} \
-force-rr -J \
-b isolinux/isolinux.bin -c isolinux/boot.cat \
-no-emul-boot -boot-load-size 4 -boot-info-table \
cdroot
Bazı ek dosyalara ihtiyacınız var:
isolinux.cfg
önyükleyiciyi yapılandırır. Sadece önyükleme yapmasını ve yükleme işleminden otomatik olarak geçmesini istiyorsunuz. Şöyle görünmelidir:
default install
label install
menu label ^Install my custom Ubuntu
kernel /install/vmlinuz
append auto initrd=/install/initrd.gz --
# Leave 2 seconds to abort or debug
prompt 1
timeout 20
Kurulumu gerçekten yapılandırmadan önce ihtiyacımız olan tüm hazırlıklar budur. Önsöz örneğini indirin ve preseed.cfg olarak adlandırın. Bunu gözden geçirin ve istediğinizi düzenleyin. Önemli seçenekler:
# Locale
d-i debian-installer/locale string en_US
d-i time/zone string US/Eastern
# Partitioning. The following settings WILL OVERWRITE ANYTHING
# Don't insert the CD into your boss' computer ...
d-i partman-auto/method string regular
d-i partman/confirm_write_new_label boolean true
d-i partman/choose_partition select finish
d-i partman/confirm boolean true
d-i partman/confirm_nooverwrite boolean true
# To create a normal user account.
d-i passwd/user-fullname string Ubuntu User
d-i passwd/username string ubuntu
d-i passwd/user-password password insecure
d-i passwd/user-password-again password insecure
d-i user-setup/allow-password-weak boolean true
# Package selection. Don't include ubuntu-desktop to significantly reduce the content
tasksel tasksel/first multiselect standard
#d-i preseed/early_command string driver installation commands (stuff needed to boot)
#d-i preseed/late_command string driver installation commands, custom software, etc.
Ancak yukarıdaki örneği örnek olarak kullanmamanızı öneririm, ancak Ubuntu'nun örneğini indirin ve ihtiyaçlarınıza göre late_command
yapılandırın, özel yazılımınızı yükleyen ve yapılandıran bir komut dosyasını indirmek ve yürütmek de dahil olmak üzere kabuktan herhangi bir şey yapabilirsiniz. Örneğin, bunu şu şekilde kullanın late_command
:
d-i preseed/late_command string in-target sh -c 'wget https://example.com/my/install.sh && sh install.sh'
Alternatif olarak, install.sh
yukarıdaki initrd içine yerleştirip doğrudan yürütebilirsiniz. İçeriği şöyle görünebilir:
#!/bin/sh
aptitude install -y x11-apps any-package-you-want-installed
wget http://proprietary.com/drivers/for/ubuntu.tar.gz -O- | tar xf - && sh drivers/instal.sh
Gerçekten tescilli sürücü kurulum rutininizin nasıl çalıştığına bağlıdır.