[systemd-devel] Need help detecting local/remote targets

Tony Rodriguez unixpro1970 at gmail.com
Tue Aug 20 22:15:13 UTC 2019


I modified systemd-219 functionality to meet a custom requirement for 
detecting filesystems/devices that use iscsi without using the _netdev 
keyword in /etc/fstab.  It is a strict requirement regarding not using 
_netdev that I have no control over.   However,  I am stuck.

 From my understanding, src/fstab-generator.c is used to determine 
LOCAL-FS and REMOTE-FS.  I have modified fstab-generator.c to search for 
iscsi udev devices which works, provided the system is already fully 
booted (typical multi-user state type of thing).  I can also find 
/dev/disk/ block devices including iscsi devices using my logic within 
fstab-generator.c.  The problem is when the system reboots, it appears 
systemd using the same fstab-generator logic that I implemented is 
unable to detect any iscsi devices.  After doing some research, it 
appears normal systemd behavior is to mount  /  and /usr then invoke 
fstab-generator.c to determine if a given filesystem in /etc/fstab 
should be a local or remote target.

The problem is I have no way to tell if a given iscsi filesystem/device 
specified in /etc/fstab (without the _netdev keyord ) is local/remote 
during the booting state.  Mainly because devices are not yet populated 
in /dev/disk or udev.  Is there a way I can determine if a 
filesystem/mount point/device specified in /etc/fstab is local or remote 
without the _netdev or fstype (which handles nfs, etc) keywords within 
fstab-generator.c? If checking udev and /dev/disk are not possible 
within fstab-generator.c, because such devices are not yet populated, 
then what should I modify within the systemd source so I can determine 
such local/remote targets myself and pass it to fstab-generator.c 
(especially when the system is in that / and /usr mounting state and 
udev devices are not yet populated?

Thanks,
Tony


More information about the systemd-devel mailing list