linux修改grub
❶ linux啟動時顯示Grub命令行及修改
1、在啟動linux系統時,如果/boot/grub/grub.cfg文件損壞或者不存在時,啟動linux時,就會有Grub命令行的提示。
如下操作,將系統自帶的grub.cfg文件改名。
2、重新啟動系統後,發現和自己預想的一樣,沒有出現引導菜單。
3、在grub命令提示符下,可以使用一些命令載入內核和文件系統,設置根目錄的分區。
有的grub使用
linux
/boot/vmlinuz-xx
有的grub使用kernel
/boot/vmlinuz-xx,可自己輸入一個首字母,按TAB鍵查看,演示的grub支持的是linux命令
4、過一會出現下面的界面。
->
sudo
update-grub
->sudo
grub-install
/dev/sda
輸入這兩個命令後,新的grub.cfg就生成了,跟之前文件的一樣(前提是沒有對文件做任何更改)。
❷ Linux下不識別Grub2修改啟動項的方法
最近在搭建vps的時候發現有的商家沒有grub2命令,很是郁悶,不過後來發現通過centos6的方式可以改變啟動項
使用條件:
1. debian9/centos7 內核更新了,但是最後 grub2-mkconfig輸入以後提示not found command的情況
2.要更新grub2卻不識別命令的情況
上手方法:
1.查找grub.cfg位置定位
命令:whereis grub.conf
2.打開grub.conf:vim /etc/grub.conf
修改default=1 (0起)
3. ESC-> :wq 結束
4.重啟
❸ Linux修改grub菜單
【注】參考自 grub 官方手冊 。
每次開機時,大部分 Linux 發行版的 grub 菜單都是定位在首選項位置(即當前系統選項位置)。這就導致如果我們電腦安裝了多個系統,那麼每次開機進入其他系統都要重新選擇 grub 菜單選項。而我們一般都是一段時間固定使用一個系統,因此如果 grub 菜單能夠記住上一次的菜單選項,我們平常使用就不需要手動切換 grub 菜單選項(除非需要更換開機系統)。這樣可以讓我們免去每次開機都需要手動查看更改 grub 菜單選項,特別是 Winddows 系統,每次更新後基本都要重啟,每次都需要盯著重啟那一刻重新選擇進入 Windows 系統,不勝其煩。
修改 Linux 的 /etc/default/grub 文件,添加以下內容:
GRUB_DEFAULT 可取值為 選項 ID、選項名稱字元串以及 saved ,選項 ID 是從 0 開始計數的。
GRUB_SAVEDEFAULT 變數若設置為 true ,則會保留上一次的 grub 菜單選項,默認沒有設置該變數。
有些 Linux 發行版開機進入 grub 菜單後等待時間很短,因此每次都需要抓住 grub 菜單出來的那一刻手動按鍵終止 grub 菜單等待時間倒計時。有時甚至來不及修改 grub 菜單選項,就進入了默認的系統。
修改 Linux 的 /etc/default/grub 文件中的 GRUB_TIMEOUT 變數值,單位為秒:
GRUB_TIMEOUT 可取值為:
❹ 如何修改新內核linux下的grub配置
進入ubuntu的請看這里。本帖是根據論壇里相應的帖子整理的。很可能有漏掉不少帖子,請使用論壇的搜索功能。
下面將給出很多種方法來解決這個問題:
1.用livecd(推薦)
2,用安裝cd
3,使用grub4dos
4,使用grub軟盤
上面的每一種方法都涉及到grub,通常,並不需要你對grub有多少了解,只要認真地讀下面的帖子,參照這些帖子去做,就能解決問題,但是,如果你想不僅知其然,還要知其所以然,那你可以看一下grub入門
1,使用livecd(推薦)
使用任何你喜歡的linux livecd
取得root許可權並在終端下運行grub
代碼:
sudo -s -H
grub
然後,使用如下指令:
oneleaf 寫道:
代碼:
grub>root (hdX,Y)
grub>setup (hd0)
root 是 /boot 分區的地址,如果不知道可以在 root (hd0, 時按Tab鍵來補全。
如果按TAB鍵後你還拿不定主意,那麼下面一段也許對你有幫助:
一般/boot就裝在你的ubuntu系統所在的分區(如果你不知道ubuntu裝在哪兒,可以用cfdisk命令查看)要小心的是hda1相當於(hd0,n-1),例如
yonsan 寫道:
如果linux安裝根分區為hda5 則執行的是root (hd0,4) 而不是 root (hd0,5)
最後,用
代碼:
grub>quit
退出grub,重啟系統。
下面是一個例子,(在這個例子中一些步驟並不是必需的——可能這些步驟是否必需取決於你的livecd 能否自動掛載你的本地硬碟的分區)
yonsan 寫道:
假定ubuntu系統安裝在hda5, 文件系統為ext3格式
使用 livecd 啟動成功後運行終端:
代碼:
sudo -s -H
mkdir -p /mnt/hda5
mount -t ext3 /dev/hda5 /mnt/hda5
mount -t proc none /mnt/hda5/proc
chroot /mnt/hda5 /bin/bash
source /etc/profile
grub
2) 在grub命令行模式下輸入:
代碼:
root (hd0,4)
setup (hd0)
2,使用ubuntu安裝cd恢復
firehare 寫道:
1. 啟動系統到 Ubuntu 安裝CD
2. 沿著屏幕上的命令直到 (千萬不要超過這一步)
[!!] Fdisk disks
3. 按 'Ctrl + Alt + F2'
4. 按 'Enter' 進入終端
5.
~ # mkdir /ubuntu
~ # fdisk -l /dev/discs/disc0/disc
~ # mount <你的Ubuntu根設備所在位置> /ubuntu/
~ # chroot /ubuntu/
sh-2.05b#
6. 假設 /dev/hda1 是 /boot 分區的地址
7. sh-2.05b# grub
grub> root (hd0,0)
grub> setup (hd0)
grub> quit
或者,你可以按照新手指南的做法
1. 用 Ubuntu 安裝 CD 開機
2. 在 "boot:" 提示號出現時, 鍵入 "rescue" 當作開機參數
boot: rescue
3. 順著屏幕上的指示跟著作
4,例如 假設 /boot 磁碟分區位在 /dev/hda
代碼:
#grub-install /dev/hda
3.1使用grub4dos重新安裝grub
下載
oneleaf 寫道:
將 grldr 復制到 C:\,編輯C:\BOOT.INI,加入一行:
C:\GRLDR="GRUB"
再手工輸入啟動命令
例如:
root (hd0,0)
kernel /vmlinuz-2.6.10-5-686 root=/dev/hdb5 ro quiet splash
initrd /initrd.img-2.6.10-5-686
savedefault
boot
進入後,重新安裝grub就好了。
重新安裝grub:
例如 假設 /boot 磁碟分區位在 /dev/hda
代碼:
# grub-install /dev/hda
3.2用grub4dos代替grub來引導系統
yonsan 寫道:
(憑記憶寫的,如有不完善請指正)
如果你的系統現在正在使用grub引導方式,請在操作之前查看一下/boot/grub/menu.lst的內容,建議將/boot/grub/menu.lst拷貝一份以備用(將它拷到fat32分區中存放就可以)!
進入window環境下
1) 下載grub020p.zip並解壓到C盤根目錄下,打開C盤查看一下是否有以下文件
C:\boot (文件夾)
C:\ChangeLog.txt
C:\compile
C:\COPYING
C:\grldr
C:\grub4lin
C:\grub-0.95-patch1-startups
C:\grub-0.95-patch2-findroot
C:\grub-0.95-patch3-ntfs
C:\grub-0.95-patch4-emulation
C:\grub-0.95-patch5-splash
C:\grub-0.95-patch6-scdrom
C:\grub-0.95-patch7-bioscdrom
C:\grub.exe
C:\grub.pif
C:\README.txt
C:\robin.xpm.gz
C:\scratchpad.txt
2) 修改C:\boot\grub\menu.lst ,用你剛才從linux系統中拷貝的menu.lst覆蓋C:\boot\grub\menu.lst
3) 進入grub命令行方式 (出現grub引導菜單時按c鍵)
> root (hd0,0)
> setup (hd0)
4) 重啟計算機
使用DOS引導盤,找到grub文件.
修改grub.conf文件。其中
「default=n」(n是個數字)是grub引導菜單默認被選中的項,n從0開始,0表示第一項,1表示第二項,依此類推。
「timeout=x」(x是一個數)是超時時間,單位是妙。也就是引導菜單顯示後,如果x秒內用戶不進行選擇,那麼grub將啟動默認項。
「splashimage =xxxxxx」,這是引導菜單的背景圖,先不理他。
其它常用項我用下面的例子來說明:
title Red Hat 8.0
root (hd1,6)
kernel /boot/vmlinuz-2.4.18-14 ro root=/dev/hdb7
initrd /boot/initrd-2.4.18-14.img
其中"Red Hat 8.0"是在啟動菜單列表裡顯示的名字
root (hdx,y)用來指定你的boot分區位置,如果你沒有分boot分區(本例就沒分boot分區),那就指向根分區就行了,hdx是linux所在硬碟,hd0是第一塊硬碟,hd1是第二塊,依此類推。y是分區位置,從0開始,也就是等於分區號減一,比如你要指向的分區是hdx7,那麼y就是6,如果是hdx1,那y就是0。注意root後面要有一個空格。
kernel /boot/vmlinuz-2.4.18-14,其中"/boot/vmlinuz-2.4.18-14"是你要用的內核路徑,如果你編譯了心內核,把它改成你的新內核的路徑就行了。
ro就不用管,寫上不會有錯。
root=/dev/hdxx指定根分區,本例是hdb7,所以root=/dev/hdb7
initrd xxxxxxxxxxxxx這行不要也行,目前我還不清楚它是做什麼用的。
上面是linux的,下面是windows的
title windows 98
rootnoverify (hd0,0)
chainloader +1
title xxxxxxx不用解釋了,上面有解釋。
rootnoverify (hdx,y)用來指定windows所在分區,x,y跟上面一樣,注意rootnoverify後有空格。
chainloader +1照抄就行,注意空格。
❺ 如何修改新內核linux下的grub配置
sudo
gedit
/boot/grub/grub.cfg
gedit可以換成nano,vim等看你用什麼文本編輯器了。
grub.cfg是新版grub。以前版本的是menu.list(lst??)
❻ Linux Debian11如何修改Grub2的開機啟動順序
Windows和Linux雙系統,如何修改啟動順序。
1、進入/etc/grub.d目錄,將該目錄下的「30_os-prober」文件改名為「##_os-prober」。##的取值為06~09之間的數字。
2、執行sudo update-grub。
注意是加sudo否則找不到該命令
❼ Linux 修復grub開機引導(ubuntu)
問題 : 有時候Linux系統/boot分區損壞時,啟動Linux系統時直接進入字元介面的grub引導,並沒有進入到系統或者開機顯示 error:unknow filesystem提示
解決辦法:
Linux開機自動會進入到grub引導介面(如果沒進入到grub引導介面可以按C鍵進入)
第一步:找到系統對應的扇區及/boot/grub目錄
注意 :假設是硬碟介面類型sd,hd0對應是sda hd1對應是sdb
(hd0)≠(hd0)
(hd1,gpt2)=(hd1,2)
ls (hd1,gpt2) 查看(hd1,gpt2)扇區信息(盤符、空間等)
ls (hd1,gpt2)/ 查看(hd1,gpt2)扇區下的內容(文件、文本等)
如果列印每個扇區目錄信息,會出現兩種情況:
1、ls (hd1,gpt2)顯示Unknow filesystem提示說明這個扇區不是我們要找系統分區
2、ls (hd1,gpt2)顯示/boot /proc等系統目錄信息說明這個扇區是我們要找的系統分區
如果找到對應扇區的系統分區,可能會遇到兩種情況:
1、 A目錄下有/boot/grub
2、A目錄下有/boot,B目錄下有/grub (此時在第二步載入系統內核要使用 set prefix=(hd1,gpt2)/grub 命令)
grub > ls
(hd0), (hd1), (hd1, gpt1), (hd2,gpt2), (hd3, gpt3)
第二步:載入系統內核
grub > set root=hd1,2 #此處不需要括弧,加括弧也可以,hd0和hd1是有區別
grub > set prefix=(hd1,2)/boot/grub
grub > linux /vmlinuz root=/dev/sdb2 #vmlinuz必須使用TAB補全(可能有後綴),注意sda或sdb需要看自己的實際情況
grub > initrd /initrd.img-xxx #TAB補全,多內核情況下版本需統一
grub > boot
提示 :如果在boot之後不幸進入BusyBox,說明參數設置有問題,可以仔細查看出錯的日誌,再重啟系統後重復執行第二步操作(重啟系統後上面設置的參數會被清空)。
第三步:修改grub引導
如果成功進入系統,記得要馬上信息grub引導,不然重啟系統後問題還是存在
sudo update-grub2 #grub2命令(高版本使用grub2)
$ sudo grub-install /dev/sdb
第四步:重啟系統
重啟系統後即可正常進入系統
reboot