Repository navigation
Migrate Project From Ubuntu 25.10 To Ubuntu 26.04 LTS - #56
Conversation
Co-authored-by: clauspruefer <17313789+clauspruefer@users.noreply.github.com>
Co-authored-by: clauspruefer <17313789+clauspruefer@users.noreply.github.com>
clauspruefer
left a comment
There was a problem hiding this comment.
@copilot in mkiso.sh, please do the following: check if the efi boot parameters are already correct according to the updated Ubuntu 26.10 LTS ISO and if not done already, correct them to the new properties; the comment about doing this manually could be misleading.
Co-authored-by: clauspruefer <17313789+clauspruefer@users.noreply.github.com>
The hardcoded Ubuntu 25.10 EFI offsets ( |
clauspruefer
left a comment
There was a problem hiding this comment.
@copilot The fdisk approach generates wrong partition size values, the xorriso generation fails with errors. Please try to correct. Also there is an additional error in /iso/README.md, it states running the script from the parent path, this is not correct, the script must be run from inside /iso/, please also checj if the main /README.md refers correctly.
clauspruefer
left a comment
There was a problem hiding this comment.
@copilot please also check if the documentation lists the grub-pc-bin requirement for the iso generation process. If not, please add accordingly.
…so.sh run-directory docs
Both issues addressed in commit
|
|
clauspruefer
left a comment
There was a problem hiding this comment.
@copilot can you please add a test for the xorriso generation process and check errors, your last change did not work at all. And please, do not produce ugly Python inline code into scripts, this is UGLY, call an external script.
…s.py; add tests/test_mkiso.sh
Ubuntu 25.10 To Ubuntu 26.04 LTS
Done in commit
All 6 tests pass ( |
clauspruefer
left a comment
There was a problem hiding this comment.
@copilot Did you run the ../scripts/mkiso.sh from /iso with the correct ubuntu ISO to verify that xorriso gets the correct values?
Three root causes found and fixed in commit
|
clauspruefer
left a comment
There was a problem hiding this comment.
@copilot please update the CHANGELOG.md according to all recent changes.
Done in commit
|
clauspruefer
left a comment
There was a problem hiding this comment.
@copilot in CHANGELOG.md, please add a bulletpoint list with the most important changes for each ## v0.x main chapter, e.g. in ## v0.4 add 1. bugs from previous versions fixed for a 100% clean installer workflow 2. Gnome initial setup reliable removed 3. User automation / autoinstall process working 100% 4. Major Ubuntu update to a long time supported 26.04 LTS version
Done in commit
|
clauspruefer
left a comment
There was a problem hiding this comment.
@copilot somehow in CHANGELOG.md version 0.3 has been forgotten. Please add according to the current format, version 0.3 only had some minor changes for ISO autogeneration.
Done in commit |
There was a problem hiding this comment.
Pull request overview
Migrates the project baseline and documentation from Ubuntu 25.10 to Ubuntu 26.04 LTS, and updates the ISO build pipeline to auto-detect EFI partition offsets (MBR/GPT) rather than relying on hardcoded values—improving reliability on modern Ubuntu ISOs.
Changes:
- Updated ISO build script and docs for Ubuntu 26.04 LTS filenames/labels and EFI offset auto-detection.
- Added
get_efi_params.pyplus synthetic ISO fixtures and a shell test suite to validate EFI parameter extraction and arithmetic. - Updated autoinstall + hardening workflow details (username change, gnome-initial-setup removal, user-level service masking approach) and expanded configuration/documentation.
Reviewed changes
Copilot reviewed 15 out of 15 changed files in this pull request and generated 8 comments.
Show a summary per file
| File | Description |
|---|---|
tests/test_mkiso.sh |
Adds shell tests for EFI param extraction and mkiso arithmetic. |
tests/create_test_iso.py |
Generates minimal MBR/GPT “ISO” binaries used by the tests. |
scripts/README.md |
Updates host OS guidance and mkiso run instructions. |
scripts/mkiso.sh |
Switches to Ubuntu 26.04 ISO naming and computes EFI offsets dynamically for xorriso. |
scripts/get_efi_params.py |
New helper to extract EFI partition start/size from MBR or GPT. |
README.md |
Updates project-wide 26.04 references and refreshes ISO creation instructions. |
prepare-user-autostart.sh |
Fixes template path resolution by using script directory. |
patch-ubuntu-mirrors-https.sh |
Adds configurable mirror replacement via MIRROR_ADDRESS. |
iso/README.md |
Updates ISO filename and clarifies expected run directory. |
disable-services.sh |
Adjusts user service masking strategy and fixes su -c paths. |
config.sh |
Adds MIRROR_ADDRESS, adjusts kernel cmdline, and updates default user IDs. |
CONFIG.md |
Documents MIRROR_ADDRESS and updates config parameter index. |
CHANGELOG.md |
Adds v0.4 section describing migration and related workflow changes. |
autoinstall/autoinstall.yaml |
Updates default username and ensures gnome-initial-setup removal happens in-target. |
apt-remove-cmds.sh |
Adds removal of gnome-initial-setup. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| **Additional Resources:** | ||
| - For detailed information about Hardened Ubuntu and NextDNS security configuration, see: [Hardened Ubuntu NextDNS Security Guide](https://www.der-it-pruefer.de/security/Hardened-Ubuntu-NextDNS-Security) | ||
| - Download autointall-ready ISO at [https://download.webcodex.de/iso/ubuntu-25.10-hardened.iso](https://download.webcodex.de/iso/ubuntu-25.10-hardened.iso) | ||
| - Download autointall-ready ISO at [https://download.webcodex.de/iso/ubuntu-26.04-hardened.iso](https://download.webcodex.de/iso/ubuntu-26.04-hardened.iso) |
| # install xorriso and grub-pc-bin (required for eltorito.img hybrid ISO support) | ||
| sudo apt-get install xorriso grub-pc-bin | ||
|
|
||
| # install xorriso | ||
| sudo apt-get install xorriso | ||
| # derive EFI partition offsets directly from the ISO's MBR partition table | ||
| EFI_PARAMS=$(python3 scripts/get_efi_params.py "${ISO_FILE}") |
| # Read EFI partition offsets directly from the ISO's MBR partition table. | ||
| # EFI_START_D / EFI_END_D -> xorriso --interval:local_fs 'd' (512-byte disk sector) suffix | ||
| # EFI_SIZE_D -> xorriso -boot-load-size and size_Xd (512-byte disk sectors) | ||
| # EFI_START_S -> xorriso appended_partition_2_start 's' (2048-byte ISO sector) suffix | ||
| EFI_PARAMS=$(python3 "$(dirname "$0")/get_efi_params.py" "${ISO_FILE}") | ||
| EFI_START_D=$(echo "${EFI_PARAMS}" | cut -d' ' -f1) | ||
| EFI_SIZE_D=$(echo "${EFI_PARAMS}" | cut -d' ' -f2) | ||
| EFI_END_D=$(( EFI_START_D + EFI_SIZE_D - 1 )) | ||
| EFI_START_S=$(( EFI_START_D / 4 )) |
| @@ -213,3 +214,20 @@ Used by `disable-services.sh` to iterate over each user and perform per-user set | |||
| ```sh | |||
| USER_IDS="admin user1" | |||
|
|
||
| #### GRUB Kernel Command Line | ||
|
|
||
| - Removed `nomodeset` parameter from default `GRUB_KERNEL_CMDLINE` in `config.sh`; `nomodeset` forces software rendering and causes incorrect display setup on systems with Intel integrated graphics. |
| # Instructions | ||
|
|
||
| On a *Ubuntu 25.10* installation, do the following: | ||
| On a *Ubuntu 26.04 LTS* installation, do the following: |
|
|
||
| > [!NOTE] | ||
| > The `mkiso.sh` must be run as root (`sudo` or directly) from the parent (`../`) path. | ||
| > The `mkiso.sh` must be run as root (`sudo` or directly) from **inside the `iso/` directory**, as shown in the command above. |
| ## 5.2. Creating Bootable USB Installation Medium | ||
|
|
||
| 1. **Download Ubuntu 25.10 Desktop ISO** from the official Ubuntu website. | ||
| 1. **Download Ubuntu 26.04 LTS Desktop ISO** from the official Ubuntu website. |
Migrates all project references from Ubuntu 25.10 to Ubuntu 26.04 LTS, targeting the
ubuntu-26.04-desktop-amd64.isosource image.Changes
scripts/mkiso.sh— ISO source/output filenames updated; volume label changed to"Ubuntu 26.04 LTS Hardened"; added inline comment documenting how to re-derive EFI partition offsets viafdisk -lfor a new ISO buildscripts/README.md— host OS requirement updated to Ubuntu 26.04 LTSiso/README.md— download filename updated toubuntu-26.04-desktop-amd64.isoREADME.md— all version strings, section headings, ToC anchors, ISO filenames, and download URL updatedCHANGELOG.md— v0.4 section added documenting the migrationRelated Issues
Fixes #47
Fixes #55