Опиши задачу более полно, может, предложат более другие решения. Очевидно, что если не смонтирован /, то даже забавное решение с systemctl disable не сработает, поскольку твой юнит в initrd (верно?). Плюс ExecStop требует корректного завершения работы, а это сложно гарантировать.
Как вариант, в исходной формулировке, какой-то триггер на пересоздание initrd, скрипт для dracut/initramfs-tools с нужными условиями и маркер на диске.
Я бы добавил какой-то накопитель (хоть USB-флэшку), в юните сделал монтирование, вызовы e2image, отмонтирование. Вероятно, будет работать и ConditionPathExists= на файл этого дополнительного диска в /dev/disk/.
как потом забрать из /tmp (когда / поверх подмаунтится) еще не подумал :)
Помимо описанного выше варианта это мо-о-о-жет быть какой-то трюк с /dev/shm, но я сильно сомневаюсь.
Почитал каменты, ничего не понял. Может, тебе нужна отдельная опция загрузки, где вся автоматика сделается без всяких системдов и ребутнет тебя обратно?
ты хочешь сделать образ системного раздела в конститентном состоянии, и сделать это во время старта системы до его перемонтирования в rw ??
до «перемонтирования в rw» мое видение такого решения, чтобы ничего там случайно не было обрублено во время записи.
и сколь помню скрипты initrd это происходит задолго до старта systemd. т.е. юнит системд тебе не поможет, на этот момент системный раздел уже в режиме rw и на него возможно что-то записывается. надо вписываться в скрипты инитрд.
вообще мысль интересная - надо будет покумекать.
описание т.з. конечно на уровне плинтуса… :)