启动时如何选择性地屏蔽 nvme 硬盘?

2024-01-10 20:38:16 +08:00
 Damn

前情提要:家里有人见不得多台电脑。

实际场景:多个硬盘装 Windows 系统,启动时不同的用户选择对应的硬盘。

真实需求:启动时屏蔽别的硬盘(都是 nvme ,即 PCIe device ),避免误操作,各自相安无事。

找了一圈似乎修改 ACPI table 可行,但 Clover 貌似只能根据启动不同的 OS 来加载,而我两个不同的启动项都是 Windows ,需要对 ACPI table 做不同的修改。 有没有一种类似的东西,可以在不同的 entry 加载不同的 ACPI table ?

1478 次点击
所在节点    问与答
20 条回复
AoEiuV020JP
2024-01-10 21:08:58 +08:00
真的有必要吗,家里人什么水平,
默认启动硬盘 A ,并在操作系统层面删除硬盘 B 的所有盘符,这样不够隐蔽?考虑硬盘 B 系统级全盘加密?
kenvix
2024-01-10 21:51:36 +08:00
你就不能在 Windows 里直接把硬盘脱机吗
PrinceofInj
2024-01-10 22:05:31 +08:00
买两台小主机,放到一个盒子里,然后配个 KVM 切换器
zhdi
2024-01-11 02:19:43 +08:00
linux 下可以直接添加一个 systemd 来关掉所在的 pci node ,或许 windows 下也可以通过 powershell 做到同样的事,这样理论上磁盘管理器就扫不到盘,日常用的磁盘工具也扫不到
datocp
2024-01-11 04:30:42 +08:00
当年 grub for dos 在单硬盘上实现过,主要是划分三主分区装系统+1 逻辑分区,启动时屏蔽另外 2 主分区来实现启动 3 独立操作系统。
Tomss
2024-01-11 11:05:52 +08:00
AB 两块硬盘分别安装 2 个 windows 同时各自生成启动引导(这个很重要),然后在 BIOS 直接设置默认启动 A 盘的引导,需要启动 B 盘的时候开机按 f12 (不同品牌不一样)进入启动项设置选择 B 盘不就可以了?
Damn
2024-01-11 12:37:48 +08:00
@Tomss 你这个是基本且必要的操作。
但开机后能访问到非启动盘。
我想要的效果是启动后只能操作当前系统所在的硬盘,无法操作别的硬盘。
Damn
2024-01-11 12:40:25 +08:00
@AoEiuV020JP
@kenvix
@zhdi 目前找到一个折衷的方案。
开机的时候运行 devcon 或者 pnputil 来 disable-device 。尝试了一下 remove-device 没有成功不知为何。
waringid
2024-01-12 08:49:15 +08:00
@PrinceofInj 这个最靠谱
since2021
2024-01-12 09:14:26 +08:00
都是 windows 的话,在 ta 的系统里直接删除掉用不到的盘符就行啦
Damn
2024-01-12 13:18:06 +08:00
@AoEiuV020JP
@kenvix
@since2021 devcon 和 pnputil 失败,设备管理器里的 nvme 控制器或者硬盘驱动器都是没有办法禁用的,看起来只有删除盘符的选择了。
@zhdi Windows 似乎没有提供关闭 PCI node 的能力。
zhdi
2024-01-13 11:16:05 +08:00
@Damn 刚查了一下,或许可以尝试一下 disable-pnpdevice ,配合 get-pnpdevice 用,链接如下

https://learn.microsoft.com/en-us/powershell/module/pnpdevice/?view=windowsserver2022-ps
另外还有 devcon 可以尝试一下

https://learn.microsoft.com/en-us/windows-hardware/drivers/devtest/devcon-disable
但大概看了一下,这个貌似是直接卸载驱动,不知道能不能实现你想要的效果
zhdi
2024-01-13 11:19:17 +08:00
@Damn sry 没看到 devcon 失败了,试一下 disablepnpdevice 吧
busier
2024-01-13 16:52:59 +08:00
@Damn 不能禁用引导盘(当前系统引导的 bootmgr 所在盘)和系统盘所在的 nvme 控制器和硬盘驱动器以及对应的 pci node ,非引导盘和系统盘还是可以禁用的。
busier
2024-01-13 16:58:50 +08:00
如果你引导分区 efi bootmgr 在一块硬盘(并且是通过这个引导进入的系统),win 系统在另一个硬盘,那么两块硬盘,连同控制器,都不能禁用。
Damn
2024-01-13 17:03:46 +08:00
@zhdi
@busier
sata 盘可以在 Windows 里面禁用 sata 控制器,但 nvme 好像真的没什么好办法。disablepnpdevice 也是失败的。
应该是 Windows 设计成这样了,搜到一个:
Generally you can't disable PCIE/add-in card devices which nvme drives are considered.
( https://hardforum.com/threads/can-i-disable-nvme-slot.2018114/)
Damn
2024-01-13 17:04:42 +08:00
@busier 并不,我两块盘都是独立的 os ,并且我还有第三盘,上面没有 os ,也无法禁用的。
Damn
2024-01-13 17:08:22 +08:00
@zhdi
@busier 而且操作的时候无论是"SCSI\DISK&VEN_NVME&PROD*********",还是"PCI\VEN_****&DEV_**********",都是一样的结果。
busier
2024-01-13 17:37:21 +08:00
先用设备管理器 把查看改成 按连接列出 测试下禁用
zhdi
2024-01-13 18:08:22 +08:00
@Damn 那就不清楚了,我的 windows 只用来打游戏,对 windows 没啥了解(

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://tanronggui.xyz/t/1007620

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX