add preseed-file for Linux Mint ISO and a shell script to create a custom Linux Mint ISO

This commit is contained in:
stefan230 2020-02-29 15:02:50 +01:00
parent 80f208a1c1
commit 7c5ad3ffbc
2 changed files with 114 additions and 0 deletions

76
mint/computertruhe.seed Normal file
View File

@ -0,0 +1,76 @@
# My working preseed file for LinuxMint 18 Cinnamon
d-i debian-installer/locale string de_DE
d-i localechooser/supported-locales de_DE.UTF-8
d-i keyboard-configuration/xkb-keymap select de
d-i keyboard-configuration/layoutcode string de
d-i debian-installer/splash boolean false
d-i console-setup/ask_detect boolean false
d-i console-setup/layoutcode string de
d-i console-setup/variantcode string
### Partitioning
# If the system has free space you can choose to only partition that space.
# This is only honoured if partman-auto/method (below) is not set.
#d-i partman-auto/init_automatically_partition select biggest_free
# Alternatively, you may specify a disk to partition. If the system has only
# one disk the installer will default to using that, but otherwise the device
# name must be given in traditional, non-devfs format (so e.g. /dev/sda
# and not e.g. /dev/discs/disc0/disc).
# For example, to use the first SCSI/SATA hard disk:
#d-i partman-auto/disk string /dev/sda
# In addition, you'll need to specify the method to use.
# The presently available methods are:
# - regular: use the usual partition types for your architecture
# - lvm: use LVM to partition the disk
# - crypto: use LVM within an encrypted partition
#d-i partman-auto/method string regular
# You can choose one of the three predefined partitioning recipes:
# - atomic: all files in one partition
# - home: separate /home partition
# - multi: separate /home, /var, and /tmp partitions
#d-i partman-auto/choose_recipe select atomic
#d-i partman/default_filesystem string ext3
#d-i partman/choose_partition select finish
# If one of the disks that are going to be automatically partitioned
# contains an old LVM configuration, the user will normally receive a
# warning. This can be preseeded away...
#d-i partman-lvm/device_remove_lvm boolean true
# The same applies to pre-existing software RAID array:
#d-i partman-md/device_remove_md boolean true
# And the same goes for the confirmation to write the lvm partitions.
#d-i partman-lvm/confirm boolean true
#d-i partman-lvm/confirm_nooverwrite boolean true
# Just in case, the positive answer to all other imagineable conformation questions:
#d-i partman-partitioning/confirm_write_new_label boolean true
#d-i partman/confirm boolean true
#d-i partman/confirm_nooverwrite boolean true
#d-i partman/confirm_write_new_label boolean true
#d-i partman-md/confirm boolean true
# Time
d-i time/zone string Europe/Berlin
d-i clock-setup/utc boolean true
d-i clock-setup/ntp boolean true
d-i clock-setup/ntp-server string ntp.ubuntu.com
# LinuxMint will *demand* a user during installation, ignoring the value
# of the passwd/make-user flag, so we need to provide the user data here.
# You should not preseed the password in clear text, this is just an example!
d-i passwd/user-fullname string user
d-i passwd/username string user
d-i passwd/user-password-crypted password $6$8Wk7hOnUGc1ffBRY$nefXDPeChvZGK3B/bA4Hzv91sOU8IqmXE4IJATV.BRFtaWJtBQqJKtBQO.e092nf4Jg1.4L2TH5TaLtFy02x1.
d-i passwd/user-password-again password $6$8Wk7hOnUGc1ffBRY$nefXDPeChvZGK3B/bA4Hzv91sOU8IqmXE4IJATV.BRFtaWJtBQqJKtBQO.e092nf4Jg1.4L2TH5TaLtFy02x1.
d-i passwd/root-login boolean false
d-i user-setup/encrypt-home boolean false
d-i user-setup/allow-password-weak boolean true
# Use non-free packages
ubiquity ubiquity/use_nonfree boolean true

38
mint/linux_mint_custom_iso.sh Executable file
View File

@ -0,0 +1,38 @@
#!/bin/bash
#the script needs superuser rights to work correctly for now.
#TO DO: maybe there is a way for the script to work as non-root?
[[ $UID -ne 0 ]] && exec sudo ./"$0"
#creates some folders that are used during the process. These can be changed, but needed be to changed across the script.
mkdir /mnt/iso /opt/mintiso
#Downloads latest* mint-iso from the fh-aachen mirror.
#TO DO: Maybe there is a way to use a more generic url here? As it stands now the url has to be changed when a new Linux Mint version is released down the line. Maybe variables are a possibility?
wget http://mirror.bauhuette.fh-aachen.de/linuxmint-cd/stable/19.3/linuxmint-19.3-cinnamon-64bit.iso
#mounts the downloaded iso into a folder. * is added as a wildcard for the version number.
mount -o loop linuxmint-*-cinnamon-64bit.iso /mnt/iso
#the contents of the iso have to be copied over to another folder, since the ISO is mounted read-only. all the steps below require root.
cp -rT /mnt/iso/ /opt/mintiso/
cd /opt/mintiso/
#copies the computertruhe.seed from codeberg-repo so always the latest preseed-file is used.
curl https://codeberg.org/stefan230/Setup-Skripte/raw/branch/master/mint/computertruhe.seed > /opt/mintiso/preseed/computertruhe.seed
#configures the bootloader to use the "custom" computertruhe-preseed.
sed -i 's/linuxmint.seed/computertruhe.seed/g' isolinux/isolinux.cfg
#creates the custom-iso with the given parameters.
#TO DO: the outputpath right now is not generic enough. Maybe find a better name for the iso.
mkisofs -D -r -V "UNATTENDED_MINT" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o /home/stefan/linuxmint-unattended.iso /opt/mintiso
#umounts the iso and clears up the space we used to create the iso.
umount /mnt/iso
cd
rm -r /mnt/iso/
rm -r /opt/mintiso/
#from here we are basically done and the iso can be "burned" on an USB ready for install.
echo "Die Custom ISO wurde fertiggestellt und kann nun verwendet werden. Die ISO ist unter /home/stefan/linuxmint-unattended.iso zu finden."