我的電腦上裝有fedora和windows兩個系統。一般裝系統的時候windows先裝而linxu後裝,因為linux能夠查找windows系統并為其提供啟動引導,而windows不能。是以當需要重裝windows的時候需要修複grub2引導。
工具
fedora的livecd,即安裝fedora時使用的安裝U盤
步驟
調整bios啟動順序,進入livecd
挂載硬碟
- 使用
查找/boot分區所在硬碟,比如我的是/dev/sda8。(在此之前需要運作fdisk -l
指令)su
- 挂載根分區
mount /dev/mapper/fedora-root /mnt
- 挂載/boot分區
mount /dev/sda8 /mnt/boot
- 挂載/dev分區
mount --bind /dev /mnt/dev
修改根目錄
chroot /mnt
修複grub2
-
grub2-install /dev/sda
-
grub2-install /dev/sda --recheck
更新引導項
grub2-mkconfig -o /boot/grub2/grub.cfg
若不執行更新引導項,則啟動的時候會顯示過去存在的作業系統(此時并不會顯示新的作業系統)
進入fedora後,再次執行
grub2-mkconfig -o /boot/grub2/grub.cfg
,則引導項修複正常。
更改預設引導項
可以通過在
/boot/grub2/grub.cfg
添加
set default=X
(X為數字)來更改預設引導項。X從0開始,例如windows在引導菜單的第4行,則可以設定
set default=3
但是,這樣的修改方法是不推薦的。因為每次執行
grub2-mkconfig -o /boot/grub2/grub.cfg
都會更新
grub.cfg
這個檔案。正确的方法是執行
grub2-set-default <标題或名稱>
。其中,<标題或名稱>用指令
grep menuentry /boot/grub2/grub.cfg
找到,即menuentry後引号内的内容。