On this server system we have been offloading the ssd system "disk" of high-write loads for reliability / longevity reasons and following one strategy, we went to a new one and everything seemed OK.
However, we discovered that we'd made an error and forgot to remove a sym link that was in /. The purpose of that link was to avoid having to reboot and provide a partition, which we've later done. So, that link pointed to the new disk space for the /var tree. The new strategy just uses a mount point for /var. We rebooted and everything seemed OK. But without removing the symlink, it was odd: Everything seemed to work OK, but if you did realpath in /var it seemed to be on the wrong disk?!
So, we removed the symlink and rebooted and removing the sym link and THAT'S when things went wrong.
The mail files on the intended mount of /var were ALREADY fully up to date, which was surprising. So,over-writing the current /var with the former location - where realpath said it was - seemed like a bad idea. However, Postfix won't start!
It says:
Failed to start postfix.service: Unit var.mount is masked.
I've tried unmasking and have also read and considered the input from this question and this one, too.
So far, we have a "system down" situation!
We still have both disk trees intact, of course!
Asked for Additional Data
I suppose var.mount is a service - never knew that until now but:
systemctl unmask var.mountcompletes silently. A subsequent attempt to try to either startvar.mountorpostfix.servicerepeats the original error message about it being masked.systemctl status var.mountsays:
systemctl status var.mount ● var.mount Loaded: masked (Reason: Unit var.mount is masked.) Active: active (mounted) since Sat 2023-10-28 12:06:09 PDT; 5h 19min ago Where: /var What: /dev/sda1 CPU: 2ms CGroup: /system.slice/var.mount
Notice: journal has been rotated since unit was started, output may be incomplete.
Following my own query in a comment below I did a web search and found this article, and so I ran the following:
# systemctl list-unit-files | grep masked
-.mount masked-runtime disabled
boot.mount masked-runtime disabled
...all the mounts followed with exactly the same form as boot.mount, just the other mount names with slashes replaced by dashes.
No attempts at unmasking have worked so far, but I'm only using systemctl's unmask command...
...Still digging into it!
Advice is VERY welcome!
systemctl daemon-reload- after which investigating whether they match your intent can be done separately from rebooting. Try adding to your question: your /etc/fstab, the output ofsystemctl status [unit]of relevant unit.service and unit.mount,lsblk,mount, .. – anx Oct 28 '23 at 23:46/dev/sda1a regular partition containing the data that you want, and is/vara regular directory right now? – anx Oct 29 '23 at 01:18maskedandmasked-runtimestatus can be overridden manually. Calling unmask without--runtimenot clearing the latter state was (in older versions) by design. I do not think that is what you want, as you probably did not hand-write or manually mask those units. But should you for some reason still want to brute-force your way to modify systemd internals, themaskparagraph on thesystemctlmanual documents the--runtimecase. – anx Oct 29 '23 at 01:34journalctl -b 0 -o short-iso-precise | grep -C 10 -i -E 'var|mount|mask|postfix'– anx Oct 29 '23 at 01:39