双启动脚本

双启动脚本

我在 ubuntu 服务器中运行文件服务器,与 windows 7 双启动,现在我想要一个可以在午夜重启服务器并启动 windows 7 的脚本,我已经在 windows 7 中放了一些自定义脚本,这样它可以在晚上从 windows 7 执行,早上当我启动服务器时,它会自动从 ubuntu 服务器启动

请指导我通过脚本执行它

提前致谢。

答案1

这是一个您应该能够使用的解决方案。它并不完美,需要一些工作,并且可能因您使用的 Ubuntu 版本而异。我使用 16.04 想出了这个。我还测试了它以启动到不同的内核,因为我没有在此框上安装 Windows。由于您有双启动,我必须假设您已经有一个显示的 grub 菜单,并且希望主菜单中有一个 Windows 条目,而不是子菜单中的条目,因为我稍后会介绍。

首先你需要编辑你的/etc/default/grub文件

查找条目,GRUB_DEFAULT="#"它可能是 0。将其更改为GRUB_DEFAULT="saved"在其下添加一行,内容为GRUB_SAVEDEFAULT="true"

它看起来应该像这样:

GRUB_DEFAULT="saved"
GRUB_SAVEDEFAULT="true"
...and so on...

保存文件并在终端运行sudo update-grub

现在到了我猜测的部分。当你启动计算机时,它出现在 GRUB 菜单上...在我用来测试的 VM 框上,它显示以下条目

Ubuntu
Advanced options for Ubuntu
Memory test (memtest86+)
Memory test (memtest86+,serial console)
Test1

我必须创建Test1 entry才能使其工作,但我感觉你Windows entry在这个列表中的某个地方有一个,但我不知道它在哪里。你需要计算该菜单项在列表中的位置。例如,如果你的菜单项Windows entry位于我的菜单项所在的位置Test1 entry,那么它将位于位置 4(Ubuntu 位于位置 0 而不是 1)

现在我们需要创建一个文件..我将startwin在此示例中使用startwin您最喜欢的编辑器打开它并输入以下内容:

#!/bin/bash
grub-reboot 4 
reboot now

(当然 4 是你确定的位置的数字Windows entry)保存文件并打开终端。切换到所在startwin的目录并确保其设置为可执行。

sudo chmod +x startwin

现在您可以尝试一下了。打开终端,切换到文件所在的目录,然后输入“sudo ./startwin当然,保存所有工作”并关闭所有打开的内容,因为这将重新启动计算机。它应该在 Windows 中启动,当您告诉 Windows 重新启动时,它应该再次返回到 Ubuntu。

如果它有效,您所要做的就是设置一个 cron 作业,让它在午夜运行。

编辑/etc/crontab在底部添加条目

00 00 * * * root path/to/startwin/startwin

并创建一个 Windows 任务,当您希望它切换回 Ubuntu(例如早上 7 点)时重新启动。

现在,早上 7 点您的 Windows 任务将自动重新启动到 Ubuntu,午夜您的 Ubuntu 脚本将自动重新启动到 Windows。

相关内容