V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
MacsedProtoss
V2EX  ›  程序员

有没有远程切换 pc 启动盘的方案

  •  
  •   MacsedProtoss · 25 天前 via iPhone · 2583 次点击

    如题,大概的情况是现有一台 win pc ,有两块盘,装了两个系统来隔离境内/境外。隔离的方案是开 bitlocker ,这样境内应用的流氓就扫不了另一块盘了。 但是这样操作之后由于引导分别在两块盘上,目前只能通过 bios 的启动菜单来切换两个系统。

    快过年了要回趟老家,求问人不在的时候如何远程切换启动盘?软/硬件方案均可,内网可以正向代理回去访问。

    第 1 条附言  ·  20 天前
    已解决:最终方案,使用 bootice 修改 UEFI 引导顺序即可。( EasyUEFI 等工具应该也是可行的)

    之前一直以为软件修改只能改 BCD 不能改 UEFI ,而 BCD 修改方案不可行。两个盘的 Windows Boot Manager 的 GUID 是不一样的,BCD 选项的 GUID 也是不同的,这导致就算添加了另一个盘的引导选项也无法正常启动,TPM 不自动释出密钥,需要手动输入。

    另外外置硬件 KVM 的方案对于我这个场景也不适用——毕竟本来就有插显示器,这个玩意不一定能在启动过程中抓取到 bios 界面。
    35 条回复    2025-01-23 18:55:15 +08:00
    xclimbing
        1
    xclimbing  
       25 天前
    取决于你用的哪种启动方式啊。如果是 UEFI+GPT ,那么就直接编辑其中一个硬盘的 win 系统的 BCD ,把另一个系统的启动项加进去。然后进入其中一个系统后,想切换到另一个系统,只需要编辑一下 BCD 的默认启动项,重启即可。如果用第三方的启动管理软件,例如 grub4dos_UEFI 或者 grub2 ,那就更简单,设置一下默认启动项就行了。

    如果是 BIOS 启动方式,就推荐用 grub4dos ,上面的 BCD 方案也是适用的。
    k9982874
        2
    k9982874  
       25 天前 via Android   ❤️ 1
    买支持 imcp 等远程管理的主板
    MacsedProtoss
        3
    MacsedProtoss  
    OP
       25 天前 via iPhone
    @xclimbing 开启 bitlocker 之后是加密了全部的,A 盘不能引导 B 盘…

    @k9982874 家用机哪有这种主板…
    photon006
        4
    photon006  
       25 天前   ❤️ 1
    我感觉 pve 虚拟化方案可以实现,把 2 块硬盘直通给虚拟机,启动随意选择其中一块。
    xclimbing
        5
    xclimbing  
       25 天前
    @MacsedProtoss 那你可以用 B 盘引导 A 盘啊,无论 B 盘是否加密,Windows 的引导方式总是支持的,你觉得不行,仅仅是因为你不了解原理而已。据我所知,Windows 的 UEFI 引导区是不会加密的。
    datocp
        6
    datocp  
       25 天前 via Android
    好复杂
    至少引导是引导,系统是系统
    当年 grub for dos ,就可以在 3 主分区实现 3 个系统,通过 1 个小的扩展分区放置启动文件,然后能用的就是进系统改配置文件重启。
    一些 hp/dell 服务器是有外围模块,是可以远程启动切换系统。
    Cineray
        7
    Cineray  
       25 天前
    有一个东西叫 ip kvm, 可以远程 HDMI 加 usb 。
    m1nm13
        8
    m1nm13  
       25 天前
    IPKVM .大概最便宜的价格都在 500 上下
    MacsedProtoss
        9
    MacsedProtoss  
    OP
       25 天前 via iPhone
    @photon006 这个方案虽然可行 但是其实要从 0 开始重建工作 这个应该会导致被识别为新的设备 所以得先全部解密 bitlocker 再重新加密 而且得多加一块盘作为 pve 的盘🤔

    @xclimbing 两块盘都是 bitlocker 加密的…你对调有啥用啊 bitlocker 是全盘加密的 你读不了另一个盘的 efi 分区
    按照我以前黑苹果的经验,uefi 下多引导应该是最终启动不同的.efi ? 然而直接把 B 盘的 efi 整合到 A 里面也是不行的 启动应该是会卡在无法解锁 bitlocker 上
    但是这一块具体的原理确实是没深入了解过
    MacsedProtoss
        10
    MacsedProtoss  
    OP
       24 天前 via iPhone
    @Cineray
    @m1nm13
    感觉这玩意确实有可行性 我研究下
    1145148964
        11
    1145148964  
       24 天前
    最简单的办法,虚拟机。
    iceecream
        12
    iceecream  
       24 天前
    向日葵有硬件。最简单,用完可以卖掉,或者海鲜市场看看。
    MacsedProtoss
        13
    MacsedProtoss  
    OP
       24 天前 via iPhone
    @1145148964 moonlight 串流的机子 除非是 pve 那种模式否则性能损失太大
    MacsedProtoss
        14
    MacsedProtoss  
    OP
       24 天前 via iPhone
    @iceecream 不信任走公网的设备…
    ltkun
        15
    ltkun  
       24 天前 via Android
    kvm 小黄鱼上最便宜 100
    kk2syc
        16
    kk2syc  
       24 天前
    这么简单的问题,你们还讨论上 ipmi 了?
    一个 esp32 ,三个继电器,两个继电器分别控制两个硬盘的电源线,一个继电器接开机键针脚。

    esp32 独立供电,连接 wifi (也可以蓝牙)

    关机后,断开硬盘 B 电源(继电器 2 ),连通硬盘 A 电源(继电器 1 ),继电器 3 (开机键)开机,不就是一号系统。
    关机后,断开硬盘 A 电源(继电器 1 ),连通硬盘 B 电源(继电器 2 ),继电器 3 (开机键)开机,不就是二号系统。
    cuicuiv5
        17
    cuicuiv5  
       24 天前
    向日葵有款硬件,插 hdmi 接口,bios 界面都可以远程。 不过你不信任向日葵的话就没办法了
    MacsedProtoss
        18
    MacsedProtoss  
    OP
       24 天前 via iPhone
    @kk2syc 全是 M2…你的思路不成立
    再者就算是 sata 之类的 这么整硬盘供电也不稳吧
    Thymolblue
        19
    Thymolblue  
       24 天前
    我目前的方案:
    1. 其中一个系统用 BitLocker 加密,另外一个不能加密,另外最好是两块硬盘对应两个系统
    2. 安装操作系统时先安装需要 BitLocker 加密的系统,让 Windows Boot Manager 解决启动问题,设置的默认启动系统可以随意
    3. 在 Windows System Configuration -> Boot 里面配置下一次启动的操作系统,实测每次启动到不同系统不需要输 BitLocker 密码
    esee
        20
    esee  
       24 天前 via Android
    玩客云有一套改装后做 ipkvm 的东西,用 usb 和视频采集来操作机器,搞下来一百块钱一套
    Thymolblue
        21
    Thymolblue  
       24 天前
    @Thymolblue 另外我一开始的方案是 PiKVM ,失败的原因是 Windows 输入密码之前只有一个显示器能有输入。如果你的机器接了其他的显示器且反应比 PiKVM 快,PiKVM 里面是看不到任何给内容的
    ryd994
        22
    ryd994  
       24 天前 via Android
    @MacsedProtoss #3 可以用 bilikvm 等硬件 kvm 。
    其次可以试试 Intel AMT 之类的企业管理服务,同样可以实现 kvm ,但略微复杂
    人家服务器主板贵不是没道理的,就是多了这些专业管理功能
    xclimbing
        23
    xclimbing  
       24 天前   ❤️ 2
    @MacsedProtoss 我前面都跟你说了,bitlocker 是不可能加密引导分区( UEFI 分区的),也不可能加密引导文件,否则就变成了启动悖论:连启动文件都是加密的,Windows 自己如何加载。你既然在寻求别人的帮助,请遵循别人的指导去实践,遇到问题了再反馈进一步的信息。

    这么说吧,你两个硬盘装了两个系统,那么我估计大概率使用的就是 UEFI+GPT 启动模式,那么,你每块硬盘上都至少有三个分区:ESP 、MSR 、系统分区。而其中的 ESP 分区一般在硬盘的最前面,大小是 200M 左右,是一个 FAT(32)分区,而这个就是 UEFI 的启动分区(这个分区不可能 bitlocker 加密),而 Windows 的启动文件就在这个分区的\EFI\Microsoft\boot\目录下,这个目录下肯定有一个 bootmgfw.efi 文件,这就是 Windows 的加载程序,同目录下还有一个 BCD 文件,这就是启动配置文件。你随便启动到任何一个系统下,用 bootice 、EasyUEFI 这一类的工具都可以看到这个分区,给这个分区分配一个盘符,也可以看到这个分区的文件。用 bootice 就可以编辑当前系统的 BCD ,把另一个系统的引导项添加到当前系统的 BCD 中。

    参考: https://learn.microsoft.com/en-us/windows-hardware/manufacture/desktop/bitlocker-drive-encryption?view=windows-11

    **BitLocker Drive Encryption Partitioning Requirements**

    BitLocker must use a system partition (注:这里的 system partition 就是指上面说的 ESP 分区) that is separate from the Windows partition. The system partition:

    * Must be configured as the active partition.
    * Must not be encrypted or used to store user files.(必须不能加密)
    * Must have at least 250 MB of space.
    * May be shared with a recovery partition.
    Ipsum
        24
    Ipsum  
       24 天前
    你是在说 ipkvm 吗?有个 pikvm 还有个 sipeed 好像还行。
    MacsedProtoss
        25
    MacsedProtoss  
    OP
       24 天前 via iPhone
    @xclimbing 我说过了,直接这么干是不能成功启动的,需要手动输入密钥…
    kk2syc
        26
    kk2syc  
       24 天前
    @MacsedProtoss #18 一样可以,定制的 pcb 的板子,m2 插 pcb 上,pcb 还是 m2 接口,中间的电路可以做修改
    ghjh
        27
    ghjh  
       24 天前
    或许 op 可以试试在重启时,按住 shift 选择 windows 电源菜单中的重启,然后选择下次要从哪里启动……
    临时方案的话,感觉没什么比这个更方便了……
    nuk
        28
    nuk  
       24 天前
    弄一个模拟键盘芯片就行,bios 这种东西可以盲打的,自动定时输入按键就行。我以前有个 NUC ,当时没有视频线,靠看网上别人改 bios 设置的图片,盲选启动项从 u 盘启动自动安装系统后 ssh 。
    Manyin
        29
    Manyin  
       24 天前 via Android
    向日葵控控?
    Tonni
        30
    Tonni  
       24 天前
    玩客云 + One KVM ,全套一百块钱可以搞定

    https://one-kvm.mofeng.run/
    cheng6563
        31
    cheng6563  
       24 天前
    UEFI 是可以配置“下一次启动的启动项”的,你下个 EasyUEFI 完事。
    另外不需要用 BitLocker 这么重的东西,轻一点用 Sandboxie 完事,不然组策略还可以拉黑另一个盘的 uuid 使其无法安装驱动
    n43635
        32
    n43635  
       24 天前
    最简单的方法就是再加一台电脑,直接物理隔离,再不济一个虚拟机就搞定了,虽然看似简单粗暴,但是容易操纵也比较稳定,学习成本和运维成本也比较低
    OneLiteCore
        33
    OneLiteCore  
       23 天前
    追加一台电脑 or PVE 。固然通过各种 Tricky 的方式来搞也是能够实现的,但是长期使用保不齐就会出现什么无法恢复的幺蛾子。
    sheldor
        34
    sheldor  
       23 天前
    31 楼的方案是最简单的,你既然有多块盘那么很显然每块盘上都有个 ESP 分区,每个分区里都有 Windows 的 bootmgfw.efi ,这个 EFI 在计算机启动的时候会显示为 Windows Boot Manager ,由于你有 2 块盘,所以可能显示为两个 Windows Boot Manager ,可以像 31 楼那样,在 EasyUEFI 里面指定下一次启动的 EFI (两块盘对应两个不同的 bootmgfw.efi ),另一个软件叫 xorboot uefi ,也可以设置下一次启动的 EFI ,这个 xorboot 不需要安装
    MacsedProtoss
        35
    MacsedProtoss  
    OP
       20 天前
    先说最终结论 使用 bootice 直接修改 UEFI 选项顺序即可。

    然后回复一下上面的一些 case
    @xclimbing @datocp 两个盘的 Windows Boot Manager 的 GUID 是不一样的,BCD 选项的 GUID 也是不同的,这导致就算添加了另一个盘的引导选项也无法正常启动,TPM 不自动释出密钥,需要手动输入

    @ryd994 @Thymolblue @esee @Ipsum @Cineray piKVM 的方案并不适合,原因是这个机器没有虚拟化,且已有外置显示器——bios 输出画面走的是独显,硬件 KVM 插集显是不能获得输出的,插独显的话因为不被识别为主显示器,bios 画面也不能展示。
    @cuicuiv5 @iceecream 同理其实向日葵的硬件方案应该也是一样的,除掉信任为题,它也不好用

    @ghjh 你说的这个是 BCD 的顺序,这个用不了(上面说了)

    @cheng6563 @sheldor 你们的思路是对的,我之前一直以为 bios 里的 UEFI 顺序不能在 win 里面用软件调整,只能改 BCD 的,结果发现是可以的

    @n43635 这个机子是游戏(串流)机,4090...再加一台成本也太高了吧
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5843 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 06:09 · PVG 14:09 · LAX 22:09 · JFK 01:09
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.