一、适用场景:
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 是一次性的。