Talk:Dracut
What is the reason for --no-hostonly-cmdline
?
What is the reasoning behind including the option --no-hostonly-cmdline
in the example dracut-install.sh
script?
Is it to encourage the user to configure the kernel command line from the bootloader configuration rather than embedding in the initcpio? - Neurognostic (talk) 04:33, 5 February 2020 (UTC)
- This might be a good question to ask grazzolini on IRC; he gave me the script to post. You can see it in this commit: "Add grazzolini's draft dracut script" https://wiki.archlinux.org/index.php?title=User:Krathalan&diff=prev&oldid=586226 Krathalan (talk) 16:06, 5 February 2020 (UTC)
- I found out that if you do not use
--no-hostonly-cmdline
thendracut(8)
may duplicate some kernel parameters, such as automatically createrd.luks.uuid=<UUID>
inetc/cmdline.d/90crypt.conf
on the initramfs; when, in fact, they are already specified elsewhere (e.g. indracut.conf(5)
as thekernel_cmdline
option or the kernel parameters defined in the boot loader configuration). - Neurognostic (talk) 04:31, 15 February 2020 (UTC)
- I found out that if you do not use
Unified kernel image
The --uefi
option seems to successfully create a unified kernel image, but I can't figure out a sane way to set kernel parameters. Presumably they should be set in /etc/cmdline.d/
, but I can't get it to work.
- Without any options in
/etc/dracut.conf.d/*.conf
the unified kernel image does not have any kernel parameters. In simple setups booting is still possible thanks to systemd-gpt-auto-generator. - With
hostonly="yes"
in/etc/dracut.conf.d/*.conf
the unified kernel image contains some sort of autodetected kernel parameters and the resulting binary only contains the modules for the running system.
Below are the pacman hooks which I'm using.
-- nl6720 (talk) 12:35, 30 March 2020 (UTC)
/etc/cmdline.d
is relative to the initdir and needs to be copied into into it first, e.g. via--install
. dracut then showed the proper cmdline in its output, at least when i used--hostonly-cmdline
. I haven't yet managed to get it to boot, though.- --Lobachevsky (talk) 17:51, 29 May 2020 (UTC)
- Update: The problem was me trying to use zstd as compression, which did not work, but xz does. I haven't tested without
--hostonly-cmdline
yet, but the combinations--hostonly-cmdline --install /etc/cmdline.d/mycmdline.conf
produced a bootable UEFI binary. - Lobachevsky (talk) 15:05, 1 June 2020 (UTC)
- This old version [1] has a working version that integrates with
kernel-install
, which is how systemd imagines kernels do be installed. It's also natively supported my dracut (for non-unified kernels) and mkinitcpio, so lends itself excellently to usage in a hook. Thekernel-install
script uses the same mechanism the scripts provided by dracut would use to get the kernel cmdline/etc/kernel/cmdline
. - Lobachevsky (talk) 12:04, 10 August 2020 (UTC)
- This old version [1] has a working version that integrates with
- The
kernel_cmdline
config entry works as expected, I have successfully used it to mount a root partition that lives on a mdadm raid 0 array, with luks2, and btrfs. And it successfully worked with my tpm2 unlocked btrfs-on-luks2 root filesystem on my laptop. This issue is fixed. Otherwise feel free to answer me so we figure out the correct way and update the wiki. - Adelks (talk) 16:08, 12 August 2022 (UTC)
- In my opinion this article needs a cleanup. We should be instructing users to use systemd-ukify and the dracut-ukifyAUR method. I would like to see the removal of all those unmaintained hooks in AUR. I added this portion to try to tidy things up. Dngray (talk) 17:24, 18 December 2023 (UTC)
- Is there a change for you to add more specific instruction on using dracut-ukify?
- It does not seem to use
uefi_secureboot_cert
noruefi_secureboot_key
, or any dracut conf files for that matter. - I'd like to RTFM, but I cannot find anything useful on that topic. I'm trying to figure this out as of right now but with no luck. Anonymous badger (talk) 20:01, 9 February 2024 (UTC)
- I can see you set your parameters in there, see
Add global ukify flags to each invocation
.See '/usr/lib/systemd/ukify --help' for an available flags
/etc/dracut-ukify.conf
- I can see you set your parameters in there, see
- In my opinion this article needs a cleanup. We should be instructing users to use systemd-ukify and the dracut-ukifyAUR method. I would like to see the removal of all those unmaintained hooks in AUR. I added this portion to try to tidy things up. Dngray (talk) 17:24, 18 December 2023 (UTC)
- The
::::::ukify_global_args+=(--cmdline "rw rd.auto=1 rd.luksoptions=discard ::::::root=UUID=cd7419c4-3564-4d0c-8bcb-993c185b2174 ::::::resume=UUID=cd7419c4-3564-4d0c-8bcb-993c185b2174 ::::::rootflags=subvol=@ ::::::rd.luks.uuid=7fa03f88-af92-44e3-a356-174656056d6f")
- Unfortunately when running
sudo dracut-ukify -g linux
I get "unpacking falied: invalid magic at start of compressed archive". Also mentioned in this forum thread https://bbs.archlinux.org/viewtopic.php?pid=2147149 I haven't yet found a solution however, but we should find out what is wrong becausesystemd-ukify
is not going away. Dngray (talk) 10:19, 10 February 2024 (UTC)
- Unfortunately when running
Unified kernel image hooks
/etc/pacman.d/hooks/90-dracut-install-uki.hook
[Trigger] Type = Path Operation = Install Operation = Upgrade Target = usr/lib/modules/*/pkgbase [Action] Description = Generating unified kernel images (with dracut!)... When = PostTransaction Exec = /usr/local/bin/dracut-install-uki.sh NeedsTargets
/usr/local/bin/dracut-install-uki.sh
#!/usr/bin/env bash ESP_MOUNTPOINT="esp" [[ ! -e "${ESP_MOUNTPOINT}/EFI/Linux" ]] && mkdir -p -- "${ESP_MOUNTPOINT}/EFI/Linux" while read -r package_file_path_line; do if [[ "$package_file_path_line" == 'usr/lib/modules/'+([^/])'/pkgbase' ]]; then read -r pkgbase < "/${package_file_path_line}" kver="${package_file_path_line#'usr/lib/modules/'}" kver="${kver%'/pkgbase'}" dracut --force --uefi --uefi-stub /usr/lib/systemd/boot/efi/linuxx64.efi.stub "${ESP_MOUNTPOINT}/EFI/Linux/Arch-${pkgbase}.efi" --kver "$kver" fi done
dracut.cmdline and LVM on LUKS
It seems that setting kernel command line arguments in /etc/cmdline.d/
has no effect if the root partition is encrypted.
Perhaps these files would normally be parsed while booting before mounting the rootfs.
Summerer (talk) 09:25, 18 April 2020 (UTC)
- No, these files need to be included into the initrd, dracut will not add them by itself, since
initrd/etc/cmdline.d
is dracut's own mechanism to get cmdline arguments in order. Lobachevsky (talk) 11:55, 10 August 2020 (UTC)
Recommend rebuild-initramfs-dracutAUR?
Disclosure: I'm the author of this package.
Unlike mkinitcpio
which has -P
and -p
, in dracut you'd have to type the command by hand. I wrote a script to fix this situation and have put it on the AUR after having used it personally for some time: rebuild-initramfs-dracutAUR.
I'm certainly biased, but I think it wouldn't be a bad idea to mention this on the Wiki page as a "replacement" for mkinitcpio -P
. Xuanruiqi (talk) 23:42, 4 June 2020 (UTC)
Optional package dependencies
There seems to be an interest to remove optional dependencies from the Dracut wiki from Lahwaacz. This section is here to discuss the best approach to resolve this matter.
- Table is not a table for optional package dependencies any more. It is a table of descriptions of each dracut modules, similar to mkinitcpio hooks table https://wiki.archlinux.org/title/Mkinitcpio#Common_hooks. There is a long standing claim on how "dracut 's built-in modules unfortunately lack documentation" which is what this table is hoping to address.
- Both dracut and dracut-gitAUR package maintainers are maintaining optional package dependencies, which is complementing (and not replacing) wiki documentation - see https://gitlab.archlinux.org/archlinux/packaging/packages/dracut/-/blob/main/PKGBUILD?ref_type=heads and https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=dracut-git
—This unsigned comment is by Gombi (talk) 18:12, 10 March 2024. Please sign your posts with ~~~~!
- OK, it seems I misunderstood the point. — Lahwaacz (talk) 19:35, 10 March 2024 (UTC)