
我已經克隆了一個虛擬機,現在在啟動它時我看到一條訊息:
Trying manual resume from /dev/sda1
Invoking userspace resume from /dev/sda1
resume: libgcrypt version: 1.5.0
Trying manual resume from /dev/sda1
invoking in-kernel resume from /dev/sda1
Waiting for device /dev/disk/by-id/ata-VBOX_HARDDISK_.....-part2 to appear: ...
Could not find /dev/disk/...-part2
Want me to fall back to /dev/disk/...-part2 (Y/n)
如果我按“Y”,它會嘗試再次啟動但失敗,然後退出到 /bin/sh。如果我按“n”,它會立即退出到/bin/sh。
我在這裡讀到了一個解決方案:http://diggerpage.blogspot.com/2011/11/cannot-boot-opensuse-12-after-cloning.html但我不明白如何存取磁碟上的文件進行編輯/etc/fstab
和/boot/grub/menu.lst
?
答案1
我能夠透過執行以下操作來啟動系統:
1) 記下系統找不到的設備。
2)對該問題回答「n」。它應該帶您進入命令提示字元。
3)運行此命令:cd /dev/disk/by-id
4)運行此命令:ls
5) 重新命名此資料夾中的所有文件,將目前名稱替換為您在步驟 1 中記下的裝置名稱。mv ata-VBOX_OLDNAME....-part2 ata-VBOX_HARDDISK....-part2
6) 完成此操作後,輸入以下命令:exit
7) 系統應該正常啟動。
我仍在研究 OpenSUSE 11.4 是如何發生這種情況的。
答案2
導致此問題的原因是 SUSE 預設將 Grub 配置為按名稱而不是按標籤或路徑查找磁碟。從裝置建立虛擬機器時,VirtualBox 會建立一個具有新名稱的新磁碟,然後 Grub 找不到啟動磁碟。我能夠解決這個問題永久經過:
將磁碟作為輔助磁碟機新增至另一台可以掛載檔案系統的電腦。我將我的安裝到/media/hd2。
編輯 /media/hd2/boot/grub/device.map 並將硬碟的依名稱路徑替換
/dev/disk/by-name/ata-VBOX....
為 by-path path/dev/disk/by-path/pci-0000:00:0d.0-scsi-0:0:0:0
。編輯 /media/hd2/boot/grub/menu.lst 並將按名稱路徑替換為按路徑路徑。對於我的,我最終將所有第 1 部分路徑替換為
/dev/disk/by-path/pci-0000:00:0d.0-scsi-0:0:0:0-part1
,將第 2 部分路徑替換為/dev/disk/by-path/pci-0000:00:0d.0-scsi-0:0:0:0-part2
。
我使用的路徑指定第一個硬碟。如果您想要從不同的硬碟(或不同的磁碟類型)啟動,您將需要弄清楚 SUSE 如何對應路徑。我發現 SUSE 將安裝第二個硬碟作為pci-0000:00:0d.0-scsi-1:0:0:0
.
在某些情況下,指定硬碟旁通可能並不理想,但它非常適合我想要的快速修復。
答案3
我遇到了這個錯誤,並透過在 etc/fstab 和 boot/grub/menu.lst 上將磁碟的舊 ID 替換為新 ID 來解決
- 在回退問題上點選「n」。
- 透過運行獲取新的id
hdparm -i /dev/sda
- 按照接受的解決方案中的說明重新命名所有磁碟並啟動您的來賓。
- 以 root 身分開啟終端,
vi etc/fstab
然後將舊 ID 替換為新 ID(無論它顯示在何處)。儲存並關閉。 vi boot/grub/menu.lst
並將舊 ID 替換為新 ID(無論它顯示在何處)。儲存並關閉。- 重啟。
接受的解決方案僅適用於一次性,而這是一種永久修復。希望能幫助你!
答案4
我透過混合其他解決方案解決了這個問題。
僅用於啟動我這樣做的系統:
- 當您收到報告的啟動錯誤訊息時,請記下啟動程序請求的分區 ID(例如 ID1)並輸入
n
cd /dev/disks
ls -l
查看磁碟和分割區的連結名稱中的目前 id(例如 ID2)在此處建立每個連結的副本,並使用上面所需的 id 重命名該副本:
mv ID2 ID1 mv ID2-part1 ID1-part1 ...
例如
mv scsi-12345676890abcdefgh0987654321 scsi-0987654321hgfedcba1234567890 mv scsi-12345676890abcdefgh0987654321-part1 scsi-0987654321hgfedcba1234567890-part1 ...
exit
系統將啟動。
現在您可以更改設定確保不會再遇到這個問題:
- 開啟終端機並輸入 root 會話
sudo su
vi /etc/fstab
- 將 id ( ) 對磁碟和分割區的每個引用替換為對(例如,...)
/dev/disks/by-id/...
的引用/dev/...
/dev/sda
/dev/sda1
vi /boot/grub/menu.lst
- 在此文件中執行相同操作