Because of the new Flutter installer in Ubuntu, several things have broken. For example, the ability to install Ubuntu Desktop using only LUKS, without LVM. Yes, I know: LVM is nice and LVM is flexible. However, an additional abstraction layer is not helpful when errors occur during recovery, and it is not especially easy for someone without prior knowledge to adjust disks and volume groups within an LVM installation correctly. In various forum posts there are many workarounds, such as installing without encryption and then adding LUKS later, but I don’t understand why the installer can’t handle this properly. Every Debian installation medium does it without major problems. Ubuntu, unfortunately, does not. Therefore, after hours of trying every possible forum suggestion, I have found a way to achieve a simple, reproducible installation of Ubuntu 25.10 Desktop with LUKS and without LVM. To achieve this, we use a plain‑old installation medium and a special file (autoinstall.yaml) that contains everything we need.
Preparation
- USB installation media with Ubuntu 25.10
- textfile autoinstall.yaml preferably on a second USB drive / or somewhere online
Tested with
Tested on: Ubuntu 25.10, MS Surface Laptop
Last Update: 2026-04-03
Environment
- UEFI Notebook
- Secure Boot enabled (you can check that with “mokutil –sb-state”)
Steps
1. Boot from installation media
When booting is complete, place your autoinstall.yaml on the desktop.
Important things to change:
- This is a YAML file, so spaces and layout is crucial.
- Adjust language and keyboard layout as needed.
- Use mkpasswd to generate your user password. In doubt choose whatever you like, because you can always change it later.
- VERY IMPORTANT! In my notebook my target disk is called /dev/nvme0n1. Make sure the device name is 100 % correct. The installation routine is run immediately and there will be no further prompts. If you accidentally entered the wrong device, it will be erased. I warned you. If in doubt, open gparted or GNOME Disks in the terminal to find out the exact name of your target device. Notebooks with NVMe disks have usually /dev/nvmeXXX and with SATA disks usually /dev/sdXXX.
Your file contents will be like:
#cloud-config
autoinstall:
version: 1
locale: en_US.UTF-8 # adjust if you need another language
keyboard:
layout: en # adjust if you need another language
identity:
hostname: ubuntu # set your hostname
username: user # set your user
password: "" # mkpasswd --method=SHA-512
ssh:
install-server: false
allow-pw: false
storage:
config:
- type: disk
id: disk0
path: /dev/nvme0n1 # DOUBLE CHECK TWICE!
ptable: gpt
wipe: superblock
grub_device: false # grub_device must be on EFI and not on disk
- type: partition
id: part-efi
device: disk0
size: 512M
flag: boot
grub_device: true # here
- type: partition
id: part-boot
device: disk0
size: 1G
- type: partition
id: part-luks
device: disk0
size: -1
- type: dm_crypt
id: dm-crypt0
volume: part-luks
key: "password" # password for LUKS
- type: format
id: fmt-efi
volume: part-efi
fstype: fat32
label: EFI
- type: format
id: fmt-boot
volume: part-boot
fstype: ext4
label: boot
- type: format
id: fmt-root
volume: dm-crypt0 # directly LUKS, no LVM
fstype: ext4
label: root
- type: mount
id: mnt-efi
device: fmt-efi
path: /boot/efi
- type: mount
id: mnt-boot
device: fmt-boot
path: /boot
- type: mount
id: mnt-root
device: fmt-root
path: /
packages:
- cryptsetup
- cryptsetup-initramfs
late-commands:
# ensure update-initramfs
- curtin in-target -- update-initramfs -u -k all
2. Run the installer
Once your file is ready on the desktop you can run the installer by calling “Install Ubuntu 25.10”:

Choose the automated mode with autoinstall file:

Click on “select file…” and provide the autoinstall.yaml file on your desktop:

When you click on Import, the file will be parsed and if you continue, everything will be installed and the system rebooted automatically.
After successful installation your partition layout will look like:

3. Adjustment
I have used “password” as LUKS password for the encryption of /dev/nvme0n1p3. Remember: Your device name can differ!
We should change the password now. The following command will ask you for the current and for the new password:
sudo cryptsetup luksChangeKey /dev/nvme0n1p3
In case you used just a temporary user password, don’t forget to change it, too.