From 2792fb288e6130551a15a5bc518e52aae81e61e0 Mon Sep 17 00:00:00 2001 From: Gardais Jeremy Date: Thu, 30 Nov 2017 15:08:20 +0100 Subject: [PATCH] Add an UEFI entry to manage specific partitions (see #16). --- CHANGELOG.md | 8 + README.md | 37 +- config/debian/menu.cfg | 4 + preseed/debian/stretch/preseed.cfg | 3 + .../debian/stretch/preseed.cinnamon.uefi.cfg | 367 ++++++++++++++++++ 5 files changed, 398 insertions(+), 21 deletions(-) create mode 100644 preseed/debian/stretch/preseed.cinnamon.uefi.cfg diff --git a/CHANGELOG.md b/CHANGELOG.md index 7913a17..a5c1ef7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,11 @@ +## Release 0.X +### Improvement +* Add an UEFI entry to manage specific partitions (see #16). + +### Fix +* Leave standart task in peace to be able to have a X session for user's nodes… (see #17). +* Update doc about Debian distribution name and remove useless entries (oldStable). + ## Release 0.4.1 ### Improvement * Standard task is no longer install for Debian Stretch with preseed (see #14). diff --git a/README.md b/README.md index d00dee8..3b77766 100644 --- a/README.md +++ b/README.md @@ -48,25 +48,21 @@ Contains the files which defines the PXE menu. The [first one][main menu.cfg] wi #### config/debian/menu.cfg 1. Provide PXE entries for : - * Debian Jessie (Stable) amd64. - * Debian Jessie (Stable) amd64 with additional firmwares (see [make_debian_initrd_with_firmware.sh][debian initrd with firmware script] script). - * Debian Jessie (Stable) amd64 with additional firmwares and preseed file. - * Debian Jessie (Stable) amd64 for minions with preseed (Mate as default GUI). - * Debian Jessie (Stable) amd64 for minions with preseed (Cinnamon as default GUI). - * Debian Jessie (Stable) amd64 for minions with preseed (Gnome 3 as default GUI). - * Debian Jessie (Stable) i386. - * Debian Jessie (Stable) i386 with Mate as default GUI (for old manipulation computers). - * Debian Stretch (Testing) amd64 with additional firmwares (see [make_debian_initrd_with_firmware.sh][debian initrd with firmware script] script). - * Debian Stretch (Testing) amd64 with additional firmwares and preseed file. - * Debian Stretch (Testing) amd64 for minions with preseed (Mate as default GUI). - * Debian Stretch (Testing) amd64 for minions with preseed (Cinnamon as default GUI). - * Debian Stretch (Testing) amd64 for minions with preseed (Gnome 3 as default GUI). - * Debian Stretch (Testing) i386. - * Debian Wheezy (oldStable) amd64 with additional firmwares (see [make_debian_initrd_with_firmware.sh][debian initrd with firmware script] script). - * Debian Wheezy (oldStable) amd64 with additional firmwares and preseed file. - * Debian Wheezy (oldStable) amd64 with additional firmwares and preseed file for Cluster node. - * Debian Wheezy (oldStable) amd64 with preseed (Gnome 3 as default GUI). - * Debian Wheezy (oldStable) i386. + * Debian Jessie (oldStable) amd64 with additional firmwares (see [make_debian_initrd_with_firmware.sh][debian initrd with firmware script] script). + * Debian Jessie (oldStable) amd64 with additional firmwares and preseed file. + * Debian Jessie (oldStable) i386. + * Debian Stretch (Stable) amd64 with additional firmwares (see [make_debian_initrd_with_firmware.sh][debian initrd with firmware script] script). + * Debian Stretch (Stable) amd64 with additional firmwares and preseed file. + * Debian Stretch (Stable) amd64 for minions with preseed (Mate as default GUI). + * Debian Stretch (Stable) amd64 for minions with preseed (Cinnamon as default GUI). + * Debian Stretch (Stable) amd64 + UEFI for minions with preseed (Cinnamon as default GUI). + * Debian Stretch (Stable) amd64 for minions with preseed (Gnome 3 as default GUI). + * Debian Stretch (Stable) i386. + * Debian Wheezy (oldoldStable) amd64 with additional firmwares (see [make_debian_initrd_with_firmware.sh][debian initrd with firmware script] script). + * Debian Wheezy (oldoldStable) amd64 with additional firmwares and preseed file. + * Debian Wheezy (oldoldStable) amd64 with additional firmwares and preseed file for Cluster node. + * Debian Wheezy (oldoldStable) amd64 with preseed (Gnome 3 as default GUI). + * Debian Wheezy (oldoldStable) i386. * Debian Sid (unstable) amd64. * Debian Sid (unstable) amd64 with additional firmwares (see [make_debian_initrd_with_firmware.sh][debian initrd with firmware script] script). * Debian Sid (unstable) i386. @@ -141,8 +137,7 @@ Preseeding provides a way to set answers to questions asked by the Debian-Instal #### Specific configurations * You can choose a desktop environment : - * Debian Stable (aka Jessie) : Cinnamon, Mate or Gnome3 - * Debian oldStable (aka Wheezy) : Gnome3 + * Debian Stable (aka Stretch) : Cinnamon, Mate or Gnome3 * Partitionning differences for Debian with a desktop environment : | Device | Mount point | Size (Min - Max) | Description | diff --git a/config/debian/menu.cfg b/config/debian/menu.cfg index 164e892..b8d212d 100644 --- a/config/debian/menu.cfg +++ b/config/debian/menu.cfg @@ -30,6 +30,10 @@ label stableCinnamon menu label Debian stretch ^Cinnamon amd64 PRESEED kernel installer/debian/stretch/amd64/linux append vga=normal initrd=installer/debian/stretch/amd64/initrd_firm.gz auto=true interface=auto netcfg/dhcp_timeout=60 netcfg/choose_interface=auto priority=critical preseed/url=tftp://129.20.203.27/preseed/debian/stretch/preseed_cinnamon.cfg IPAPPEND 2 +label stableUefiCinnamon + menu label Debian stretch ^Cinnamon amd64 + UEFI PRESEED + kernel installer/debian/stretch/amd64/linux + append vga=normal initrd=installer/debian/stretch/amd64/initrd_firm.gz auto=true interface=auto netcfg/dhcp_timeout=60 netcfg/choose_interface=auto priority=critical preseed/url=tftp://129.20.203.27/preseed/debian/stretch/preseed.cinnamon.uefi.cfg IPAPPEND 2 label stableGnome menu label Debian stretch ^Gnome amd64 PRESEED kernel installer/debian/stretch/amd64/linux diff --git a/preseed/debian/stretch/preseed.cfg b/preseed/debian/stretch/preseed.cfg index 3892c9b..1ff4868 100644 --- a/preseed/debian/stretch/preseed.cfg +++ b/preseed/debian/stretch/preseed.cfg @@ -254,6 +254,9 @@ d-i partman-auto/expert_recipe string \ ## Need to put all free space in a temp logical volume/partition # Otherwise it's the last partition which get all free space +# Allow to not set a swap partition +#d-i partman-basicfilesystems/no_swap boolean false + # Automatically partition without confirmation d-i partman/confirm_write_new_label boolean true d-i partman/choose_partition select finish diff --git a/preseed/debian/stretch/preseed.cinnamon.uefi.cfg b/preseed/debian/stretch/preseed.cinnamon.uefi.cfg new file mode 100644 index 0000000..2a9dd30 --- /dev/null +++ b/preseed/debian/stretch/preseed.cinnamon.uefi.cfg @@ -0,0 +1,367 @@ +#################################################################### +# Howto use +#################################################################### + +## With a PXE boot: +#label stretch +# menu label Debian GNU/Linux ^Stretch 64 bits WITH PRESEED +# kernel installer/debian/stretch/amd64/linux +# APPEND vga=normal initrd=installer/debian/stretch/amd64/initrd_firm.gz auto=true interface=auto netcfg/dhcp_timeout=60 netcfg/choose_interface=auto priority=critical preseed/url=tftp://129.20.203.27/installer/debian/stretch/amd64/preseed.cfg IPAPPEND 2 + + + +#################################################################### +# Localization +#################################################################### + +#### Install Time +# Preseeding only locale sets language, country and locale. +#d-i debian-installer/locale string en_US + +# The values can also be preseeded individually for greater flexibility. +d-i debian-installer/language string en +d-i debian-installer/country string FR +d-i debian-installer/locale select en_US.UTF-8 +d-i debian-installer/fallbacklocale select en_US.UTF-8 +d-i localechooser/supported-locales multiselect fr_FR.UTF-8 +d-i debian-installer/keymap string fr-latin9 + +## Choose language +d-i localechooser/languagelist select en +## Choose keyboard configuration +d-i console-tools/archs string skip-config +d-i console-keymaps-at/keymap select fr-latin9 +d-i keyboard-configuration/xkb-keymap select French + + + +##################################################################### +## Network configuration +##################################################################### + +# To set a different link detection timeout (default is 3 seconds). +# Values are interpreted as seconds. +d-i netcfg/link_detection_timeout string 20 + +# If you have a slow dhcp server and the installer times out waiting for +# it, this might be useful. +d-i netcfg/dhcp_timeout string 60 +d-i netcfg/dhcpv6_timeout string 60 + +## Network Configuration +d-i netcfg/get_hostname string unassigned-hostname +d-i netcfg/get_domain string unassigned-domain + +# If non-free firmware is needed for the network or other hardware, you can +# configure the installer to always try to load it, without prompting. Or +# change to false to disable asking. +d-i hw-detect/load_firmware boolean true + + + +##################################################################### +## Remote install (Manual) +##################################################################### +# Use the following settings if you wish to make use of the network-console +# component for remote installation over SSH. This only makes sense if you +# intend to perform the remainder of the installation manually. +#d-i anna/choose_modules string network-console +#d-i network-console/authorized_keys_url string http://10.0.0.1/openssh-key +#d-i network-console/password password r00tme +#d-i network-console/password-again password r00tme + + + +##################################################################### +## Mirror settings +##################################################################### + +## Mirror +d-i mirror/country string FR +d-i mirror/http/hostname string ftp.fr.debian.org +d-i mirror/http/directory string /debian/ +d-i mirror/http/proxy string +d-i mirror/http/mirror string ftp.fr.debian.org +d-i mirror/suite string + + + +##################################################################### +## Account +##################################################################### +# Allow login as root? +d-i passwd/root-login boolean true +# Root password in clear text +#d-i passwd/root-password password r00tme +#d-i passwd/root-password-again password r00tme +# ... or encrypted with {MD5, SHA512, …) hash +d-i passwd/root-password-crypted password $6$ceGTxMxc$gXajYByJna1cfTjaST3TcF0FfrlSAaEcmCiOMq/DBOuD0tlu8VYQosZPgwcFT4bCuODMErU/fgRxZEeu9c10V0 + +# Create a normal user account now? +d-i passwd/make-user boolean false +## User name +#d-i passwd/user-fullname string bob +#d-i passwd/username string bob +## User password in clear text +#d-i passwd/user-password password insecure +#d-i passwd/user-password-again password insecure +## ... or encrypted with MD5 hash +##d-i passwd/user-password-crypted password $1$098f6bcd4621d373cade4e832627b4f6 +## Set User UID +#d-i passwd/user-uid string 1000 + + + +##################################################################### +## Clock and time zone setup +##################################################################### + +### Timezone +# Material clock on UTC +d-i clock-setup/utc boolean true +d-i time/zone string Europe/Paris +## Use NTP to set time +d-i clock-setup/ntp boolean true +d-i clock-setup/ntp-server string ntp.univ-rennes1.fr +#d-i clock-setup/ntp-server string 0.debian.pool.ntp.org + + + +##################################################################### +## Disk Partitioning/Boot loader +##################################################################### + +# If the system has only one disk the installer will default to using it. +# Otherwise, the device name must be given +d-i partman-auto/disk string /dev/sda /dev/vda /dev/nvme0n1 + +d-i partman-auto/init_automatically_partition select custom + +# Specify the method to use +# - regular: use the usual partition types for the architecture +# - lvm: use LVM to partition the disk +# - crypto: use LVM within an encrypted partition +#d-i partman-auto/method string regular +d-i partman-auto/method string lvm + +d-i partman-lvm/device_remove_lvm boolean true + +# It's ok to have /boot in the LVM +d-i partman-auto-lvm/no_boot boolean false + +# Remove old LVM configuration +d-i partman-lvm/device_remove_lvm boolean true +d-i partman-lvm/device_remove_lvm_span boolean true +d-i partman-auto/purge_lvm_from_device boolean true +# Remove old RAID configuration +#d-i partman-md/device_remove_md boolean true +# Confirm to write the LVM partitions +d-i partman-lvm/confirm boolean true +d-i partman-lvm/confirm_nooverwrite boolean true + +# Keep that one set to true so we end up with a UEFI enabled +# system. If set to false, /var/lib/partman/uefi_ignore will be touched +d-i partman-efi/non_efi_system boolean true + +# enforce usage of GPT - a must have to use EFI! +d-i partman-basicfilesystems/choose_label string gpt +d-i partman-basicfilesystems/default_label string gpt +d-i partman-partitioning/choose_label string gpt +d-i partman-partitioning/default_label string gpt +d-i partman/choose_label string gpt +d-i partman/default_label string gpt + +# LVM partition +# This recipe need almost 30Gb free space it's add all +# sda2 (16Gb), lv_* (~14Gb) then it should not count it because +# all logical volume are on sda2 ... +d-i partman-auto/expert_recipe string \ + boot-root :: \ + 538 538 1075 free \ + $iflabel{ gpt } \ + $reusemethod{ } \ + method{ efi } \ + format{ } \ + . \ + 200 200000 250 ext2 \ + $primary{ } $bootable{ } \ + method{ format } format{ } \ + use_filesystem{ } filesystem{ ext2 } \ + label{ boot } \ + mountpoint{ /boot } \ + . \ + 16000 100000 -1 ext4 \ + $defaultignore{ } \ + $primary{ } \ + method{ lvm } \ + vg_name{ sys } \ + . \ + 1000 8000 3000 ext4 \ + $lvmok{ } \ + in_vg{ sys } lv_name{ lv_root } \ + method{ format } format{ } \ + use_filesystem{ } filesystem{ ext4 } \ + label{ root } \ + mountpoint{ / } \ + . \ + 4000 7000 10000 ext4 \ + $lvmok{ } \ + in_vg{ sys } lv_name{ lv_usr } \ + method{ format } format{ } \ + use_filesystem{ } filesystem{ ext4 } \ + options/nodev{ nodev } \ + label{ usr } \ + mountpoint{ /usr } \ + . \ + 4000 6000 8000 ext4 \ + $lvmok{ } \ + in_vg{ sys } lv_name{ lv_var } \ + method{ format } format{ } \ + use_filesystem{ } filesystem{ ext4 } \ + options/nodev{ nodev } \ + label{ var } \ + mountpoint{ /var } \ + . \ + 1000 5000 2000 ext4 \ + $lvmok{ } \ + in_vg{ sys } lv_name{ lv_tmp } \ + method{ format } format{ } \ + use_filesystem{ } filesystem{ ext4 } \ + options/nodev{ nodev } \ + options/nosuid{ nosuid } \ + label{ tmp } \ + mountpoint{ /tmp } \ + . \ + 2000 4000 10000 ext4 \ + $lvmok{ } \ + in_vg{ sys } lv_name{ lv_home } \ + method{ format } format{ } \ + use_filesystem{ } filesystem{ ext4 } \ + options/nodev{ nodev } \ + label{ home } \ + mountpoint{ /home } \ + . \ + 512 3000 4000 ext4 \ + $lvmok{ } \ + in_vg{ sys } lv_name{ lv_opt } \ + method{ format } format{ } \ + use_filesystem{ } filesystem{ ext4 } \ + label{ opt } \ + mountpoint{ /opt } \ + . \ + 512 1000 100% linux-swap \ + $lvmok{ } \ + in_vg{ sys } lv_name{ lv_swap } \ + method{ swap } format{ } \ + . \ + 100 100 -1 ext4 \ + $lvmok{ } \ + in_vg{ sys } lv_name{ lv_free } \ + method{ format } format{ } \ + use_filesystem{ } filesystem{ ext4 } \ + label{ free } \ + mountpoint{ /mnt/free } \ + . +## Need to put all free space in a temp logical volume/partition +# Otherwise it's the last partition which get all free space + +# Allow to not set a swap partition +#d-i partman-basicfilesystems/no_swap boolean false + +# Automatically partition without confirmation +d-i partman/confirm_write_new_label boolean true +d-i partman/choose_partition select finish +d-i partman-md/confirm boolean true +d-i partman/confirm boolean true +d-i partman/confirm_nooverwrite boolean true + + + +##################################################################### +## APT configuration // Package selection +##################################################################### + +## Post install APT setup +d-i apt-setup/uri_type select d-i +d-i apt-setup/hostname string ftp.fr.debian.org +d-i apt-setup/directory string /debian/ +d-i apt-setup/another boolean false +d-i apt-setup/security-updates boolean false +d-i apt-setup/non-free boolean true +d-i apt-setup/contrib boolean true + +# Additional repositories, local[0-9] available + +# By default the installer requires that repositories be authenticated +# using a known gpg key. This setting can be used to disable that +# authentication. Warning: Insecure, not recommended. +#d-i debian-installer/allow_unauthenticated string true + + +## Choose packages +tasksel tasksel/first multiselect ssh-server standard cinnamon-desktop + +## Individual additional packages to install +# tftp-hpa to download an archive (see preseed/late_command at the end of this file) +d-i pkgsel/include string aptitude tmux zsh tftp-hpa +# Whether to upgrade packages after debootstrap. +# Allowed values: none, safe-upgrade, full-upgrade +d-i pkgsel/upgrade select full-upgrade + +# Participate to Popularity Contest (disable for an unconnected server) +d-i popularity-contest/participate boolean true + + + +##################################################################### +## Boot loader +##################################################################### +# Grub is the default boot loader (for x86). If you want lilo installed +# instead, uncomment this: +#d-i grub-installer/skip boolean true +# To also skip installing lilo, and install no bootloader, uncomment this +# too: +#d-i lilo-installer/skip boolean true + + +# This is fairly safe to set, it makes grub install automatically to the MBR +# if no other operating system is detected on the machine. +d-i grub-installer/only_debian boolean true + +# This one makes grub-installer install to the MBR if it also finds some other +# OS, which is less safe as it might not be able to boot that other OS. +d-i grub-installer/with_other_os boolean true + +# Since Debian Jessie, the d-i will ask to specify the device for Grub. +# Should use 'default', to use the default system disk +# Fix: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=759737 +d-i grub-installer/bootdev string default + + +##################################################################### +## Finishing up the installation +##################################################################### + +# Avoid that last message about the install being complete. +d-i finish-install/reboot_in_progress note +d-i prebaseconfig/reboot_in_progress note + +# This will prevent the installer from ejecting the CD during the reboot, +# which is useful in some situations. +d-i cdrom-detect/eject boolean false + +# This is how to make the installer shutdown when finished, but not +# reboot into the installed system. +#d-i debian-installer/exit/halt boolean true +# This will power off the machine instead of just halting it. +#d-i debian-installer/exit/poweroff boolean true + +#in-target wget -O /tmp/latecommand.tar.gz "https://wiki.101010.fr/lib/exe/fetch.php?media=documentation:administration_systeme:latecommand.tar.gz" --no-check-certificate ; \ +d-i preseed/late_command string in-target chsh -s /bin/zsh ; \ +umount /dev/sys/lv_free ; lvremove -f /dev/sys/lv_free ; \ +in-target /bin/rmdir /mnt/free ; in-target /bin/sed -i '/lv_free/d' /etc/fstab ; \ +in-target /bin/sed -i 's/.*\(PermitRootLogin\).*/\1 yes/g' /etc/ssh/sshd_config ; \ +in-target /usr/bin/tftp 129.20.203.27 -c get scripts/latecommand.tar.gz /tmp/latecommand.tar.gz ; \ +in-target tar xzf /tmp/latecommand.tar.gz -C /tmp/ ; \ +in-target /bin/sh /tmp/latecommand/post.sh +