Windows下使用Diskpart隐藏磁盘及其他
问题背景
每次用windows to go在mac上跑,使用bootcamp装好驱动后D盘总是消失。在磁盘管理里重新设置盘符之后可以正常使用,但是重启之后又没了。对于习惯尽可能把软件装在D盘里的我来说很不方便,所以在查阅资料后找到了解决方法。
吐槽
网上很多使用diskpart的教程要么就是过期的,要么就是不知道哪里搞来的假教程,什么set id之类的全是假的,我搜索了好久,每次不是提示:
DISKPART> set id=07 override
指定的类型的格式不正确。
有关此命令类型的详细信息,请使用 HELP SET 命令
就是
DISKPART> set 07 override
为此命令指定的参数无效。
有关此命令类型的详细信息,请使用 HELP SETID 命令
还有设置注册表之类的,我对直接修改注册表向来是比较抵触的,因为随便修改底层的、自己完全不了解的东西是需要冒着极大的风险的,而且看着网上残次不齐抄来抄去的同一篇教程总是很不放心。
结论
win+R
开启cmd
- 命令提示符中输入
diskpart
将得到一个新的命令行窗口(此步骤可能需要获得管理员权限) - 使用
list disk
显示磁盘列表
DISKPART> list disk
磁盘 ### 状态 大小 可用 Dyn Gpt
-------- ------------- ------- ------- --- ---
磁盘 0 联机 233 GB 0 B *
* 磁盘 1 联机 472 GB 0 B *
- 使用
select disk
选择需要的磁盘
DISKPART> select disk 1
磁盘 1 现在是所选磁盘。
- 使用
list volume
显示分卷列表
DISKPART> list volume
卷 ### LTR 标签 FS 类型 大小 状态 信息
---------- --- ----------- ----- ---------- ------- --------- --------
卷 0 EFI FAT32 磁盘分区 300 MB 正常 已隐藏
卷 1 C NTFS 磁盘分区 200 GB 正常 启动
卷 2 D exFAT 磁盘分区 271 GB 正常
卷 3 FAT32 磁盘分区 350 MB 正常 系统
- 使用
select volume
选择分卷列表
DISKPART> select volume 2
卷 2 是所选卷。
- 使用
detail volume
显示分卷信息
DISKPART> detail volume
磁盘 ### 状态 大小 可用 Dyn Gpt
-------- ------------- ------- ------- --- ---
* 磁盘 1 联机 472 GB 0 B *
只读 : 否
隐藏 : 否
没有默认驱动器号 : 否
卷影副本 : 否
脱机 : 否
BitLocker 已加密 : 否
可安装 : 是
卷容量 : 271 GB
卷可用空间 : 84 GB
- 使用
attribute volume set hidden
来隐藏分卷,此时可以看到D盘(在我这里是D盘)在计算机中消失
DISKPART> attribute volume set hidden
卷属性设置成功。
- 使用
attribute volume clear hidden
来显示分卷,此时可以看到D盘重新显示
DISKPART> attribute volume clear hidden
卷属性清除成功。
更进一步
- 顺便提一句,只读属性使用
readonly
字段设置,设置了只读之后除格式化外任何修改磁盘的操作会提示该卷被写保护。 diskpart
还可以进行磁盘管理中可做的对磁盘的任何操作,比如分卷、扩展等,功能还更多(我怀疑自带的磁盘管理底层用的就是diskpark)
又是吐槽
windows的命令行提示真的做的和屎一样,可设置的属性字段各种help的都不提示,可能对于英文用户来说这些属性可能是显而易见用英文标识的,但对于中文用户还要在不同的同义词中去猜程序具体使用的是哪一个。如果不能像 attribute volume set 隐藏
这样使用中文来输入命令,要么就加上英文字段,要么就干脆不要翻译,反正一般人也不会用这些命令。
Windows自带的磁盘管理底层确实用的就是diskpark,可以在事件查看器中看到磁盘管理调用diskpart时的日志。
diskpart应该是Windows内核提供的服务(猜测),当diskpart工作时使用的并不是diskpart进程而是system(还是猜测,进行一些io操作时可以在任务管理器中看到System进程的高占用)