![複製使用緊湊型快閃磁碟機的 Ubuntu 22.04 實例似乎會導致出現空的 /boot/grub 目錄](https://rvso.com/image/1072912/%E8%A4%87%E8%A3%BD%E4%BD%BF%E7%94%A8%E7%B7%8A%E6%B9%8A%E5%9E%8B%E5%BF%AB%E9%96%83%E7%A3%81%E7%A2%9F%E6%A9%9F%E7%9A%84%20Ubuntu%2022.04%20%E5%AF%A6%E4%BE%8B%E4%BC%BC%E4%B9%8E%E6%9C%83%E5%B0%8E%E8%87%B4%E5%87%BA%E7%8F%BE%E7%A9%BA%E7%9A%84%20%2Fboot%2Fgrub%20%E7%9B%AE%E9%8C%84.png)
我們有一個運行良好的 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 上,克隆過程才會出現此問題。