On 10/05/2015 03:52 AM, Fabian wrote:
Am Montag, 5. Oktober 2015, 11:43:10 schrieb Andrei Borzenkov:
On Mon, Oct 5, 2015 at 11:34 AM, Fabian <fvogt@suse.com> wrote:
Am Montag, 5. Oktober 2015, 11:02:51 schrieb Andrei Borzenkov:
On Mon, Oct 5, 2015 at 7:41 AM, Moby <moby@mobsternet.com> wrote:
After applying this update to two different (one 64 and other 32 bit) machines, I get the following error displayed during boot:
systemd-fstab-generator[95]: Failed to create mount unit file /run/systemd/generator/sysroot.mount, as it already exists. Duplicate entry in /etc/fstab?
Anyone else seeing this?
From quick glance over dracut package, it unconditionally adds /sysroot to initrd's /etc/fstab in patch 0400-use_fstab_systemd.patch. Small nitpick: It doesn't add it during boot, it's already in the initrd: lsinitrd /boot/initrd /etc/fstab
I did not say "adds /etc/fstab". I said "adds TO /etc/fstab". By "it" I meant the entry for /sysroot.
But systemd generates /sysroot mount from root= kernel command line already. So we get duplicate indeed. Correct! The patch is a simplification of the dracut root "stuff", as with all modules and systemd together it has become quite a mess. The responsibility of deciding between "root=" and /etc/fstab is moved out from dracut into systemd-fstab-generator,
Really? Could you point to source? systemd-fstab-generator generates /sysroot mount from root= kernel command line; it does not use any fstab for it. At least, in upstream ... First is parses /proc/cmdline for /sysroot and /sysroot/usr, then it parses /etc/fstab (and /sysroot/etc/fstab). If there was no "root=" entry in /proc/cmdline (we want to get rid of it by default), systemd-fstab-generator could not generate sysroot.mount, so /sysroot is now in /etc/fstab, unconditionally. Before the patch, there would still be a "root=", but in the initrd's /etc/cmdline.d/, which is a dracut-only thing and systemd-fstab-generator doesn't know about that, so the functionality of systemd-fstab-generator had to be implemented in dracut as well to allow booting without "root=".
(It's a similiar issue with cryptsetup (the rd.luks.key bug, for example), where code in systemd is implemented in dracut as well, but both have entirely different semantics, so the solution is to decide which of those to use. For crypt it's fairly easy, dracut itself implements more features, like rd.luks.key, but for "root=", it's different again)
where is is implemented already, but not used yet. This resulted in code duplication and even more mess...
I'm not sure what this patch intended to fix, because its subject directly contradicts single line comment :) It doesn't fix anything directly, but in the long run it's intended to get rid of "root=" in the default grub config. The "root=" parameter is still fully supported, of course, but right now there is an issue with handling of mount options on /. If "root=<something>" is given on the kernel command line, the initrd ignores the entry for / in /etc/fstab completely. That's basically why the warning is there, although fairly generic. The issue with this is, that should there be any special mount options that can not be applied with "mount -o remount", those options will never have any effect whatsoever. Another parameter "rootflags=" is for suppling options that go together with "root=", but it's not set automatically.
-- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-factory+owner@opensuse.org
Thank you to all who responded - glad I am not the only one seeing this an that there is a bug open for it already. -- --Moby -- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-factory+owner@opensuse.org