我們有一個運行良好的 Ubuntu 22.04 設定。當我們克隆緊湊型閃存驅動器並將其放入相同的系統時,它無法啟動並顯示file '/grub/i386-pc/normal.mod' not found
錯誤訊息。我們一直在使用 grub 恢復來嘗試查看原因,結果顯示(但我們可能使用了錯誤的 grub 恢復,因為我們是新手)/boot/grub
儘管進行了經過驗證的克隆,但目錄還是空的。
工作系統上df-h
顯示如下:
Filesystem Size Used Avail Use% Mounted on
tmpfs 377M 1.4M 376M 1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv 5.6G 4.7G 644M 88% /
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
/dev/sda2 1.7G 247M 1.4G 16% /boot
tmpfs 16M 16K 16M 1% /opt/intellair/db
tmpfs 377M 4.0K 377M 1% /run/user/1000
在不可啟動系統上使用 grub 恢復,該ls
指令給出以下結果:
(hd0) (hd0,gpt3) (hd0,gpt2) (hd0,gpt1)
集給出:
cmdpath=(hd0)
prefix=(hd0,gpt2)/grub
root=hd0,gpt2
如果我們嘗試ls
任何其他驅動器,我們會得到Filesystem is unknown
,但 gpt2 (對應於/dev/sda2
)可以工作,如果我們運行ls /
我們得到
config-5.15.0-52-generic
lost+found
System.map-5.15.0-52-generic
grub/
initrd.img
vmlinuz
initrd.img-5.15.0-52-generic
vmlinuz-5.15.0-52-generic
initrd.img.old
vmlinuz.old
重要的是,當我們發出命令時,ls /grub
它運行正常,但沒有返回任何內容。我們認為這意味著 grub 資料夾是空的。這也可以透過無法載入我們期望位於 grub 資料夾中的任何模組(例如 linux、核心、普通模組等)來實現。
兩個具體問題:
在 grub 復原中,
/grub
包含檔案的目錄是否應該ls /grub
列出它們?假設
/grub
確實是空的,以前有其他人遇到過這個問題嗎?這幾乎就像緊湊型閃存驅動器的克隆專門省略了 grub 目錄的內容?
值得注意的是,這個過程在舊的 Ubuntu 18.04 設定上對我們來說運作良好。僅在較新的 Ubuntu 22.04 上,克隆過程才會出現此問題。