Mount options for ESP, LUKS and rootfs in automatic partition discovery and mounting

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello everyone,

Is it possible to specify mount options for ESP, root and LUKS devices when using automatic partition discovery and mounting with no fstab?

I got a new Arch Linux installation to boot without fstab, crypttab or specifying the `root/luks.uuid` kernel options, however the `luks.options=discard` and `rootflags=noatime` aren't honored. I have read man systemd-cryptsetup-generator, systemd-fstab-generator and systemd-remount-fs and can't seem to find the answer so as to why those settings aren't passed down.

My setup is as follow:

+----------------------------+ +---------------------------+
|                            | |                           |
| EFI System Partition (ESP) | | LUKS encrypted partition  |
|                            | |                           |
| /dev/nvme0n1p1             | | /dev/nvme0n1p2            |
| FAT32                      | | XFS                       |
|                            | |                           |
| mounted on /efi            | | mounted on /              |
|                            | |                           |
+----------------------------+ +---------------------------+

* partitioning was done using Partition Type GUIDs following the Discoverable Partition Specification:

# sgdisk --zap-all --clear /dev/nvme0n1 \
--new=1:0:+488M --typecode=1:ef00 --change-name=1:"EFI System Partition" \
  --new=2:0:0   --typecode=2:8304 --change-name=2:"Linux LUKS"
# fdisk -l /dev/nvme0n1
...
Device           Start        End   Sectors   Size Type
/dev/nvme0n1p1    2048    1001471    999424   488M EFI System
/dev/nvme0n1p2 1001472 1000215182 999213711 476.5G Linux root (x86-64)

* initramfs uses systemd with the following mkinitcpio hooks:

$ grep systemd /etc/mkinitcpio.conf
HOOKS=(base systemd autodetect keyboard sd-vconsole modconf block sd-encrypt filesystems fsck)

* systemd-boot is used to load a unified EFI kernel image made with:

```
objcopy \
--add-section .osrel="/usr/lib/os-release" --change-section-vma .osrel=0x20000 \ --add-section .cmdline="cmdline.txt" --change-section-vma .cmdline=0x30000 \ --add-section .splash="/usr/share/systemd/bootctl/splash-arch.bmp" --change-section-vma .splash=0x40000 \ --add-section .linux="vmlinuz-linux" --change-section-vma .linux=0x2000000 \ --add-section .initrd="ucode-initrd.img" --change-section-vma .initrd=0x3000000 \ "/usr/lib/systemd/boot/efi/linuxx64.efi.stub" "/efi/EFI/Linux/linux.efi"
```

$ cat cmdline.txt
luks.options=discard rootflags=noatime

$ bootctl list
Boot Loader Entries:
        title: Arch Linux (default)
           id: linux.efi
       source: /efi/EFI/Linux/linux.efi
        linux: EFI/Linux/linux.efi
      options: luks.options=discard rootflags=noatime

Logs show the correct command line:

journalctl -b | grep noatime
nov. 27 21:32:16 archlinux kernel: Command line: luks.options=discard rootflags=noatime

However once booted:

$ findmnt /
TARGET                                SOURCE           FSTYPE     OPTIONS
/ /dev/mapper/root xfs rw,relatime,attr2,inode64,logbufs=8,logbsize=32k,noquota

# dmsetup table
root: 0 999180943 crypt aes-xts-plain64 :64:logon:cryptsetup:LUKS-U-U-I-D-xx 0 259:2 32768

I have tried specifying the LUKS header UUID as in `luks.option=UUID=discard`, using different wording like discards, allow-discards, allow_discards... and using the `rw` option but to no avail.

For LUKS I know I can set the desired flags using `cryptsetup refresh` and make them permanent with the `--persistent` option, but I would like to know whether it is possible using just systemd and kernel options. As for rootflags, I am even more at a loss so as to why it isn't honored.

It is likely to be something I don't understand in how systemd works in early boot or maybe it is simply not possible, but from the doc it looks like it should. Could someone shed some light on this issue?

Bonus question: is setting mount options for the ESP doable via the same means, otherwise than manualy editing efi.mount?

Thanks and regards,
Bastien
_______________________________________________
systemd-devel mailing list
systemd-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/systemd-devel



[Index of Archives]     [LARTC]     [Bugtraq]     [Yosemite Forum]     [Photo]

  Powered by Linux