
我是一個 Linux 新手,我安裝它的唯一原因是這樣我就可以不再遇到 Windows 與 Ruby on Rails 不相容的問題。話雖如此,它確實很好,而且速度更快,而且我認為我不會很快做任何 Winrails 的事情。
因此,我使用 virtualbox 創建了一個虛擬機,並在過去 3 週內使用了 ubuntu。最近 ubuntu 詢問是否可以更新一些東西,我點擊了「確定」。
現在它無法啟動,並且出現此錯誤: *mount: 在/root/dev 上安裝/dev 失敗: 沒有這樣的檔案或目錄mount: 在/root/sys 上安裝/sys 失敗: 沒有這樣的檔案或目錄. ..目標檔案系統沒有 /sbin/init。未找到初始化。嘗試傳遞 init= bootarg
BusyBox v1.13.3...
(initramfs) _ *
所以我瀏覽了論壇,有各種各樣的解決方案,但它們都與從 live CD 啟動有關。 (我假設這是我最初用來安裝 ubuntu 的 ISO 映像)。但是當我從那張 CD 啟動時,它只是掛在 ubuntu 螢幕上,小點不斷從白色到紅色循環,但它掛在那裡一個小時,所以我認為它被卡住了。不確定我能做什麼;我可以從 busybox shell(或其他任何東西)中做任何事情來修復問題嗎?
問題是,我花了大約 10 個小時才得到我需要的一切,包括所有的寶石和諸如此類的東西。我並沒有真正寫下我調整的內容,而且我已經中年了,所以所有資訊現在都已經洩露了,我不想再這樣做了。我真的很想修復我現有的安裝。
您可能有一個問題:ISO 是否有問題?我不這麼認為,因為我創建了一個新的虛擬機器並使用相同的 iso 檔案來安裝新的 ubuntu。
非常感謝任何幫助。
菲爾
答案1
在引導程式提示符號上一切看起來都很正常。所以我擔心檔案系統已損壞。
我建議採用以下流程:
- 建立一個新的虛擬機,並進行全新的 Ubuntu 安裝。
- 安裝該
etckeeper
包,然後運行etckeeper init
。這將置於/etc
版本控制之下。如果您在 Bazaar、Darcs、Git 和 Mercury 中最喜歡的版本控制工具,請在/etc/etckeeper/etckeeper.conf
運行之前選擇它etckeeper commit
。 - 您的變更
/etc
將在套件管理任務之前和之後自動提交,每天一次。您可以透過etckeeper commit
直接運行或呼叫底層版本控制工具來手動提交。 - 現在是嘗試儲存舊虛擬機器的時候了。關閉新虛擬機,然後將舊虛擬機的磁碟新增至新虛擬機並啟動新虛擬機。
- 嘗試安裝
/dev/sdb2
。如果系統提示您運行fsck
,請執行此操作。 - 從舊虛擬機器中恢復可以恢復的內容。
- 請記住在備份設定中包含 的儲存庫
/etc
以及您可能在VM 中/usr/local
執行的任何操作。/home
答案2
我有類似的東西 - Ubuntu 10.10 主機和 Ubuntu 10.10 來賓。
來賓 FS 已損壞並導致與上述相同的錯誤。
這是透過從 vdi 檔案安裝分割區並對其執行檔案檢查來解決的。
sudo vdfuse -g -f /media/ssdext4/UbuntuGuest.vdi /mnt/
現在您應該能夠使用“sudo ls -l /mnt/”列出 vdi 檔案中的分割區
現在運行 FS 檢查 - 使用完整路徑。 sudo fsck.ext4 /mnt/Partition1
我認為 vdfuse 應該是預設安裝的一部分。除非你有 vdfuse,否則我不知道該如何解決這些問題。
答案3
這不是最複雜的方法,但可能是最快的方法:將損壞的虛擬機器中的磁碟映像添加到新安裝的虛擬機器中,從那裡安裝它,複製$HOME、/etc 以及/var/{lib ,db, .. .}(或至少保留一份副本),您應該會在不到一小時的時間內恢復正常。
我猜想實際問題是由初始 ramdisk 無法正確發現和安裝虛擬磁碟設備引起的。因此,如果您以某種方式設法存取損壞的虛擬機器的檔案系統,您也可以嘗試以下操作:
mount /dev/sdbroken1 /mnt/brokendisk
for i in dev dev/pts proc sys; do
mount --bind /$i /mnt/brokendisk/$i
done
chroot /mnt/brokendisk
update-initramfs -u -k all # regenerate initial ramdisk - look for errors
^D
reboot
答案4
我也有完全一樣的問題;還包括 live iso 的奇怪行為。
事實證明,問題出在 grub 以某種方式搞砸了 - 可能是由於主機系統進入睡眠狀態 [我這麼說是因為 Christis Bergeles 在同一台主機 (mac osx) 上描述了與我相同的問題http://christos.bergeles.net/blog/files/tag-grub.html]
將有問題的虛擬 HD 連接到另一個正在運行的 ubuntu 虛擬機器。
啟動進入該虛擬機
(接下來的兩行假設該虛擬機器的問題磁碟位於 /dev/sdb)
須藤掛載 /dev/sdb1 /mnt
sudo grub-install --root-directory=/mnt/ /dev/sda
為我工作 - 在這個問題的兩個不同的實例上。
提姆.