前情提要:家里有人见不得多台电脑。
实际场景:多个硬盘装 Windows 系统,启动时不同的用户选择对应的硬盘。
真实需求:启动时屏蔽别的硬盘(都是 nvme ,即 PCIe device ),避免误操作,各自相安无事。
找了一圈似乎修改 ACPI table 可行,但 Clover 貌似只能根据启动不同的 OS 来加载,而我两个不同的启动项都是 Windows ,需要对 ACPI table 做不同的修改。 有没有一种类似的东西,可以在不同的 entry 加载不同的 ACPI table ?
1
AoEiuV020JP 316 天前 via Android
真的有必要吗,家里人什么水平,
默认启动硬盘 A ,并在操作系统层面删除硬盘 B 的所有盘符,这样不够隐蔽?考虑硬盘 B 系统级全盘加密? |
2
kenvix 316 天前 1
你就不能在 Windows 里直接把硬盘脱机吗
|
3
PrinceofInj 316 天前
买两台小主机,放到一个盒子里,然后配个 KVM 切换器
|
4
zhdi 316 天前 via iPhone
linux 下可以直接添加一个 systemd 来关掉所在的 pci node ,或许 windows 下也可以通过 powershell 做到同样的事,这样理论上磁盘管理器就扫不到盘,日常用的磁盘工具也扫不到
|
5
datocp 316 天前 via Android
当年 grub for dos 在单硬盘上实现过,主要是划分三主分区装系统+1 逻辑分区,启动时屏蔽另外 2 主分区来实现启动 3 独立操作系统。
|
6
Tomss 315 天前
AB 两块硬盘分别安装 2 个 windows 同时各自生成启动引导(这个很重要),然后在 BIOS 直接设置默认启动 A 盘的引导,需要启动 B 盘的时候开机按 f12 (不同品牌不一样)进入启动项设置选择 B 盘不就可以了?
|
8
Damn OP @AoEiuV020JP
@kenvix @zhdi 目前找到一个折衷的方案。 开机的时候运行 devcon 或者 pnputil 来 disable-device 。尝试了一下 remove-device 没有成功不知为何。 |
9
waringid 314 天前
@PrinceofInj 这个最靠谱
|
10
since2021 314 天前
都是 windows 的话,在 ta 的系统里直接删除掉用不到的盘符就行啦
|
11
Damn OP @AoEiuV020JP
@kenvix @since2021 devcon 和 pnputil 失败,设备管理器里的 nvme 控制器或者硬盘驱动器都是没有办法禁用的,看起来只有删除盘符的选择了。 @zhdi Windows 似乎没有提供关闭 PCI node 的能力。 |
12
zhdi 313 天前 via iPhone
@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 但大概看了一下,这个貌似是直接卸载驱动,不知道能不能实现你想要的效果 |
14
busier 313 天前 via Android
@Damn 不能禁用引导盘(当前系统引导的 bootmgr 所在盘)和系统盘所在的 nvme 控制器和硬盘驱动器以及对应的 pci node ,非引导盘和系统盘还是可以禁用的。
|
15
busier 313 天前 via Android
如果你引导分区 efi bootmgr 在一块硬盘(并且是通过这个引导进入的系统),win 系统在另一个硬盘,那么两块硬盘,连同控制器,都不能禁用。
|
16
Damn OP @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/) |
18
Damn OP |
19
busier 313 天前 via Android
先用设备管理器 把查看改成 按连接列出 测试下禁用
|