Debian Jessie 在啟動時掛起
安裝核心 4.6 後,我們用 Debian 8.5 Jessie 啟動了一個開發伺服器。它不會超過錯誤消息“設置 LVM 卷組”。
VM 有 Debian 8,帶有反向移植儲存庫,使用 sysV 而不是 systemd 引導,並使用 LVM。
我可以使用 knoppix 實時映像啟動它,並使卷組中的 6 個 LVM 分區顯示為:
vgchange -ay
我還能夠掛載 LVM 分區並對其進行編輯,因此這似乎不是任何 LVM 問題。
我還利用這一點以自然順序掛載所有分區,包括掛載綁定 proc、sys 和 dev,從而執行 chroot 以更自然地執行其他調試/修復命令。
已經嘗試將引導算法更改為
CONCURRENCY=none
/ legacy 但沒有多大成功。還重新生成了
initrd
文件,在升級核心時伺服器是否已填滿磁碟空間,使用以下命令:sudo dpkg-reconfigure linux-image-4.6.0-0.bpo.1-amd64
它也沒有任何區別。
我還重新安裝了 grub,使用:
sudo update-grub sudo grub-install /dev/sda
它也沒有工作。
我還在核心選項中添加了調試選項
grub
,但是,系統在啟動時既不列印相關錯誤,也不在錯誤後列印任何其他消息。也沒有任何日誌或
dmesg
要檢查的日誌,因為此時在引導時,syslog 仍然無法正常工作。
我最終將有問題的腳本定位為
/etc/rcS.d/S05lvm2
,並將在該腳本中停止 VM 的命令定位為/sbin/lvm vgchange -aay --sysinit >/dev/null
從源文件中可以看出,依賴關係
S05lvm2
有:# Should-Start: udev mdadm-raid cryptdisks-early multipath-tools-boot
最終,我突然意識到有人或某事
udev
在啟動時禁用了守護程序(在上次成功啟動後不久)。我還確定它不是核心安裝後常式禁用udev
。未滿足服務依賴關係的 init 腳本
udev
停滯不前,等待從未滿足的依賴關係,或等待從未出現的設備(或兩者兼而有之)。該問題已在上述 chroot 中修復:
sudo chkconfig udev on
(我們是否已安裝
chkconfig
)。以 Debian 的方式,它將是:sudo update-rc.d udev defaults
接下來重新製作 initrd 文件(Debian 輕鬆重新生成 initrd 文件的技巧):
sudo dpkg-reconfigure linux-image-4.6.0-0.bpo.1-amd64