Esto es relevante para Arch Linux (y quizás otras distribuciones usando systemd
). Quiero montar una partición TrueCrypt en el arranque. Con el viejo sysvinit
, esto era bastante sencillo con un guión llamado por rc.local
.
Llegué a mi corriente secuestrando un hilo del foro de Arch . Hay otro hilo en el que se habla de este hilo de desarrollo del sistema como "tener la solución", sin embargo, no es evidente para mí lo que realmente es, y el OP tiene el último mensaje que indica que no pudo lograr su objetivo.
Por lo que parece, esta persona lo está haciendo, pero estaba buscando una manera de desactivar los mensajes de arranque continuos mientras escribe la contraseña. Publiqué allí también pidiéndole que publique su .service
archivo real .
Al buscar un poco, las personas mencionan que han tenido éxito o que es posible, pero no explican exactamente cuál fue la solución.
Estoy tan lejos como para poder desbloquear la partición desde la línea de comandos a través de un systemd
servicio (que a su vez me da la capacidad de desmontarla automáticamente al apagar / reiniciar), pero tengo que hacerlo manualmente una vez que inicie sesión. Realmente me gusta que el proceso de arranque se detenga y me pida la contraseña.
Aquí está mi script actual:
[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
Dejé las cosas comentadas [Unit]
, ya que en algún momento me encontré con sugerencias de que debería estar allí, pero tuve problemas con eso. Lo anterior parece funcionar bien después de arrancar / iniciar sesión ... pero no durante.
fuente
sudo systemctl start truecrypt-vault
, ingrese lasu
contraseña, ingrese la contraseña de TC Volume, luegostartx
. ¿Seguramente podría recibir el mensaje de contraseña durante el arranque para evitar los pasos adicionales después de iniciar sesión?plymouth
, es probable que cualquier solicitud de contraseña en la consola se pierda en los servicios que comienzan en paralelo.startx
manualmente. Sin administrador de inicio de sesión. Pero sí, lo hago necesidad de detener los mensajes de arranque, mientras que entro en el texto, de lo contrario sólo va a desaparecer de la pantalla.systemd
tiene un agente que puede solicitar una contraseña, por lo que puede mirar en esa dirección.Respuestas:
ExecStart=
systemd-ask-password <PROMPT>
, lea la contraseña de su stdout y aliméntela a truecrypt de la manera que sea necesariaexec
encriptar desde el final de tu script para no dejar un proceso de bash extra dando vueltasEsto hará que systemd consulte la contraseña de inmediato (si inicia apache usando systemctl) o usando uno de los llamados agentes (hay algunos predeterminados que solicitan contraseñas usando wall o directamente en la consola durante el arranque del sistema). Esto es lo mejor que puede hacer para cumplir.
fuente
Encontré esta publicación en Unix StackExchange: rc.local con read no hará eco de las pulsaciones de teclas
. Creo que podría probar la solución utilizada
fuente