一、適用場景:
1、電腦是多系統的,windows 、liunx 混合
2、需要靈活的遠程控制重啓系統後的自動進入系統項
本次用到的是liunx下的grub工具
二、發生原因:
當windows上安裝 liunx雙系統後,會要求寫入grub引導,不寫入會導致liunx無法進入,當然在windows系統上有工具可以修復,我這裏是寫入grub的,會導致windows無法進入。並且我需要遠程控制系統重啓後進入何種系統。
三、解決目標
1、在liunx下修復windows系統引導
進入liunx後 運行
sudo vi /boot/grub/grub.cfg
找到最底下
### BEGIN /etc/grub.d/41_custom ###
##加入代碼start
menuentry 'windows 10'{
insmod part_msdos
insmod ntfs
set root='(hd0,msdos1)'
chainloader +1
}
##加入代碼end
if [ -f ${config_directory}/custom.cfg ]; then
source ${config_directory}/custom.cfg
elif [ -z "${config_directory}" -a -f $prefix/custom.cfg ]; then
source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###
解釋:
menuentry ‘windows 10’ 這裏的’windows 10’就是開機選項顯示的文字,可以隨意定義
set root=’(hd0,msdos1)’ 表示系統引導的磁盤 hd0代表第一塊磁盤的第一個分區
完成後記得重啓系統後就能發現開啓選項最底下多了你輸入的 windows 10 選擇回車即可以進入windows10系統了
2、靈活遠程控制啓動的系統
這一過程就是在啓動項手動選擇按回車的過程變成自動的。
附上一個腳本
#!/usr/bin/env bash
# !/bin/sh
set -m
function grubwin10() {
grub-reboot 3
echo "ok -win10"
}
function grububuntu() {
grub-reboot 0
echo "ok -ubuntu"
}
case $1 in
w)
grubwin10
;;
u)
grububuntu
;;
*)
echo "Usage: $0 {win10 w | ubuntu u}"
esac
解釋:
grub-reboot 3 表示重啓系統後選擇第4個啓動項(0表示第一個),後面的這個數字根據當前grub引導的啓動界面調整即可。
注意:如果設置了 grub-reboot 3 那麼當系統重啓後會自動進入windows10,這時候你需要windows下的遠程桌面控制軟件進行windows下的操作,同樣你可以重啓windows系統,這時候下次進入的系統就會還原成liunx,也就是說 grub-reboot 3 是一次性的。