Dotyczy to Arch Linux (i być może innych używających dystrybucji systemd
). Chcę zamontować partycję TrueCrypt podczas rozruchu. W starym przypadku sysvinit
było to całkiem proste, przy użyciu skryptu wywoływanego przez rc.local
.
Przeszedłem do mojego prądu przechwytując wątek na forum Arch . Jest jeszcze jeden wątek, w którym ten wątek opracowany systemowo mówi się o „posiadaniu rozwiązania”, jednak nie jest dla mnie oczywiste, co to właściwie jest, a OP ma ostatni post stwierdzający, że nie był w stanie osiągnąć swojego celu.
Wygląda na to, że ta osoba to robi, ale szukała sposobu na wyłączenie ciągłych komunikatów rozruchowych podczas wpisywania hasła. Wysłałem tam również prośbę o opublikowanie jego .service
akt.
Podczas długich poszukiwań ludzie wspominają, że odnieśli sukces lub że jest to możliwe, ale nie określają dokładnie, jakie było rozwiązanie.
Jestem tak daleko, jak tylko mogę odblokować partycję z wiersza poleceń za pośrednictwem systemd
usługi (co z kolei daje mi możliwość automatycznego odinstalowania jej przy zamykaniu / ponownym uruchomieniu), ale muszę to zrobić ręcznie po zalogowaniu. Naprawdę podoba mi się proces uruchamiania, aby zatrzymać i poprosić mnie o hasło.
Oto mój obecny skrypt:
[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
Zostawiłem komentarz [Unit]
, ponieważ w pewnym momencie wpadłem na sugestie, że powinien tam być, ale miałem z tym problemy. Powyższe wydaje się działać dobrze po uruchomieniu / zalogowaniu ... po prostu nie podczas.
źródło
sudo systemctl start truecrypt-vault
, wprowadźsu
hasło, następnie wpisz hasło TC Volumestartx
. Z pewnością mógłbym otrzymać monit o podanie hasła podczas uruchamiania, aby uniknąć dodatkowych kroków po zalogowaniu?plymouth
, jakakolwiek prośba o hasło w konsoli może zostać utracona w usługach rozpoczynających się równolegle.startx
ręcznie. Brak menedżera logowania. Ale tak, ja zrobić konieczność zatrzymania komunikaty startowe, a ja wprowadzić tekst, w przeciwnym razie będzie to po prostu znikają z ekranu.systemd
ma agenta, który może poprosić o hasło, więc możesz spojrzeć w tym kierunku.Odpowiedzi:
ExecStart=
systemd-ask-password <PROMPT>
, odczytaj hasło ze standardowego wejścia i podaj je do truecrypt w dowolny wymagany sposóbexec
truecrypt od końca skryptu, aby nie pozostawiać dodatkowego procesu bashSpowoduje to natychmiastowe zapytanie systemowego o hasło (jeśli uruchomisz apache przy użyciu systemctl) lub jednego z tak zwanych agentów (istnieją domyślne, które pytają o hasło przy użyciu ściany lub bezpośrednio na konsoli podczas uruchamiania systemu). To najlepsza rzecz, jaką możesz zrobić, aby zachować zgodność.
źródło
Znalazłem ten post na Unix StackExchange: rc.local z odczytem nie echa uderzeń klawiszy
Myślę, że możesz spróbować użyć zastosowanego rozwiązania
źródło