V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Tounea
V2EX  ›  程序员

笔记本装两块硬盘如何做到双系统自由切换?

  •  
  •   Tounea · 2022-10-15 17:02:28 +08:00 · 6277 次点击
    这是一个创建于 771 天前的主题,其中的信息可能已经有所发展或是发生改变。
    首先,两块盘都是安装独立的操作系统( Windows 和 Linux ),电脑开机两块硬盘也是同时加电,选择其中一块盘的系统并登陆,令一块盘系统是不是在后台也加载完成?

    那么问题来了,市面上有没有一款笔记本支持按键操作用于切换两块硬盘上的系统?

    我记得 10 年前看到有个公司竞标国企与国家研究院电脑主机项目,主机大小跟普通台式机差不了多少,看里面是一个大背板有五个 PCI 插槽,插槽插上的是比普通 8T 机械硬盘还大一点点的系统模块(模块可插 2.5 寸 SSD ),每个模块可以运行不同操作系统,机箱外部没有任何转接设备,就跟普通主机一样,一个 VGA 接口连显示器,五个模块系统启动后,可用键盘随便切换系统,而不是像现在使用双系统,还得先关机在选硬盘进另一个系统,这真是 low 的不能在 Low 了!

    有人可能觉得这需求很鸡肋,直接 Windows 装 Linux 虚拟机,或者 Linux 装 Windows 虚拟机不就行了。说真的,在操作系统里虚拟化在套“娃”使用体验很差,一般搭个测试环境用用还行,要是长期使用还是算了!
    54 条回复    2022-10-17 09:30:00 +08:00
    flynaj
        1
    flynaj  
       2022-10-15 17:59:06 +08:00 via Android
    装个引导程序,在引导里面设置,grub 完全可以,或者就是开机按 boot 菜单热键。双系统其实很分裂,要到另一个系统里面的东西要重启。
    dcty
        2
    dcty  
       2022-10-15 18:00:37 +08:00 via iPhone
    配置跟上,显卡直通,体验没你说的那么拉胯
    a33291
        3
    a33291  
       2022-10-15 18:02:37 +08:00
    我在一个硬盘的不同分区安装过不同的系统(win ubuntu 黑苹果 macos),黑苹果有 clover 引导,里边能同时看到不同系统的选项,启动时选择想要进入的系统就行.
    PrinceofInj
        4
    PrinceofInj  
       2022-10-15 18:03:58 +08:00 via Android
    目前应该不存在你说的东西。都是 Linux 的话你还可以用 docker 模拟一下,一个 Windows 一个 Linux 两者对硬件使用完全不同你如何共用同一套?就算双系统都偶尔有可能这个系统会把另外一套系统搞坏,不要提同时占用 CPU 内存了。
    lxiian
        5
    lxiian  
       2022-10-15 18:08:17 +08:00 via iPhone
    目前应该不能,以后不清楚
    churchmice
        6
    churchmice  
       2022-10-15 18:13:32 +08:00
    你这需求需要两个 cpu 才能实现,ddr 也得给你弄成双份的,还要用 kvm 控制显示器和鼠标的切换
    这么小众的需求还专门给你整个笔记本,厂家怕是要亏本不成
    leonshaw
        7
    leonshaw  
       2022-10-15 18:18:56 +08:00   ❤️ 1
    有没有一种可能,他们是把两台机器装到一个机箱里,加一个 KVM switch ?
    Tabjy
        8
    Tabjy  
       2022-10-15 18:28:21 +08:00 via Android
    在没有两套 CPU 内存主板的情况下想那么搞真的只能虚拟化。其实 WSL2 体验已经很好了,Hyper-V 这种 type I hypervisor 的额外开销低于 5%。GUI 程序在 Windows 这边装个 X11 server 也可以无缝把 Linux 窗口拖到 Windows 桌面上。唯一不方便的是 WSL2 不能直接挂在物理硬盘 /分区作为 rootfs ,但是 Hyper-V 本身却可以整个磁盘 passthrough…
    abc8678
        9
    abc8678  
       2022-10-15 18:47:24 +08:00 via Android
    我也有类似的需求
    7zlid
        10
    7zlid  
       2022-10-15 18:53:56 +08:00 via Android
    笔记本应该不行,台式机可以
    买两个台式机,摁显示器上的切换就可以了
    ak47iej
        11
    ak47iej  
       2022-10-15 19:00:59 +08:00
    一套硬件不用 VM 两个系统互相切换这个有点脑洞开太大了,同一套硬件没法处理资源占用的问题,你说那个项目基本上就是五台电脑加了一个 KVM ,以你的想法那笔记本是根本做不了的...
    Jeansh
        12
    Jeansh  
       2022-10-15 19:02:41 +08:00
    linux 放虚拟机上,虚拟机直接用一个物理硬盘
    raptor
        13
    raptor  
       2022-10-15 19:10:23 +08:00
    需要硬件支持——至少内存需要两套,当然更好的方法就是两台电脑一套显示器键鼠。
    paopjian
        14
    paopjian  
       2022-10-15 19:36:42 +08:00
    双系统自由切换的代价是硬件问题,试试 unraid 虚拟机双系统?想办法解决显卡和切换按键问题就好了
    cpstar
        15
    cpstar  
       2022-10-15 19:40:53 +08:00
    OP 描述的东西,我觉得除非我亲眼见到,怎么想理论上也无法做到,除非那块卡就是一个硬件 VM ,或者说一个 VM OS ,然后上边套娃几个 OS 。否则,一个 OS 拿到硬件管理权之后——或者 BIOS 只会将硬件管理权交给一个 OS——别的 OS 做到实时切换,切换的可不是操作系统的 UI ,下边所有硬件资源都要转接,现实么?怎么想也不现实啊。
    但是如果有一层 VM OS ,比如 vsphere 之类的,那他就是底层 OS ,把资源分配给上层 VM ,VM 里跑啥系统,就无所谓了。
    Tounea
        16
    Tounea  
    OP
       2022-10-15 19:54:53 +08:00
    @flynaj 这不是从操作系统层面去做双系统引导,我 10 年见到那个主机能支持五个系统同时开机,在不重启主机情况下用普通的 USB 键盘能直接切换其他系统,他们五个系统之间互不影响,坏了一个 PCI 系统模块也不影响其他四个 PCI 系统模块正常运行,相当于是把 KVM 切换器功能做到主板上,下面这个就是普通的 KVM 切换器。

    Tounea
        17
    Tounea  
    OP
       2022-10-15 20:03:33 +08:00
    @PrinceofInj 这种技术老早就存在了,我 10 年前就亲眼见过,这功能就相当于一个软 KVM 切换器,而且那个主机是支持五块硬盘不同硬盘同时运行,进系统后可以用 USB 键盘自由切换五个不同系统,只是现在不知道有哪个厂商笔记本主板能有支持软 KVM 切换器,哪怕支持两块硬盘切换系统也行啊!
    Kiriya
        18
    Kiriya  
       2022-10-15 20:09:16 +08:00
    ESXI 显卡直通可以做到
    Tounea
        19
    Tounea  
    OP
       2022-10-15 20:16:33 +08:00
    @leonshaw 虽然 KVM 切换器是可以达到这个效果,但是我看过机箱内部,五个系统模块真没外接 VGA 和 HDMI 接口,只有电源和数据接口,而且那五个系统模块是竖着一字排开插在机箱中间位置,有钢架固定,每个 PCI 系统模块顶部都贴有类似软橡胶手感,长度大小跟 PCI 系统模块顶部一致,又带导热胶的特性与机盖贴死。
    dianso
        20
    dianso  
       2022-10-15 20:22:22 +08:00
    一个大机箱放 2 个电脑,一台显示器,kvm 切换器。
    leonshaw
        21
    leonshaw  
       2022-10-15 20:22:41 +08:00
    @Tounea 感觉就是每块板卡是一套独立系统,主板就是用来供电和把输入输出导到内置的 KVM 上。
    littlewing
        22
    littlewing  
       2022-10-15 20:29:35 +08:00
    用虚拟机,不要认为虚拟机性能差,想想 windows 和 wls2
    zhhww57
        23
    zhhww57  
       2022-10-15 20:46:56 +08:00
    pve ?显卡直通? 一拖二? 有办法能实现,就是做起来很麻烦,系统底层要改成 pve ,要支持直通,显卡的话只有一个机子能用,另一个只能用虚拟化显卡,不过如果是 intel 的话好像可以开虚拟化,因为 pve 基于 debian ,你需要改一下键盘映射,还有 usb 映射,也需要研究下
    zhhww57
        24
    zhhww57  
       2022-10-15 20:48:40 +08:00
    主机 pve ,然后分两个,解决显卡虚拟化,键盘映射
    Tounea
        25
    Tounea  
    OP
       2022-10-15 20:58:18 +08:00
    @cpstar 我如果不是亲眼所见我也理解不了这操作,但我我确实是见过,它也不是什么底层 VM 实现,纯硬件支撑,至于五个系统同时开机硬件管理权问题完全不用担心,它不是用主板 CPU 和内存进行资源共享,而是在一块 PCB 板子上把 CPU 和内存内嵌上去了,就像树莓派那样,不过它要比树莓派 PCB 板大很多,它能在进系统后自由切换系统,类似做了一个软 KVM 切换器,就好比以前老主板不支持 RAID 功能,需要买独立 RAID 硬件卡接到主板上才能做 RAID ,现在新主板普遍把硬件 RAID 卡功能做到主板上,直接在 BIOS 里就能设置 RAID 功能,包括现在笔记本硬件更新换代已经今非昔比,过去笔记本 CPU 不是 2 核四线程就是 4 核八线程,最大支持 8G 或者 16G DDR3 内存,现在笔记本稍微贵一点的 CPU 都 16 核 32 线程,最大支持 DDR5 32G 内存,要是选贵一点的就是笔记本移动工作站,CPU 16 核 24 线程,内存最大支持 DDR5 128G ,就算除了硬盘,其他硬件资源完全共享给两个操作系统 也是绰绰有余。
    fuweichin
        26
    fuweichin  
       2022-10-15 21:00:48 +08:00 via Android   ❤️ 2
    首先要明确的是:一套微型机物理硬件不能直接运行多个操作系统,即使是某些双 CPU (区别于双核)的服务器也不能,要运行多个操作系统必须加虚拟化层,无论是用虚拟化硬件还是虚拟化软件。

    我曾设想了一个“双系统互为虚拟化主客同时运行”的方案,最初尝试 Windows-macOS 组合但没成功,不过对于 Windows-Linux 组合倒是可以,大致步骤:

    0. 笔记本配备两块内置磁盘,足够的内存大小,其中一块盘安装了 Windows 。

    1. 通过 AIDA64 软件查看,并拍照记录下 Windows 的主板 ID
    2. 在 Windows 安装 VirtualBox ,用 VirtualBox 将 Linux 安装到另一块磁盘( 参见 https://blog.csdn.net/flashdelover/article/details/102745140
    3. 从 BIOS 启动到 Linux ,安装 VirtualBox ,在 Linux 中创建 Windows 那块物理盘的虚拟盘 vmdk ,并创建 Windows 虚拟机,编辑 Windows 的.vbox 文件设置虚拟机的主板 ID 为物理机的主板 ID (此举是为避免当 Windows 系统以虚拟机方式启动时主板 ID 值变化导致 Windows 或者那些检测主板 ID 的软件 License 变得无效)

    至此,两个操作系统可互为主客,你可以
    + 开机进入 Windows ,并启动 Linux 虚拟机
    + 开机进入 Linux ,并启动 Windows 虚拟机

    为了让 Windows 主机与 Linux 虚拟机集成更加紧密,参加这篇文章 https://blog.csdn.net/flashdelover/article/details/125587986
    PrinceofInj
        27
    PrinceofInj  
       2022-10-15 21:22:19 +08:00
    @Tounea 我估计你见到的很有可能是类似刀片服务器的东西。每个卡上都有自己完整的 CPU 内存,外部机箱只是使用了一个高级的 KVM 切换而已。不过我没在用户处见过这种东西。想必是需求极低。
    Tounea
        28
    Tounea  
    OP
       2022-10-15 21:53:42 +08:00
    @PrinceofInj 他们生产的这种主机就不是给市面上用户使用的,是专门给国企单位和军工研究所使用的,甚至有提供军区信息部使用的,那种主机外箱全是钢板打造,外设接口采用航空插头,具有防弹效果,刀片服务器独立系统模块是对外,方便个别系统开关机,而他们生产的这种主机,独立系统模块都是机箱密封,开机只需一个按键,系统模块支持热插拔,如果有个系统模块用不了可以随时更换,不过他们是把 KVM 切换器功能做到主板上了,毕竟机箱就只有普通台式机机箱那么大,内部空间有限,不会什么东西都往里面塞。
    cpstar
        29
    cpstar  
       2022-10-15 22:02:18 +08:00
    OP 25#
    嗐。。。那五块板子就是五块机器啊。。。只不过主板子是一个切换器啊。。。

    至于你说的性能分给别人,估计你没有学过计算机体系结构、操作系统等科班课程。一台计算机就是以中央处理器( CPU ,但不是市面上各种销售的产品)为中心,配之以存储器,成为“冯·诺依曼存储计算结构”,再加上各种输入输出设备。而操作系统就是一套软件来管理所有这些资源,并且提供给各种应用软件以便使用的。这里为什么说 CPU 不是产品概念上的 CPU ,因为从实际来讲,甭管这台机器装了几路 CPU 、每颗 CPU 有多少核多少线程,在一台物理机上,就是一个中央处理器,或者直白说,都插在一个主板上。所以就算有四路 128 核总共 512 核,那也是一个中央处理器,操作系统要统一全部管理起来。内存更是 CPU 的附属,如果你见过多路 CPU 的主板,你就知道内存条会分布在每路 CPU 插座附近,而且安装内存的时候,要分布给每路 CPU 。其他 IO 总线的就不用说了。

    那为什么说资源只能给一个操作系统,那请您自问一下,操作系统 A 要用 12 个核计算,而操作系统正在使用全部 16 个核,谁来调度谁来平衡 A 的需求? A 和 B 去朝阳公园约一架? A 用了 64G 内存,B 说我要用全部 128G ,怎么办?继续约架?总需要一个人来调度,总有人需要掌控全局来控制各方。那句“绰绰有余”,根本就是无稽之谈。
    yikyo
        30
    yikyo  
       2022-10-15 22:10:59 +08:00 via iPhone
    都被楼主误导,楼主看到的应该是云系统,一台宿主机,几台云桌面

    配个 kvm 进行切换
    yc8332
        31
    yc8332  
       2022-10-15 23:04:47 +08:00
    想都知道不可能。。除非是远程桌面
    webcape233
        32
    webcape233  
       2022-10-15 23:15:44 +08:00 via iPhone
    呃...那必然是两台物理机在一块而已...各有自己的 cpu 内存,像服务器的带外管理不就是单独的一个内嵌小电脑嘛
    webcape233
        33
    webcape233  
       2022-10-15 23:16:50 +08:00 via iPhone
    @7zlid 你他娘真是个天才 一下就解决了
    7zlid
        34
    7zlid  
       2022-10-15 23:24:25 +08:00 via Android
    我已经想到怎么办了
    买两个 Nuc ,加一块电池拼起来
    再装上一个显示器和键盘之后 Kvm
    楼主给我一万就可以做到
    五万我还能精简一下
    Tounea
        35
    Tounea  
    OP
       2022-10-15 23:29:14 +08:00
    @cpstar 非科班出身,对计算机底层实现理解的还是很肤浅,受教了!

    最后说的问题还是回到虚拟化技术才能合理分配系统资源,一个笔记本主板想做到类似虚拟化技术管理功能,又明显超纲了。
    Tounea
        36
    Tounea  
    OP
       2022-10-15 23:38:27 +08:00
    @yikyo 可能我描述的不是很清晰,按照他们话讲就是称为“系统模块”,一个模块一个独立操作系统,由于他们这块 PCB 版是插在主机背板 PCI 槽上,所以我就称为“PCI 系统模块”,你们也可以理解为五个系统模块就是五片大号树莓派 PCB 版,也就是 27# 说的那种刀片服务器类型。
    jousca
        37
    jousca  
       2022-10-15 23:48:21 +08:00
    楼主应该看到的所谓快速切换就是 NET PC ,现在也叫云办公桌面…… 本质就是远端虚拟机……

    其实楼主这需求你可以就可以去弄个云办公体验下。
    secondwtq
        38
    secondwtq  
       2022-10-16 00:42:15 +08:00
    恩 ... 现在流行一种东西叫 IPU ,楼主可以看看
    www.youtube.com/watch?v=MJm4edOP5BU This Changes Networking and Storage Intel IPU Hands-on - YouTube
    techon
        39
    techon  
       2022-10-16 00:43:11 +08:00
    硬盘物理隔离卡了解一下
    techon
        40
    techon  
       2022-10-16 00:44:00 +08:00
    笔记本没找到类似设备。。。
    diegozhu
        41
    diegozhu  
       2022-10-16 01:10:30 +08:00 via Android
    @flynaj 那到不一定。我之前在 linux 下工作。virtualbox 启动 windows ,直接以物理硬盘启动。所有的改动就是写到物理盘上的。相当于双系统同时在跑。
    flynaj
        42
    flynaj  
       2022-10-16 02:08:36 +08:00 via Android
    @Tounea 你看到的可能是这种单板计算机,一块板就是一个独立的计算机,5 台就是 5 块板 http://www.advanhan.com/pro/l52.html
    flynaj
        43
    flynaj  
       2022-10-16 02:15:23 +08:00 via Android
    关键字 picmg
    20015jjw
        44
    20015jjw  
       2022-10-16 02:16:24 +08:00 via iPhone
    chromeos 好多年了😂
    flynaj
        45
    flynaj  
       2022-10-16 02:17:08 +08:00 via Android
    @flynaj 楼主特别说了不要虚拟化,不然 VirtualBox 开桌面融合直接完美。
    wtdd
        46
    wtdd  
       2022-10-16 04:33:01 +08:00
    @fuweichin 这方法看起来真不错,后续使用比如系统更新,互相访问文件等等有问题么
    billgong
        47
    billgong  
       2022-10-16 05:47:02 +08:00 via iPhone
    楼上都说的差不多了。包括苹果以前也干过这种事儿,在 Mac 上加一张带 80486 硬件的扩展卡就可以一键切换两个系统了,但实际上两个系统是运行在两套硬件上的,只有一些 IO 共享罢了。

    现在在一套硬件实现无缝切换的应该也只有虚拟化一条路了,让两个系统同时运行在一个 hypervisor 上。WSL2 (当然局限性还是挺大的)和 Windows VBS 已经是这种结构了,XBOX 现在也是通过类似的技术实现安全的。
    akira
        48
    akira  
       2022-10-16 06:26:35 +08:00
    这东西。。感觉深圳华强北就有。。当然是基于虚拟化 的
    Baoni
        49
    Baoni  
       2022-10-16 10:56:46 +08:00
    另一块盘系统是不是在后台也加载完成,这么问明显不懂系统是什么啊,当系统是程序吗?
    RRabbit
        50
    RRabbit  
       2022-10-16 12:37:11 +08:00
    你那个叫做刀片式或者模块化的服务器。共享的只有电源,部分 IO 和管理模块。那五个也不是 PCI 插槽。五个槽位上插的每一块板都拥有独立的 CPU/MEM/HD/PCIe ,包括 Video 也是独立的,当然也有独立的 BMC 。用 KVM 切换器去切换,那是极 low 的做法,一般都是使用带外的芯片通过网络进行远程的管理和监控。至于价格,五个刀片肯定比五个独立的机器贵多了,所以,台式机笔记本上还是老老实实用 Windows 加 WSL 吧,我用 WSL v1 ,Linux 的功能不全,但是可以共享文件系统,要完整的 Linux 就用 WSL v2 ,就是个 hyper-v 的虚拟机,文件系统相互隔离。记住一个基本原则,OS 是需要对硬件有最底层的控制的(例如必须运行在 CPU 的 Ring0)。两个 OS 想要平等地运行在一套硬件上,是不可能的。虚拟化无非是由 Hypervisor 在更底层控制了硬件(例如运行在 CPU 的 Ring -1),再交给上层 OS 去使用。
    blankmiss
        51
    blankmiss  
       2022-10-16 13:34:19 +08:00
    是不是虚拟机
    xinshidai
        52
    xinshidai  
       2022-10-16 15:19:05 +08:00
    现在的笔记本如果由两个硬盘, 是可以做到安装双系统的, 比如 windows10+Centos, 目前推荐都是用 uefi 启动模式,先安装 windows10, 安装成功后,拔掉 windows10 所在硬盘, 再安装 centos, 安装好后,插回 windows10 硬盘,在 bios 启动中把 centos 启动, 进入 centos, 执行 os-prober,会在当前 centos 所在的 boot 分区建立启动 windows10 的启动项, 这样就可以开机启动多系统了, 用这样的方法,可以做到开机启动若干不同的系统, 每个系统独立于一个硬盘. 其实也可以制作一个 u 盘,启动后后进入一个启动器, 专门扫描各硬盘上的系统, 然后选择启动. 目前只能启动切换,无法运行中切换, 能那种自由切换的,是专用系统.
    lurenjiaMAX
        53
    lurenjiaMAX  
       2022-10-16 17:24:59 +08:00 via Android
    我记得有人把树莓派内置到笔记本里面的.
    frank1256
        54
    frank1256  
       2022-10-17 09:30:00 +08:00
    你这个需求和我之前的需求差不多。我的实现是使用一个虚拟机操作系统+硬件直通实现的,系统我用的 unraid 。除了 CPU 和内存是虚拟化公用的,显卡与硬盘是直通,2 个装 windows 的 系统,打游戏用。物理机 90%的性能。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   930 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 22:11 · PVG 06:11 · LAX 14:11 · JFK 17:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.