Ini relevan dengan Arch Linux (dan mungkin distribusi lain yang menggunakan systemd
). Saya ingin memasang partisi TrueCrypt saat boot. Dengan yang lama sysvinit
, ini cukup mudah dengan script yang disebut oleh rc.local
.
Saya sampai pada arus saya dengan membajak utas forum Arch . Ada utas lain di mana utas sistem-devel ini dibicarakan sebagai "memiliki solusinya," namun tidak jelas bagi saya apa sebenarnya itu, dan OP memiliki pos terakhir yang menyatakan bahwa ia tidak dapat mencapai tujuannya.
Dari kelihatannya orang ini melakukannya, tetapi sedang mencari cara untuk mematikan pesan booting terus menerus saat dia mengetikkan kata sandi. Saya diposting di sana juga memintanya untuk memposting .service
file yang sebenarnya .
Dalam mencari sedikit, orang menyebutkan bahwa mereka telah sukses atau itu mungkin, tetapi jangan menguraikan dengan tepat apa solusinya.
Saya sejauh dapat membuka kunci partisi dari baris perintah melalui systemd
layanan (yang pada gilirannya memberi saya kemampuan untuk turun secara otomatis pada shutdown / reboot), tetapi saya harus melakukannya secara manual setelah login. Saya sangat suka proses boot untuk berhenti dan meminta saya kata sandi.
Inilah skrip saya saat ini:
[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
Saya meninggalkan hal-hal yang dikomentari [Unit]
, karena pada titik tertentu saya menemukan saran bahwa itu harus ada, tetapi saya punya masalah dengan itu. Di atas tampaknya berfungsi dengan baik setelah boot / login ... hanya saja tidak selama.
sumber
sudo systemctl start truecrypt-vault
, memasukkansu
kata sandi, memasukkan kata sandi Volume TC, lalustartx
. Tentunya saya dapat meminta kata sandi disajikan kepada saya selama boot untuk menghindari langkah-langkah tambahan setelah login?plymouth
, kata sandi pada konsol kemungkinan akan hilang dalam layanan yang dimulai secara paralel.startx
secara manual. Tidak ada manajer login. Tapi ya, saya lakukan perlu menghentikan pesan boot sementara aku memasukkan teks, jika tidak maka hanya akan lenyap dari layar.systemd
memiliki agen yang dapat meminta kata sandi, jadi Anda bisa melihat ke arah itu.Jawaban:
ExecStart=
systemd-ask-password <PROMPT>
, baca kata sandi dari stdout-nya, dan masukkan ke truecrypt dengan cara apa pun yang diperlukanexec
truecrypt dari akhir skrip Anda agar tidak meninggalkan proses bash ekstra berkeliaranIni akan membuat systemd menanyakan kata sandi dengan segera (jika Anda memulai apache menggunakan systemctl) atau menggunakan salah satu agen yang disebut (ada agen standar yang meminta kata sandi menggunakan dinding atau langsung di konsol selama boot sistem). Ini adalah hal terbaik yang dapat Anda lakukan untuk tetap patuh.
sumber
Saya menemukan posting ini di Unix StackExchange: rc.local with read tidak akan mengulangi penekanan tombol
Saya pikir Anda bisa mencoba solusi yang digunakan
sumber