1. 程式人生 > >啟動項詳解和更改deepin啟動核心的方法

啟動項詳解和更改deepin啟動核心的方法

內容來自網上查詢和總結以及自己的嘗試

boot裡面的啟動項是根據其它檔案生成的,如果改boot裡面,會在你更新grub後再次回到原來的狀態。(之後 我(有顯示卡驅動問題的使用者)通過在開機時選擇系統頁面按e在倒數第二行ro quiet splash 後面加上acpi_osi=! acpi_osi="Windows 2009"可以從最新核心進入系統。在/etc/default/grub 檔案裡面相同位置也加上這一句後會讓系統不能自己更新grub,之後你就可以在boot/grub裡面直接更改啟動項內容而不必擔心繫統回滾)
更改啟動項主要從兩個資料夾改:/etc/default/grub和/etc/grub.d,下面解釋一下這兩個資料夾的內容。.
1./etc/default/grub:

GRUB_BACKGROUND="/boot/grub/themes/deepin/background.png"       #背景圖片的路徑
GRUB_CMDLINE_LINUX_DEFAULT="splash quiet"       #開機的開機動畫(貌似是,需要載入顯示卡)有顯示卡驅動問題的可以在後面加上 nomodeset(此選項只會追加在一般模式後)
GRUB_DEFAULT=0                        #預設啟動項,這個值為0就是預設啟動第一個,為1預設啟動第二個
GRUB_DISABLE_RECOVERY="true"   #禁止顯示救援模式(這個不太懂)
GRUB_DISTRIBUTOR="`/usr/bin/lsb_release -d -s 2>/dev/null || echo Deepin`" #獲得發行版本(此行將追加到所有的linux 定義核心行的後面,不論是救援模式還是一般模式)
GRUB_GFXMODE="1920x1080"     #啟動的解析度
GRUB_THEME="/boot/grub/themes/deepin/theme.txt"  #啟動的主題,是各種圖片和各種顯示的字型
GRUB_TIMEOUT=5     #等待時間,5秒未操作直接進入預設系統。改為-1是一直等待。

2./etc/grub.d:

00_header                         # 配置初始的顯示專案,如預設選項,時間限制等,一般由/etc/default/grub匯入,一般不需要配置
05_debian_theme        #  配置引導畫面,文字顏色等主題
10_linux                            #定位當前作業系統使用中的root裝置核心的位置,包含deepin 啟動項和advanced裡面的啟動項
15_linux_bar                  # 救援模式的啟動項
20_linux_xen                 # 虛擬機器監視器的東西,(暫時不知有什麼用
30_uefi-firmware       # “system setup” 的啟動項
35_os-prober               #   windows的啟動項一般在這個裡面
40_custom                   # 用來加入使用者自定義的啟動項,將會在執行update-grub時更新至grub.cfg中
41_custom                  # 判斷custom.cfg此配置檔案是否存在,如果存在就載入它
前面的數字是對檔案排列執行的順序進行排序,可進行更改,比如你想把windows啟動項調到第一個,就把35_os-prober前面那個數字改成5到10的數字,比如06、07、08、09.

3.想更改deepin系統的啟動核心(有這個需求是不少人在新核心上有顯示卡驅動問題,而從advanced裡面進不能預設進入)
(deepin預設的應該是最新的啟動核心,你在boot/grub/grub.cfg裡面更改的話只要一更新grub就會回到原來的核心)因此是要改10_linux檔案的,但是裡面是彙編命令看不懂,
這時40_custom 提供了一個在啟動頁面加一個新的啟動項的簡單方法,具體操作如下:

1.開啟boot/grub/grub.cfg,找到你預設的啟動項(或者你想要改到外面的advanced裡面的啟動項)(這些啟動項都在10_linux裡面),大概如下:
menuentry 'Deepin 15.6 GNU/Linux(名字在這裡改)' --class deepin --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-6873bab1-cdf1-4931-8717-d2258cb3ad87' 
        load_video
        insmod gzio
        if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
        insmod part_gpt
        insmod ext2
        set root='hd0,gpt4'
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt4 --hint-efi=hd0,gpt4 --hint-baremetal=ahci0,gpt4  6873bab1-cdf1-4931-8717-d2258cb3ad87
        else
          search --no-floppy --fs-uuid --set=root 6873bab1-cdf1-4931-8717-d2258cb3ad87
        fi
        linux        /boot/vmlinuz-4.15.0-21deepin-generic root=UUID=6873bab1-cdf1-4931-8717-d2258cb3ad87 ro  splash quiet
        initrd        /boot/initrd.img-4.15.0-21deepin-generic
}
2.複製貼上到40_custom那三行字下面(需要以管理員身份開啟)
3.然後把名字改一下(為了避免重複嘛,你要是在advanced裡面複製的就不用改了),最後兩行是啟動核心,改一下(當然,你要是複製的advanced裡面你想改的核心啟動項就直接貼上就行了)
4.儲存 之後sudo update-grub就可以了。之後再根據你的需要改順序和預設啟動項就行。