安裝 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
答案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
。