V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
wangxiang
V2EX  ›  问与答

双系统如何做一个物理开关

  •  1
     
  •   wangxiang · 323 天前 · 6843 次点击
    这是一个创建于 323 天前的主题,其中的信息可能已经有所发展或是发生改变。
    情况是这样的,电脑装的双系统。
    黑苹果作为主力机,windows 用来打游戏。装在不同硬盘上,技嘉的主板,切换系统是在 bios 里选。
    问题来了:
    1. 每次进 windows 都要狂按 f12 ,有时候会按晚了,忘了按了,都要再重启一次,很烦。
    2. 进入 windows 后下次再开机就默认 windows 了,还需要在 bios 里再把启动顺序调回来,也很麻烦。
    所以就想有没有什么方案,搞个物理开关,开的状态系统重启就进 windows ,关的状态重启进入黑苹果。
    91 条回复    2023-06-04 16:54:51 +08:00
    knva
        1
    knva  
       323 天前   ❤️ 1
    一种思路,arduino 用 32u4 或者别的 MCU 虚拟一个键盘,通过 MCU 控制猛按 F12
    如果是台式机甚至可以接个开机。
    如果用 ESP32 还可以用 wifi 蓝牙什么的
    Endeavor
        2
    Endeavor  
       323 天前
    我是直接把 opencore 设置到 BIOS 的第一启动,开机直接进 opencore 选择 win 或者 mac ;有人说用 opencore 启动 win 会有问题,容易蓝屏什么的,但是目前没遇到
    InDom
        3
    InDom  
       323 天前
    一毛一样的, 同样深受其扰, 不过我是直接开机 F11 进入 BOOT MENU, 默认 mac, 玩游戏的时候手动进 Win 系统(重启默认还是 mac).

    虽然你的需求我没有解决方案, 但能稍微优化一点体验:

    自动进入系统关掉, 开机以后必须手动选择引导盘.

    可以在 OpenCore 中设置, 也可以试下 BOIS 中把 BOOT 全部去掉 ?
    phub2020
        4
    phub2020  
       323 天前
    要不,mac 里装虚拟机?(dog)
    luckjoe680
        5
    luckjoe680  
       323 天前
    没有换个引导吗 现在用的老的 Clover 现在都用新的 opencore 了
    wangxiang
        6
    wangxiang  
    OP
       323 天前
    网上找到一个方案 https://hackaday.io/project/179539-hardware-boot-selection-switch
    但是不懂硬件,不知道怎么买板子怎么搞。而且那个 gurb 做启动盘也很烦,配置也看不懂。但是看了里面第 2 个方案,我想了个办法。
    在 u 盘上装 clover 引导 windows ,开关控制 u 盘连接状态。把 u 盘设为第一启动,黑苹果为第二启动。
    也就是 u 盘连接时进入 windows ,u 盘断开时走第二项启动进入黑苹果。
    但是现实情况是,u 盘断开再连接时,就排到启动顺序最后了,无语。
    InDom
        7
    InDom  
       323 天前
    有些主板支持开机键长按直接进入 BIOS ???? 比如我的 MSI 就有这个功能,
    wangxiang
        8
    wangxiang  
    OP
       323 天前
    @phub2020 有虚拟机啊,但是要是打游戏
    ProPh3t
        9
    ProPh3t  
       323 天前
    @phub2020 性能损耗先不说,有些游戏防作弊,不让虚拟机里运行,玩都玩不了,虚拟机就不是干这个事的。
    wangxiang
        10
    wangxiang  
    OP
       323 天前
    @Endeavor
    @InDom 这样每次开机还要选系统,也很麻烦
    cpstar
        11
    cpstar  
       323 天前
    啥玩意,多少年前都有这种隔离卡了。。。
    “保密机隔离卡”
    steph7curry
        12
    steph7curry  
       323 天前
    双系统都用 opencore 引导,安装 bootcamp 驱动程序,和白果一样选择启动磁盘
    cpstar
        13
    cpstar  
       323 天前
    其实,bcdedit 加一条记录不就好了,哦,黑苹果啊,那就只能前端再套一个 grub 了。
    或者,windows 作为引导记录,bcdedit 把黑苹果设置为默认记录

    btw ,windows 需要关闭快速启动,不关闭的话,只有重启是真关系统,否则等同于休眠恢复,任何拦截引导是不可能的。
    InDom
        14
    InDom  
       323 天前
    @cpstar #11 好东西, 看了一下,隔离卡核心思路是控制硬盘供电, SATA 之类的有独立供电线的好解决了.

    把硬盘供电做在开关上, 并将这个硬盘设为第一位, 断电就会进入第二硬盘位了.

    但是, 如果双 NVMe 硬盘就不太好使了, 改主板有点难度太高.
    wangxiang
        15
    wangxiang  
    OP
       323 天前
    连接里面的第 2 个方案我觉得应该可行
    意思好像是,硬盘上装 grub 引导,开关控制 u 盘连接状态。
    grub 扫 u 盘存在(连接状态),就引导 A 。u 盘不存在(断开状态),就引导 B 。

    但是 grub 这玩意搞不明白,折腾一晚上启动盘都没做好
    datocp
        16
    datocp  
       323 天前
    好多年没研究这些了,早些年使用非 UEFI 启动时,将硬盘划分 3 主分区,一个扩展分区。然后安装 grub for dos ,装了 3 个 windows 系统,开机的时候有倒数默认选择,也可以按方向键选择具体的分区。需要找一个合适的多系统引导工具。
    zFxiang
        17
    zFxiang  
       323 天前
    使用 opencore 引导即可,设置一下 timeout ,然后选择系统的时候,使用 CTRL+回车,这样就能设置该系统为默认启动的系统,就能实现进入哪个系统后下次再开机就默认哪个系统了
    mcluyu
        18
    mcluyu  
       323 天前
    opencore 直接选择 win 引导, 虽然会有些问题, 比如可能需要重新激活啥的, 所以我用的另外一个引导 rEFInd

    开机进入 refind 显示一个引导界面, 界面上显示 opencore 和 win , 可以设置几秒超时自动启动上次系统, 并且会记住上次选择

    至于搞个物理开关? 那不还是一样要手动开关吗, 跟按键盘选择有啥区别
    cpstar
        19
    cpstar  
       323 天前
    @InDom 14# 多少年前是 SATA 的,当然也就是 SATA ,现在远离那块业务了,不知道现在进展如何。如果上 NVME 的话,因为是 PCIE 的,即便有这种卡,肯定不能走 CPU 的 PCIE 通道而只能挂 PCH 的 PCIE 通道。
    wangxiang
        20
    wangxiang  
    OP
       323 天前
    oc 引导双系统算是折中的办法。
    但本质上和 bios 里选是一样的啊,都是要消耗你专注力的。一不小心就过了 timeout 时间了。
    而且我绝大多数下是进入黑苹果,偶尔进入 windows ,这样在每次开机前都加个手动选择,或者 timeout 选择,太麻烦了。
    icegaze
        21
    icegaze  
       323 天前 via Android
    refind 来引导,
    非常方便…
    iloveayu
        22
    iloveayu  
       323 天前
    如果两块都是 SATA 盘好办,电源线外置就完事儿了,打标签用哪个接哪个。
    wangxiang
        23
    wangxiang  
    OP
       323 天前
    @iloveayu 可惜两块都是 nvme
    phoulx
        24
    phoulx  
       323 天前 via iPhone
    类似的需求,不过是在 Linux 和 Windows 之间,我的解决办法:
    Linux 下有个 efibootmgr 工具,可以设置临时启动项,这样一行命令可以重启到 Windows ,且保留 Linux 仍为第一顺位,再改个 alias ,每次手打
    ViolaH
        25
    ViolaH  
       323 天前   ❤️ 1
    换个思路,从硬盘下手,搞个开关切换两个硬盘的供电。或者设置 Mac 为默认系统,win 为第二顺位,然后把 Mac 装在外接硬盘盒里,这样插着硬盘盒的时候就默认进 Mac ,想进 win 的时候拔掉硬盘盒就行
    1423
        26
    1423  
       323 天前   ❤️ 1
    同需求。最好电脑直接安装多个开机键,开机的时候就已经想好要进哪个系统了
    rehoni
        27
    rehoni  
       323 天前
    没搞懂,Windows 不是有个 boot manager 么,进去就直接先让你上下选的吗
    cnbattle
        28
    cnbattle  
       323 天前
    记得可以设置开机 logo 页面等待时长, 设置长些 比如 30 秒 ,不用狂按
    brader
        29
    brader  
       323 天前
    为啥你会狂按啊,不是可以做个开机引导页面吗,可以设置多少秒,让你选择哪个系统
    leonshaw
        30
    leonshaw  
       323 天前
    放个自动点击器不停按 F12
    xtreme1
        31
    xtreme1  
       323 天前
    nvme 也一样能按需接, 搞个 m.2 延长线
    loveuqian
        32
    loveuqian  
       323 天前
    同需求,用的是 12 楼的方法
    mac 或者 win 在软件里通过操作,然后自动重启进入目标系统
    kokutou
        33
    kokutou  
       323 天前 via Android
    默认启动黑苹果,然后把启动菜单读秒关了。。。
    rojer12
        34
    rojer12  
       323 天前
    有没有可能做个切换器,把两个硬盘接到切换器上,用切换器控制哪个硬盘连接电脑
    比如,用 PCIe x4 转 m2 转接卡,卡上面有两个硬盘位,通过开关控制两个硬盘的物理连接,只允许一个硬盘和主板物理联通就行了
    wangxiang
        35
    wangxiang  
    OP
       323 天前
    @loveuqian windows 下怎么操作进入 mac
    andyzhshg
        36
    andyzhshg  
       323 天前
    插眼,我还以为就我自己有这种需求
    lauc020
        37
    lauc020  
       323 天前
    有硬盘电源控制器
    chen7ie
        38
    chen7ie  
       323 天前
    之前遇到过同样问题,当时我键盘还是蓝牙的 K2 ,开机都没法按来选系统

    我最后用了个 u 盘来引导 mac ,关掉 u 盘引导 win
    jenlors
        39
    jenlors  
       323 天前
    opencore 不是启动的时候可以选择操作系统吗,可以默认设置为 Mac ,然后留 5 秒的时间可以手动选择其他系统
    villivateur
        40
    villivateur  
       323 天前
    用一个物理开关控制两个硬盘的供电,两个硬盘分别装系统
    Foxkeh
        41
    Foxkeh  
       323 天前
    把主板上的纽扣电池抠掉, 让每次启动卡住行不?
    loveuqian
        42
    loveuqian  
       323 天前
    @wangxiang #35
    一样有软件的啊,任务栏图标右击,选择进入 mac
    ungrown
        43
    ungrown  
       323 天前
    加装一个“前置”引导程序就可以喽,诸如 grub 等等,可选范围还挺多的。开机进这个引导,然后手动选择,不想要默认选项的话把 timeout 禁掉,确保只能手动选择。
    SuPerC
        44
    SuPerC  
       323 天前
    我是先装的 windows 在装的 linux ,默认启动是 linux 但是在启动过程中 grub 页面可以选择 windows 启动,选择了一次 windows 启动后面默认是 windows 启动,在启动时手动选择 linux 下次是 linux 启动。
    yannxia
        45
    yannxia  
       323 天前
    找个磁盘装一个引导不就好了,GRUB 什么的都可以等几秒再进系统……没啥复杂的吧
    ivan_wl
        46
    ivan_wl  
       323 天前
    @wangxiang #20 自己改 opencore 代码,加入一键引导支持,开机按不同的键启动不同系统
    qq565425677
        47
    qq565425677  
       323 天前
    我之前装双系统,windows 自动更新又自动重启,如果进的不是更新的 windows 系统有时候就崩了,也可能是我有什么地方没设置好,不过个人感觉还是分两个硬盘装两个系统比较稳妥,解决方案直接淘宝搜下硬盘开关即可。
    RRyo
        48
    RRyo  
       323 天前
    PXE 移到最上面,然后 dhcp option 指到树莓派或者其他什么的 ftp 上, 开关流程:
    - 替换 ftp 的配置(比如覆盖软连接-->os1 -->os2 配置)
    - wol 开机
    mansurx
        49
    mansurx  
       323 天前
    有已经 PCI 卡,带一个桌面切换按钮。可以把两个不同系统的硬盘和两根网线接到这个卡上,通过这个卡输出到主板。 之前有政府部门连接办公外网和政府专网就是一个机箱里两个硬盘加一个切换器实现的
    hahiru
        50
    hahiru  
       323 天前   ❤️ 2
    用两个优盘,引导都做到优盘上。然后优盘插在带开关的延长线或者转换器上。转换器插电脑。
    这样开哪个引导就哪个系统进。
    datoujiejie221
        51
    datoujiejie221  
       323 天前
    @ViolaH 我白苹果就是这个思路 外接硬盘装了个 wintogo
    Soar360
        52
    Soar360  
       323 天前
    做个 sata 切换器?
    maplerecall
        53
    maplerecall  
       323 天前
    现在 bios 应该都可以设置开机界面等待时间长,设置长一点就不用开机激情连打了
    msn1983aa
        54
    msn1983aa  
       323 天前
    @villivateur #40 万一正常使用中不小心碰到了开关数据 GG
    wangxiang
        55
    wangxiang  
    OP
       323 天前
    @hahiru 这个方案貌似可以
    runking
        56
    runking  
       323 天前
    我之前是用 opencore 引导
    做了两个配置,一个开机自动进 win ,一个自动进 Mac
    leoQaQ
        57
    leoQaQ  
       323 天前   ❤️ 1
    我有一种思路:两台电脑[/dog]
    grit136907108
        58
    grit136907108  
       323 天前
    你用 oc 引导最多按两次键盘,和直接按物理开关一次,没啥区别啊
    my3157
        59
    my3157  
       323 天前
    很多年前做过类似的事, sata 盘, 光驱位装了物理开关面板, 电源 -> 开关 -> sata 盘

    开机时先开对应系统的硬盘开关, 再按开机键, 开机以后无法切换, 不过需要的时候可以再开机状态下打开对应的盘, 系统会加载为数据盘, 可以拷贝东西
    grit136907108
        60
    grit136907108  
       323 天前
    还有个方法,你把 oc 引导放在 u 盘,设置 upan 为第一启动项,u 盘 oc 默认 window 启动。这样你不插就是黑苹果启动,插就是 window 启动。
    wangxiang
        61
    wangxiang  
    OP
       323 天前
    @grit136907108 看 6 楼回复,试过了,再插 u 盘就不是第一启动项了
    grit136907108
        62
    grit136907108  
       323 天前
    @wangxiang #61 还有个差不多意思的,就是进 oc 引导的时候判断是否有 u 盘,有的话就进入你设置的系统。但是这样需要改代码吧,我这方面也不懂,只说说想法,不一定可以实现。
    1014982466
        63
    1014982466  
       323 天前
    opencore 放在 U 盘里,不启动 mac 直接把 U 盘拔了,插上就默认 mac
    1014982466
        64
    1014982466  
       323 天前
    另外不要用 OC 引导 Windows
    我是华擎主板,华擎主板只要把 u 盘设为第一项目,以后永远都是第一,即使中间拔走
    1014982466
        65
    1014982466  
       323 天前
    或者你把 OC 和 Windows 的 EFI 分别放到 2 个 U 盘,需要引导哪个就插入哪个。。。
    但是我都是让 OC 停在选择启动项的界面的,不倒计时,选一下就好了
    Admstor
        66
    Admstor  
       323 天前
    这样子
    你配 2 个电脑,一个放在左边一个放在右边
    按一下就行了

    我不知道为什么已经给你提出几乎完美的方案你还嫌麻烦
    streamrx
        67
    streamrx  
       323 天前 via iPhone
    aa
    uu
    dengqixun
        68
    dengqixun  
       323 天前 via Android
    网上搜索,有卖的。我们单位电脑要求内外网分离,就安装过。一个按键切换。不过不知道支不支持 MAC
    20015jjw
        69
    20015jjw  
       323 天前 via iPhone
    弄个脚踏板吧 踩住自动循环 f12…
    aydd2004
        70
    aydd2004  
       323 天前
    硬盘切换器,但是我家的是 sata 的。
    huijiewei
        71
    huijiewei  
       323 天前
    做个 Windows 启动引导的 U 盘,然后 BIOS 里面设置为 U 盘优先,需要启动 Windows 就插上 U 盘重启
    cutchop
        72
    cutchop  
       323 天前
    A 卡打游戏吗?我也是双系统,想搞个 N 卡炼丹,但是又不支持黑苹果,怎么弄?
    dashupc
        73
    dashupc  
       323 天前 via Android
    控制硬盘供电,需要哪个系统给哪个硬盘供电
    Gouzhi
        74
    Gouzhi  
       323 天前
    opencore 不是可以做引导的
    vmebeh
        75
    vmebeh  
       323 天前 via iPhone
    用 bcdedit 给 bootmgr 添加一个 legacy 启动项,这样启动时会显示传统系统选单,timeout 设置成 3 秒,就有时间反应了
    zbowen66
        76
    zbowen66  
       323 天前
    啊?我前几年用 OpenCore 的时候就有开启选择系统了,3 秒后自动进入默认系统。功能不可能倒退吧
    zbowen66
        77
    zbowen66  
       323 天前
    @zbowen66 #76 打错字,开机选择系统页面,还能自定义
    gyteng
        78
    gyteng  
       323 天前
    有一种比较绕的方案,开机默认走 PXE 启动,这个启动菜单是可以自己控制的,再做个物理开关动态修改启动菜单以达到控制默认启动硬盘的效果
    ClericPy
        79
    ClericPy  
       323 天前
    好思路啊... 物理切换确实更现实

    当年用的方案是 linux 在我移动硬盘上, 我移动硬盘引导顺序优先级高, 平时用 Windows 引导 linux(可比 grub 麻烦多了), 不干活的时候拔了硬盘...

    所以是不是可以搞个引导分区放 U 盘上, 系统依然在硬盘上通过拔插来解决引导
    brust
        80
    brust  
       323 天前
    开机时候选择系统?
    elmagnificogg
        81
    elmagnificogg  
       322 天前   ❤️ 1
    买一个 USB hub 带独立开关的那种,一个上面可以接四个 usb (大概 20 ),每个都可以控制通断
    把 mac 和 linux 还有 windows 的引导 单独存到 3 个 u 盘上( 128m u 盘 20 能买 5 个),然后想启动哪个给哪个通电就完事了

    我看了下你前面说的 u 盘启动拔掉以后会排序到最后?以我目前的经验,我见过的机器只要你曾经把他设置到最前面过,他就永远都在前面,重插也是,我建议你看看设置是不是哪里不对,不要改快速 boot 的设置就是 F12 那个 那个不存储,BIOS 里的顺序才会存储
    m1nm13
        82
    m1nm13  
       322 天前
    主板设置 U 盘启动优先,然后插个 U 盘装个引导,指定 WINDOWS 在最前面。
    比如装一个 UBUNTU ,在 UBUNTU 的引导页面改成 WINDOWS 为默认引导。
    打游戏的时候就插 U 盘,然后重启
    jqtmviyu
        83
    jqtmviyu  
       322 天前
    最简单, 你用 opencore 引导, 反正你用黑苹果用得多, 默认启动黑苹果, 超时设置 5 秒, 反正少数打游戏情况总能注意下 5 秒启动吧.

    其次, 把 win 引导做到 u 盘上,把 usb 启动选项调到前面, 插 u 盘启动 win, 不插启动 macos
    Dislocator
        84
    Dislocator  
       322 天前
    mac 不知道,但 linux 可以指定下次启动的 grub 项的,UEFI 指定 grub 优先,然后 linux 写个重启脚本,双击就重启就到 win ,win 重启默认就到 linux ,对我来说也解决问题了。
    tianxin
        85
    tianxin  
       322 天前 via Android
    opencore 引导可以用 ctrl+Enter 选择默认引导的系统啊,用黑苹果多就按一下,每次都默认进黑苹果,用 win 多也同理,偶尔进一下的系统就要手动选择一下
    cxsz
        86
    cxsz  
       322 天前
    试试第三方引导 rEFInd ,设成开机引导 rEFInd ,然后 rEFInd 再引导系统,切系统的时候就在 rEFInd 里面选一下
    hokori
        87
    hokori  
       322 天前
    换个引导,设置不选择就不进入系统就好了,这样开机界面肯定就能选择想要的系统
    gdfsjunjun
        88
    gdfsjunjun  
       322 天前
    有个想法,两个系统分别装在不同的硬盘,然后有一个 SATA 线控制器,像一个多路选择器一样,每次只选择一个与电脑连接,搞定。原理类似 HDMI 多路切换器那样。
    proxytoworld
        89
    proxytoworld  
       300 天前
    @Endeavor 大佬有 win+黑苹果解决方案吗
    Endeavor
        90
    Endeavor  
       298 天前
    @proxytoworld 双系统网上教程不是一大把吗
    proxytoworld
        91
    proxytoworld  
       298 天前
    @proxytoworld 就是怕苹果双系统和别的双系统不一样
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3099 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 14:34 · PVG 22:34 · LAX 07:34 · JFK 10:34
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.