類(lèi)似網(wǎng)站的建設(shè)無(wú)錫百度正規(guī)推廣
1. 問(wèn)題背景
自己的臺(tái)式機(jī)上裝了好幾塊硬盤(pán),因?yàn)樽约河植擞窒矚g折騰,幾乎每塊上都有一個(gè)操作系統(tǒng),其中兩個(gè) m.2 的硬盤(pán)上分別裝著一個(gè) windows11 和一個(gè) Ubuntu20.04。但在另外一塊機(jī)械硬盤(pán)中還裝著更早的一個(gè) Ubuntu18.04,我電腦的啟動(dòng)引導(dǎo)也是這個(gè)系統(tǒng)的。
多個(gè)硬盤(pán)多個(gè)系統(tǒng),導(dǎo)致了一個(gè)長(zhǎng)期困擾著我的問(wèn)題,我無(wú)法在 Ubuntu18.04 的啟動(dòng)引導(dǎo)中找到我的 Ubuntu20.04,而如果把啟動(dòng)盤(pán)設(shè)置為 Ubuntu20.04,它的啟動(dòng)引導(dǎo)中又無(wú)法找到我的 windows11。形成了一個(gè)奇妙的三角戀。
在終端中執(zhí)行網(wǎng)上通常搜索出來(lái)的 update-grub2
根本沒(méi)用,找不到就是找不到。今天又一次突發(fā)奇想,希望不依靠自動(dòng)尋找,而是通過(guò)手動(dòng)編輯 grub 的配置文件的方式來(lái)找到另一個(gè)系統(tǒng)。換了幾個(gè)關(guān)鍵詞搜索之后,終于成功了,記錄一下過(guò)程。
2. 解決方案
grub 的 配置文件在 /boot/grub/grub.cfg
,我本來(lái)想直接編輯這個(gè)文件,但發(fā)現(xiàn)它是自動(dòng)生成的只讀文件。雖然是可以暴力地 chmod
已達(dá)到修改它的目的,但是下一次執(zhí)行 update-grub2
的時(shí)候就會(huì)把你手動(dòng)的修改覆蓋掉,非常不優(yōu)雅。
/boot/grub/grub.cfg
雖然不建議修改,但是它指出了一條手動(dòng)修改 grub 的路,那就是去 /etc/grub.d/
路徑下修改其中的腳本,在執(zhí)行 update-grub2
的時(shí)候,grub 會(huì)根據(jù)這個(gè)路徑下的腳本自動(dòng)生成前面說(shuō)的 cfg
配置文件。
于是我保存了一份 Ubuntu20.04 系統(tǒng)中的 /boot/grub/grub.cfg
到網(wǎng)盤(pán),然后就重啟進(jìn)入了 Ubuntu18.04。
可以看到這個(gè)路徑下的文件其實(shí)是有前綴的,00_,10_ 等,這個(gè)代表了執(zhí)行順序。/etc/grub.d/40_custom
這個(gè)文件是 grub 自帶的模板文件,可以直接在這個(gè)腳本中添加我們希望添加的啟動(dòng)項(xiàng)。
從網(wǎng)盤(pán)中的 Ubuntu20.04 系統(tǒng)的 /boot/grub/grub.cfg
中搜索我要的 “Ubuntu20.04” 關(guān)鍵字,可以找到 menuentry
開(kāi)頭的、大括號(hào)包裹著的一段代碼,直接復(fù)制粘貼到 /etc/grub.d/40_custom
中,保存退出。然后執(zhí)行一下 update-grub2
。
重啟,就可以看到我的 Ubuntu20.04 出現(xiàn)在了我的啟動(dòng)項(xiàng)中,完美!