Debian
如何在 initramfs 中的 switch_root 之前執行腳本?
我正在 initramfs 中啟動 dropbear ssh 伺服器,以便能夠通過 SSH *解鎖加密分區。
在 Debian Jessie 中,一切都很好,但在 Buster 中,dropbear 似乎並沒有在 之後停止
switch_root
,這會阻止 OpenBSD ssh 伺服器啟動。
apt-get purge dropbear
沒有幫助,which dropbear
列印/usr/bin/dropbear
和ps -ef | grep dropbear
列印/sbin/dropbear
;這說明這個過程是在 initramfs 階段開始的,並且沒有停止。作為一種解決方法,我正在
killall dropbear
使用 SSH 服務腳本,但在切換根分區之前將其終止會更合適。那時我該如何執行腳本?
將清理腳本創建為
/etc/initramfs-tools/scripts/init-bottom/cleanup.sh
:#!/bin/sh echo "Killing dropbear" killall dropbear exit 0
…並使其可執行:
chmod +x /etc/initramfs-tools/scripts/init-bottom/cleanup.sh
像往常一樣更新 initramfs:
update-initramfs -u
您已經有一個呼叫 switch_root 的腳本,所以只需在其中插入一行來停止 dropbear。
您也可以從您的 ssh 連接中停止它。登錄後,有兩個 dropbear 程序。第一個是接受新連接的程序,第二個是為您的連接提供服務的程序。此時您可以終止第一個程序,因為您不想要多個連接。斷開連接後,第二個過程將終止。
在引導過程的早期階段,您可以確定接受新連接的程序具有較低的程序號,儘管還有其他方法可以辨識它。