这与Arch Linux(也许还有其他使用的发行版systemd
)有关。我想在启动时挂载TrueCrypt分区。与旧版本相比sysvinit
,使用名为的脚本非常简单rc.local
。
我通过劫持一个Arch论坛线程了解了我的最新情况。还有另一个线程将这个systemd-devel线程称为“具有解决方案”,但是对我来说实际的含义并不明显,OP的最后一篇文章指出他无法实现自己的目标。
从外观上看,此人正在这样做,但是他正在寻找一种在输入密码时关闭连续启动消息的方法。我也在那里张贴了.service
文件,并要求他张贴他的实际文件。
在进行大量搜索时,人们提到他们已经成功或有可能,但并未确切说明解决方案是什么。
我可以通过systemd
服务从命令行解锁分区(这反过来又使我能够在关机/重新启动时自动卸除分区),但是登录后我必须手动进行操作。 d非常喜欢启动过程暂停并要求我输入密码。
这是我当前的脚本:
[Unit]
Description=Truecrypt Setup for vault
#DefaultDependencies=no
#Conflicts=umount.target
#Before=umount.target
#After=systemd-readahead-collect.service systemd-readahead-replay.service
#After=cryptsetup.target
[Service]
Type=oneshot
RemainAfterExit=yes
#StandardInput=tty-force
ExecStart=/bin/sh -c '/usr/bin/truecrypt -t --protect-hidden=no -k "" --filesystem=none --slot=1 -p `systemd-ask-password "Enter password for truecrypt volume: "` /dev/sda4'
ExecStop=/usr/bin/truecrypt --filesystem=none -d /dev/sda4
[Install]
WantedBy=multi-user.target
我将评论的内容留在中[Unit]
,因为在某个时候我遇到了应该放在其中的建议,但是我对此有疑问。上面的内容似乎在启动/登录后就可以正常工作了……只是在此期间没有。
据我了解,如果您不想被日志消息打扰,则需要在单元文件中创建一个屏障-这意味着它将需要在启动之前完成所有服务(初始化),并且它将阻塞之后运行的所有服务。这就是您要达到的目标吗?
—
彼得
@peterph我不认为这很重要,只要在收到提示时运行TrueCrypt所需的任何内容即可。其他事情不依赖于此,因为它只是一个用于存储文件的卷。因此,当我输入密码时,其他事情可能会在后台加载。目前,我等待登录,然后手动开始
—
亨迪
sudo systemctl start truecrypt-vault
,输入su
密码,输入TC Volume密码,然后按startx
。当然可以在启动过程中向我显示密码提示,以避免登录后执行额外的步骤?
这就是我的意思,实际上也是您的意思(甚至在问题主题中也是如此)-在启动过程中获取密码提示。如果您未使用像这样的图形引导
—
彼得
plymouth
,则在并行启动的服务中,控制台上的所有密码提示都可能会丢失。
哦。我以为您是在问我是否需要停止服务,还是要确保以前的所有服务都已开始……我不确定,并试图尽我所能回答。我仅通过文本登录和
—
亨迪
startx
手动启动到运行级别3 。没有登录管理器。但是,是的,在输入文本时,我确实需要停止引导消息,否则它将从屏幕上消失。