面分享了在Ubuntu(優麒麟)系統下通過復制ISO鏡像文件的方法安裝Phoenix OS(鳳凰操作系統)https://blog.csdn.net/qq_39837544/article/details/119037450,并通過修改grub.cfg引導文件來添加啟動項,但這只是臨時的辦法,在系統更新或其它情況下grub.cfg引導文件會恢復原貌,甚至丟失了Phoenix OS的菜單選項,今天我們就試試從根本上解決修改啟動引導文件的辦法。
grub.cfg是由/ect/default和 /etc/grub.d目錄下的諸多底層文件共同生成的,所以修改grub.cfg只是臨時辦法,要從修改這些底層文件才能解決根本問題。而要修改這些文件,就必須搞清其原理、關系,特別是任何一個錯誤都可能造成系統無法啟動,這對于我這個初次接觸Linux的小白來說太難了!
參考鏈接:https://forum.xda-developers.com/t/steps-for-remix-os-installation-alongside-ubuntu-16-04.3463014/
一、使用的軟件Grub Customizer
Grub Customizer是一款GRUB2和BURG的圖形化設置管理器。不必理會繁瑣復雜的配置文件,只需要直觀地點擊鼠標,就可以輕松為grub添加刪除啟動項,修改默認啟動項和等待時間,還可以設置文字顏色、背景圖片等。
二、Grub Customizer的安裝
終端中鍵入以下命令:
# sudo add-apt-repository ppa:danielrichter2007/grub-customizer
====執行后顯示如下:
sudo add-apt-repository ppa:danielrichter2007/grub-customizer
sudo apt-get update
sudo apt-get install grub-customizer
更多信息: https://launchpad.net/~danielrichter2007/+archive/ubuntu/grub-customizer
按 [ENTER] 繼續或 Ctrl-c 取消安裝。
====按[ENTER] 繼續,開始查找軟件包
正在讀取軟件包列表... 完成
E: 倉庫 “http://ppa.launchpad.net/danielrichter2007/grub-customizer/ubuntu focal Release” 沒有 Release 文件。
N: 無法安全地用該源進行更新,所以默認禁用該源。
N: 參見 apt-secure(8) 手冊以了解倉庫創建和用戶配置方面的細節。
====出現錯誤,可能是軟件源的問題,或者這個軟件包已被廢棄。
解決的辦法
打開Ubuntu下的“軟件和更新”的“其它軟件”選項卡
把與這個軟件源有關的地址前面的對鉤去掉
而后執行:
# sudo apt install grub-customizer
顯示
正在讀取軟件包列表... 完成
正在分析軟件包的依賴關系樹
正在讀取狀態信息... 完成
將會同時安裝下列軟件:
hwinfo libhd21 libx86emu2
下列【新】軟件包將被安裝:
grub-customizer hwinfo libhd21 libx86emu2
升級了 0 個軟件包,新安裝了 4 個軟件包,要卸載 0 個軟件包,有 5 個軟件包未被升級。
需要下載 1,477 kB 的歸檔。
解壓縮后會消耗 7,005 kB 的額外空間。
您希望繼續執行嗎? [Y/n]
輸入“y”繼續執行安裝,直到安裝完成
可以在【開始】菜單中點擊打開。或者在終端輸入:
# sudo grub-customizer
====運行grub-customizer,界面如下:
在這里可以看到各個啟動項,還可以設置啟動參數和外觀界面
三、修改系統引導文件
1、新建Phoenix OS啟動項
點擊菜單【編輯】—【新建】
彈出以下編輯界面:
在Name中輸入Phoenix OS 起一個你喜歡的名字;在類型中選擇“其它”
在下面輸入引導代碼:
set root=(hd0,3)
linux /kernel vga=889 root=/dev/sda3 androidboot.hardware=android_x86 androidboot.selinux=permissive quiet
DATA=/data SRC=/
initrd /initrd.img
這是上一篇在grub.cfg引導文件中添加啟動項的一段,直接復制過來,而后確定。
這時就可以在【列表配置】中看到Phoenix OS這個啟動項,用右鍵菜單中的【上移】【下移】調整啟動菜單順序。我這里放在了第二項。
2、修改啟動菜單顯示時間和默認啟動項
點擊【常規設置】,彈出以下界面:
第一行:GRUB DEFAULT
===默認的啟動項。“0”為第一項也就是Ubuntu,如果你想默認啟動Phoenix OS 就把值設為“1”
第二行:GRUB HIDDEN TIMEOUT
===引導菜單顯示時間,在這里可以設置成你想要的秒數,比如5秒。
第三行:GRUB HIDDEN TIMEOUT QUIET
===菜單顯示時間超時時啟動選擇光標所在的啟動項。
第四行:GRUB TIMEOUT STYLE
===數值為“hidden”,意思是菜單顯示計時以“hidden”為準,也就是第二行的數值
第五行:GRUB TIMEOUT
===設置菜單顯示時間,此項服從第四行,如果第四行設置了“hidden”,那就以第二行數值為準。所以要讓此項生效,就必須把第二行、第四行取消掉(去掉前面的對鉤),并把此項的值設為你想要的秒數。
設置完成。點擊【保存】,此時系統就會自動更新相關啟動引導文件,包括/ect/default和 /etc/grub.d目錄下的底層文件。
重啟電腦試試看吧!
我們有時候希望不同的任務場景在不同的操作系統環境下進行,需要在一個機器或者某個硬盤上安裝多個不同的操作系統。
Grub2是一個多系統引導軟件,現在大多數Linux默認的系統引導軟件就是Grub2,可在Index of /gnu/grub(https://ftp.gnu.org/gnu/grub/)下載最新版的grub2,目前最新版的是grub-2.06-for-windows.zip,壓縮包大小是12M。安裝前先下載并解壓到c:盤中。
硬盤分區直接使用windows自帶的diskpart完成,不使用第三方的分區軟件。安裝的多個Windows的啟動是通過Windows的引導器引導,即把各分區的Windows統一一個入口,不改變\efi\microsoft\boot\的位置和名稱。Grub啟動后,直接使用鏈式引導,將控制交給Windows的引導器。好處是可以關機正常。
一、硬盤分區
2T的硬盤,選擇GPT硬盤格式,分區表類型為GUID,包含一個ESP和MSR保留分區,其中ESP分區大小為800M,盤符為B:。
做一個自動批處理文件Disk2t.txt,用 diskpart /s .\disk2t.txt來自動執行。
注意運行前要用diskpart檢查一下,要分區的硬盤是不是disk 1!!!還有檢查一下盤符b和D到L是不是空著。
Disk2t.txt的內容如下:
REM 運行這個批處理文件前一定要用diskpart的list disk檢查一下是不是disk 1!!!!
List disk
Select disk 1
List partition
Clean
Select disk 1
Convert gpt
REM 建esp分區的同時會建一個15mb的保留分區,所以esp分區是分區2
Create partition efi size=800
format fs=fat32 label=”esp” quick
assign letter=b
create partition primary size=102400
assign letter=d
format fs=ntfs label=”oos01″ quick
create partition primary size=102400
assign letter=e
format fs=ntfs label=”oos02″ quick
create partition primary size=102400
assign letter=f
format fs=ntfs label=”oos03″ quick
create partition primary size=102400
assign letter=g
format fs=ntfs label=”oos04″ quick
create partition primary size=102400
assign letter=h
format fs=ntfs label=”oos05″ quick
create partition primary size=102400
assign letter=i
format fs=ntfs label=”oos06″ quick
create partition primary size=102400
assign letter=j
format fs=ntfs label=”oos07″ quick
create partition primary size=500000
assign letter=k
format fs=ntfs label=”dda01″ quick
create partition primary size=500000
assign letter=l
format fs=exfat label=”dda02″ quick
List part
exit
分區后還有185GB的空間沒有分區。
另外再建兩個diskpart的批處理文件,addB.txt和removeB.txt方便添加和移除esp盤符b:。
二、安裝grub2
在esp分區中,有grub和efi子目錄,grub的目錄里面有grub的模塊、字體、主題等文件,grub.cfg配置文件也放在這個目錄下;efi的目錄里存放各種操作系統的引導文件,Boot下放grub的啟動文件bootx64.efi,還有Windows管理器生成的\efi\microsoft\boot\下的Windows啟動文件bootmgfw.efi。Windows安裝時會把bootx64.efi替換成bootmgfw.efi的內容。
list disk
sele disk 1
sele part 2
assign letter=b
exit
2、cd到grub-2.06-for-windows的安裝目錄中,用命令wmic diskdrive list brief檢查一下要安裝的磁盤是不是\.\PHYSICALDRIVE1。
3、然后運行grub-install.exe –target=x86_64-efi –efi-directory=b: –boot-directory=b: \.\PHYSICALDRIVE1 –removable,在 EFI 下會生成 boot 目錄,目錄下有一個文件bootx64.efi。
4、將配置好的grub啟動配置文件grubok.cfg拷貝到b:\grub中。copy .\grubok.cfg b:\grub\grub.cfg
5、用diskpart /s .\removeB.txt刪除esp的盤符b:。
list disk
sele disk 1
sele part 2
remove letter=b
exit
三、安裝Windows
Windows10,在微軟官網下載制作創建安裝介質(USB 閃存驅動器或 DVD、ISO文件)工具MediaCreationTool21H2.exe。打開后創建一個iso文件。將ISO文件掛載成光驅X,找到里面的文件source\install.esd或source\install.wim。
Windows11,在官網可以直接下載ios鏡像文件,選擇Windows11(multi-edition ISO),找到里面的文件source\install.esd或source\install.wim。
DISM.exe /Get-ImageInfo /ImageFile:X:\sources\install.esd,看一下要安裝的版本序號。
3、管理員權限cmd,運行DISM.exe /Apply-Image /ImageFile:X:\sources\install.esd /Index:4 /ApplyDir:D:將X:\sources\install.esd解壓到要存放操作系統的oos分區D盤里。做了一個批處理文件addiso.bat。一次可以將windows10和windows11加載到d:-h:的5個盤中。
rem add windows10 and windows11 iso file to d:-h: 5 diskpart
rem first should put windows10 iso to cd-rom M:,put windows11 iso to cd-rom N:
rem d:\e:\i: is windows10, f:\h: is windows11
DISM.exe /Apply-Image /ImageFile:M:\sources\install.esd /Index:4 /ApplyDir:d:
DISM.exe /Apply-Image /ImageFile:M:\sources\install.esd /Index:4 /ApplyDir:e:
DISM.exe /Apply-Image /ImageFile:N:\sources\install.esd /Index:4 /ApplyDir:f:
DISM.exe /Apply-Image /ImageFile:N:\sources\install.esd /Index:4 /ApplyDir:g:
DISM.exe /Apply-Image /ImageFile:M:\sources\install.esd /Index:4 /ApplyDir:h:
4、運行diskpart /s .\addb.txt,給esp添加盤符b:。再運行bcdboot.exe D:\Windows /s B:。在B:盤中生成Windows的UEFI引導文件Bootmgfw.efi,告訴電腦真正的系統在D:\Windows里面,還會修改d:盤bcd文件,保存相應的信息。最后運行diskpart /s .\removeb.txt,給esp移去盤符b:。做了一個批處理文件addbcd.bat來完成這些工作。
rem add d:/e:/f:/g:/h: bcd to esp b:
diskpart /s .\addb.txt
bcdboot.exe D:\Windows /s B:
bcdboot.exe E:\Windows /s B:
bcdboot.exe F:\Windows /s B:
bcdboot.exe G:\Windows /s B:
bcdboot.exe H:\Windows /s B:
diskpart /s .\removeb.txt
5、參照上述操作安裝其他的Windows系統。
四、安裝Linux等其他系統(待續)