如何在双启动中在 Ubuntu 16 和 Windows 10 之间创建快捷方式?

如何在双启动中在 Ubuntu 16 和 Windows 10 之间创建快捷方式?

我正在寻找一个一键快捷方式来注销、重启并在相反的操作系统中启动。我在网上找到的唯一信息是在 Windows 和 Windows 之间,我不确定它是否不同。

答案1

笔记:这个答案还在进行中。

可以这样做。我不确定你正在运行什么桌面环境,但步骤应该相对接近。这些步骤将创建一个可以从命令行运行的脚本,以及一个可以通过单击启动的桌面启动器。无论哪种方式,最好让它在重新启动之前要求输入密码。

首先要创建一个脚本,其中包含基于我的另一个答案在这里使用grub-reboot它来设置 GRUB 的默认启动项,仅用于下次启动。这样做的原因是不需要编辑该/etc/default/grub文件或/boot/grub/grub.cfg文件。

我调用了我的脚本win_reboot.bsh,但在将内容添加到脚本之前,运行sudo os-prober以获取更精确的 Windows 10 名称,以防万一有多个条目可以在具有恢复功能的 OEM 系统中找到,等等。

我不使用 GPT 也不在 OEM 系统上运行,所以我只有一个条目。

$ sudo os-prober
/dev/sdh1:Windows 10 (loader):Windows:chain

记下冒号之间的 Windows 名称:。我们将使用Windows 10 (loader)awk实际上,像 这样的特殊字符会出现问题,()/因此我们必须对像 这样的字符进行转义\。我们将使用此行,因为如果在写入新文件之前运行的Windows 10 \(loader\)中有多个条目,它将更加精确。os-probergrub-update/boot/grub/grub.cfg

为此,我们还将使用pkexec已经安装的命令。 gksu 已弃用

脚本内容:

#!/bin/bash

if [ ${UID} != 0 ]; then
    echo "Please run as 'sudo $0'"
    exit 1
fi

grub-reboot "$(awk -F"'" '/Windows 10 \(loader\)/ {print $2}' /boot/grub/grub.cfg)"
reboot

如果命令中仅有 1 个 Windows 条目,os-prober则可以将该grub-reboot行设置为:

grub-reboot "$(awk -F"'" '/Windows/ {print $2}' /boot/grub/grub.cfg)"

该脚本将搜索grub.cfg文件并获取引导的完整名称Windows 10 (loader)。我编写了一行来处理将来grub-update执行的更改并更改该行的名称。这样做的原因是,如果您在系统中添加硬盘驱动器或在启动期间无法启动的 USB 驱动器,则驱动器名称可能会更改。您可能会看到一行内容类似于,Windows 10 (loader) (on /dev/sdh1)然后在另一行上grub-update它更改为Windows 10 (loader) (on /dev/sdg1)。这些条目实际上依赖于分区的而不是 grub 条目中的名称,这是件好事UUID

接下来,使脚本可执行:

sudo chmod +x win_reboot.bsh

现在如果你从命令行运行它,sudo它应该看起来像这样:

$ ./win_reboot.bsh 
Please run as 'sudo ./win_reboot.bsh'

为新脚本创建一个快捷方式。我希望当您右键单击桌面时,这Create Launcher是其中一个选项。我正在Xfce4以桌面运行。我想您可以根据评论由 Andrew Shum 发布只要它指向 win_reboot.bsh 脚本,它就仍然可以工作。

编辑:根据我收到的下面评论,我在这里更改了启动器。 sudo -H除非您已将选项设置为在终端中运行,否则它不起作用。 这里还要注意的一点是,此启动器正在调用 CLI 脚本而不是 GUI 应用程序。

~/Desktop您可以在文件夹中创建一个名为的文件Boot to Windows 10.desktop,并向其中添加以下内容:

[Desktop Entry]
Version=1.0
Type=Application
Name=Boot to Windows 10
Comment=Reboot System to Windows 10
Exec=pkexec /home/terrance/scripts/win_reboot.bsh
Icon=web-microsoft
Path=
Terminal=false
StartupNotify=false

请记住更改该Exec=行以匹配您的文件位置。

在此处输入图片描述

然后,当您启动快捷方式时,您将看到类似于以超级用户身份输入密码的内容:

在此处输入图片描述

希望这可以帮助!

相关内容