You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在GRUB2启动阶段自动执行Wake On Lan命令实现多设备唤醒

如何在GRUB2启动阶段自动执行Wake On Lan命令实现多设备唤醒

没问题,这个需求完全可以实现!咱们不用在你的Windows主PC上装Ubuntu,只需要用Ubuntu Live USB来配置独立的GRUB2引导分区,就能实现启动时的WOL自动化,还能做两个选项:唤醒其他设备/不唤醒。下面是详细步骤:

一、准备工作

  1. 制作一个Ubuntu Live USB启动盘(随便哪个新版本都可以,比如22.04 LTS),插到你的TACENS10上,从它启动进入试用Ubuntu模式。
  2. 提前记好另外两台设备的MAC地址(FREEBNT和XAUDIOSERVER),格式比如AA:BB:CC:DD:EE:FF。

二、根据你的启动模式(UEFI/BIOS)安装GRUB2

情况1:你的TACENS10是UEFI启动(绝大多数新PC都是)

Windows 10已经自带一个EFI系统分区(ESP,通常是FAT32格式,100MB左右),咱们直接用这个分区来装GRUB:

  1. 打开终端,先找到ESP分区:输入lsblk,找类型为vfat、大小100MB左右的分区,比如/dev/sda1。
  2. 挂载ESP分区:
    sudo mount /dev/sda1 /mnt
    
  3. 安装GRUB到ESP,同时设置GRUB为默认引导项:
    sudo grub-install --efi-directory=/mnt --bootloader-id=GRUB /dev/sda
    
    (注意这里/dev/sda是你的硬盘设备名,不是分区号,别写错!)
  4. 生成基础的GRUB配置文件:
    sudo grub-mkconfig -o /mnt/grub/grub.cfg
    

情况2:你的TACENS10是BIOS/MBR启动

需要创建一个小的GRUB引导分区:

  1. 打开磁盘工具(Disks),在你的Windows硬盘上划分一个512MB的FAT32分区(不用格式化也可以,之后终端里格式化)。
  2. 终端里格式化这个分区(假设分区是/dev/sda3):
    sudo mkfs.fat -F32 /dev/sda3
    
  3. 挂载这个分区:
    sudo mount /dev/sda3 /mnt
    
  4. 安装GRUB到硬盘:
    sudo grub-install --root-directory=/mnt /dev/sda
    
  5. 生成基础配置文件:
    sudo grub-mkconfig -o /mnt/boot/grub/grub.cfg
    

三、编辑GRUB配置,添加带WOL的启动选项

现在咱们要修改GRUB的配置文件,添加两个Windows启动条目:一个自动唤醒设备,一个直接启动。

  1. 打开配置文件(UEFI和BIOS的路径略有不同):
    • UEFI:sudo nano /mnt/grub/grub.cfg
    • BIOS:sudo nano /mnt/boot/grub/grub.cfg
  2. 先找到原来的Windows启动条目(类似下面这样):
    menuentry 'Windows Boot Manager (on /dev/sda2)' --class windows --class os $menuentry_id_option 'osprober-efi-XXXX-XXXX' {
        insmod part_gpt
        insmod fat
        set root='hd0,gpt1'
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt1 --hint-efi=hd0,gpt1 --hint-baremetal=ahci0,gpt1 XXXX-XXXX
        else
          search --no-floppy --fs-uuid --set=root XXXX-XXXX
        fi
        chainloader /EFI/Microsoft/Boot/bootmgfw.efi
    }
    
  3. 复制这个条目,粘贴两次,然后修改成下面两个自定义条目:

条目1:自动唤醒其他设备的Windows启动项

menuentry "Windows 10 - 自动唤醒NAS&音频服务器" {
    # 加载网络模块(UEFI用efinet,BIOS用net)
    insmod net
    insmod efinet
    insmod dhcp
    # 自动获取IP地址(确保GRUB能连上网发送WOL包)
    dhcp --client-id=mac
    # 发送WOL魔术包到两台设备,替换成你的MAC地址
    wakeonlan AA:BB:CC:DD:EE:FF  # FREEBNT的MAC
    wakeonlan GG:HH:II:JJ:KK:LL  # XAUDIOSERVER的MAC
    # 下面是原Windows引导的内容,直接复制你之前找到的条目里的对应部分
    insmod part_gpt
    insmod fat
    set root='hd0,gpt1'
    search --no-floppy --fs-uuid --set=root XXXX-XXXX
    chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}

条目2:不唤醒设备的Windows启动项

menuentry "Windows 10 - 仅启动本机" {
    # 直接引导Windows,内容和原条目一致
    insmod part_gpt
    insmod fat
    set root='hd0,gpt1'
    search --no-floppy --fs-uuid --set=root XXXX-XXXX
    chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}
  1. 保存退出(nano里按Ctrl+O,回车,再按Ctrl+X)。

四、测试验证

  1. 重启TACENS10,现在会进入GRUB菜单,你能看到刚才添加的两个选项。
  2. 先选“自动唤醒”选项,看看另外两台设备能不能正常开机。如果没成功,可以进入GRUB命令行(按c),手动执行命令排查:
    insmod net
    insmod efinet
    dhcp
    wakeonlan 你的MAC地址
    
    确认WOL命令能生效后再检查配置文件的内容是否正确。

五、设置默认启动项(可选)

如果你想默认进入“自动唤醒”选项,可以编辑GRUB配置文件,找到GRUB_DEFAULT=0(或者其他数字),改成对应条目在菜单里的顺序(第一个是0,第二个是1,以此类推)。

备注:内容来源于stack exchange,提问作者charlesfreejazz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.23 13:29:06