/sbin/init 不存在

/sbin/init 不存在

/sbin/init 不存在

安裝 Arch Linux 後,我重新啟動,但現在無法完成啟動程序。我最終在上面的螢幕上看到了這條訊息

ERROR: Boot device mounted successfully, but /sbin/init does not exist. Bailing out, you are on your own. Good luck.

sh: can't access tty; job control turned off.

[rootfs ]# 提示。

我已經通過實時磁碟檢查並確認斯賓存在作為象徵性的 關聯/usr/bin。然而我沒有在裡面我的文件/資料夾/usr/bin目錄。我應該在哪裡獲取在裡面資料夾?我在安裝過程中錯過了一個步驟嗎?我可以做些什麼來糾正這個問題嗎?謝謝。

答案1

根據我的評論,我建議您糾正它的方法是使用 livecd 重新啟動系統(或用於啟動到安裝環境的任何方法)並重做安裝過程的以下步驟:

如果此後仍然無法正常工作,我建議檢查引導程式實際安裝的檔案系統。也許給出哪些文件的列表出現在/usr/bin目錄中將使我們能夠為您提供進一步的幫助。

答案2

我花了半天解決這個問題,最終意識到我的情況的原因是我在單獨的分區上設置了 /usr,並且在 grub 引導嘗試訪問 /usr 時只安裝了根分區/bin/init。

我透過將 /usr 檔案層次結構移動到根分區解決了這個問題。

理查

答案3

對於單獨的/usr分割區,您必須使用 initramfs/ mkinitcpio 並且必須新增 usr-hook。有一則評論/etc/mkinitcpio.conf準確地解釋了這一點。可能還需要額外的鉤子,文件註釋中概述了這一點。之後重新產生 initramfs,例如mkinitcpio -P.

/usr背景:目前,由於二進位和庫的儲存不一致,所有主要發行版都或多或少地被單獨的分區破壞了。根據 Linux Standard Base,它們應該使用 /bin、/sbin 和/或 /lib。相反,大多數人都會自己創建並填充 /usr/bin,以欺騙 /usr/sbin 並將其與不同的庫路徑混合。部分原因是為了防止用戶破壞東西並方便使用,部分原因是沒有板子首先制定標準。

至少 Arch Linux 和 Gentoo Linux 在其 Wiki 中提供了最新的複雜設定指南。我推薦閱讀 Gentoo 的早期使用者空間掛載了解建立自訂 initramfs 需要什麼。 Arch Linux 在這方面的水準更高一些。

我絕對建議要么保留常見桌面系統的安全性,要么以很少的分區運行。每天登錄,您很快就會發現檔案系統已滿。可以安全地分割/home到單獨的分割區(和磁碟)並將所有其他目錄保存在單一分割區/作業系統磁碟機上。

非桌面/伺服器絕對應該分割分割區,以避免填充分割區阻塞整個系統。它們在無人看管的情況下運行數月或數年。他們會自動寫入日誌、數據,甚至可能更新套件。由於收集的日誌或下載的包存檔,您無法再登入沒有剩餘空間的計算機/tmp/run或(取決於發行版)。/var某些分割區也很可能擁有 RAID 設備和/或複雜的檔案系統。這需要更多的鉤子和手動配置引導程式以及下面的所有內容/sbin/init

相關內容