1. 目的

目前win10磁盘分区多数人采用两种方式:

1:只分一个C盘,文件在C盘以目录区分。

缺点:所有文件都在一起,区分查找比较麻烦。

2:物理分区,分多个盘,如C,D,E等等

缺点:容量固定,配置后无法修改,可能出现磁盘空间不够,容易引起文件目录碎片化。

偶然间发现新的方式,在C盘的基础上,可以虚拟出D,E...等磁盘。虚拟出来的盘可以相当于物理分区一样使用,所有虚拟磁盘和映射目录的磁盘共享容量。

贴一张效果图:(实际上我只有1个1T的SSD固态)

2. 原理

window的subst命令可以创建虚拟磁盘,并将目录映射到虚拟磁盘

subst 虚拟磁盘盘符  物理磁盘符:路径

例如,将C盘的C:\D目录映射为D盘,将C盘的C:\E目录映射为E盘

打开cmd控制台,执行:

> subst  D C:\D
> subst E C:\E

问题:

上面方式存在以下问题,每次重启后,虚拟磁盘映射消失。

下面使用注册表方式,解决重启映射消失问题。

3. 操作步骤

以1T硬盘为例子演示整个操作过程。

  1. 格式化整个硬盘并安装WIN10系统到整个硬盘

    完成后,系统只存在一个C盘,容量大小为1T。

  2. 在C盘创建映射目录,映射目录名为D,E...

    完成后,可以顺利访问 C:\D路径 和 C:\E路径

  3. 修改映射目录属性, 隐藏映射目录

    打开cmd控制台,执行Dos命令,设置 C:\D 目录和 C:\E 目录为隐藏系统目录

    > attrib +S +H C:\D
    > attrib +S +H C:\E

    查看帮助使用 attrib /?

  4. 创建注册表文件并执行,配置虚拟磁盘映射

    创建 make_subst.reg 注册表文件,内容如下:

    Windows Registry Editor Version 5.00
    
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\DOS Devices]
    "D:"="\\??\\C:\\D"
    "E:"="\\??\\C:\\E"

    注意: 路径中的每个反斜杠都要加倍,\\?? 是NT对象管理器名称空间中的虚拟目录, 需要保留.

    双击执行 make_subst.reg

  5. 重启操作系统

    重启之后,可以发现多了 D盘 和 E盘两个驱动器,这两个驱动器的容量和C盘一样,都是1T大小,并且映射在C:\D和 C:\E目录。C,D,E这3个驱动器共享空间大小。新映射出来的D和E虚拟磁盘可以和普通的物理分区一样使用。

批处理文件

创建make_virtual_hdd.bat批处理文件并执行

@echo off

:: 管理员权限
@%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit
@cd /d "%~dp0" cls
:again echo *************************************************************************************
echo ***** 批处理程序,用于创建并映射虚拟磁盘到新的盘符 ********
echo ***** 帮助: ********
echo ***** 1. 启动make_virtual_hdd.bat脚本 ********
echo ***** 2. 输入新映射的磁盘盘符。(如 D,E,Z等等) ********
echo ***** 3. 重启系统后生效 ********
echo ***** 注意:新映射的盘符必须未被目前系统使用 ********
echo ***** 例如:启动批处理后,输入Z,重启后系统多出一个虚拟磁盘Z,容量与C盘共享 ********
echo ************************************************************************************* echo.
set /p hdd=请输入需要创建的磁盘盘符: :: 转换大小写
for %%i in (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) do call set hdd=%%hdd:%%i=%%i%% :: 判断磁盘是否存在
if exist %hdd%: (
echo 已经存在%hdd%盘,无法映射虚拟磁盘
goto END
) :: 判断目录是否存在
IF EXIST C:\%hdd% (
echo 已经存在C:\%hdd%目录,无法映射虚拟磁盘
goto END
) :: 创建目录
echo 1. 正在创建目录 C:\%hdd%
md C:\%hdd%
attrib +S +H +R C:\%hdd% :: 设置目录图片
echo [.ShellClassInfo] >> C:\%hdd%\desktop.ini
echo IconResource=C:\Windows\System32\SHELL32.dll,273 >> C:\%hdd%\desktop.ini
echo [ViewState] >> C:\%hdd%\desktop.ini
echo Mode= >> C:\%hdd%\desktop.ini
echo Vid= >> C:\%hdd%\desktop.ini
echo FolderType=Generic >> C:\%hdd%\desktop.ini
attrib +S +H C:\%hdd%\desktop.ini ::添加注册表
echo 2. 正在注册虚拟磁盘驱动器
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\DOS Devices" /v "%hdd%:" /d "\??\C:\%hdd%" /f echo 虚拟磁盘驱动器%hdd%映射完成。请立即重启,重启后配置生效。 :END
pause

win10系统格式化后进行虚拟分区的更多相关文章

  1. win10系统格式化、恢复出厂设置的操作步骤

    恢复电脑出厂设置具体步骤

  2. win10 系统亮度调节

    win10系统发行后,许多用户尝试新的系统发现安装之后亮度无法调节,我也多次遇见此情况 故在此记录修改方式: 打开注册表 -> 搜索键值featuretestcontrol -> 修改键值 ...

  3. win10系统磁盘占用率高的解决方法,占用100%的问题

    win10系统开机后明明什么都没做,磁盘占用率却只见飙升到了100%,出现这种情况是win10自带的服务导致的.下面的方法可以解决win10系统磁盘占用率高问题. 1.按下Win+R,然后输入serv ...

  4. 关于win10系统安装VMware12Pro后,win10系统的 控制面板\网络和 Internet\网络连接\更改适配器选项卡中 没有虚拟网卡VMnet1和VMnet8图标,该如何把他们显示出来呢?

    安装VMware12Pro后,PC主机通过命令行:ipconfig/all ,查看发现没有VMnet1和VMnet8. 然后我首先尝试打开VMware12Pro的虚拟网络编辑器: 然后先点击" ...

  5. 重装系统win10教程(激活系统、office下载、分区)

    看见有很多小白不知道怎么重装系统,故而在此特别做一个详细教程,大家按照教程做就可以了,也不用去电脑店浪费钱重装系统,在此安装的win10系统,现在win10系统已经是最好的Windows系统了,如果没 ...

  6. Linux系统格式化新磁盘并挂载分区

    Linux系统格式化新磁盘并挂载分区 在虚拟机的设置界面中,我们可以选择添加硬盘 添加好硬盘后,我们输入命令fdisk -l 看到有一个未经分区的硬盘 Fdisk命令编辑这个硬盘 输入n创建分区,p选 ...

  7. 解决升Win10系统后VMware虚拟机不能联网的问题

    刚升级到Win10系统,打开虚拟机发现不能联网,其实是系统服务项里缺少两个用到的服务,不能联网了,下面教大家解决联网问题. 1.打开VMware虚拟机主页,点击“编辑——虚拟网络编辑器”. 2.点击左 ...

  8. Win10系统,开机后提示Desktp不可用的故障解决方法。

    WIN10桌面位置不可用的故障解决方法 今天电脑开机 (Win10系统).桌面空了,然后就蒙了. 系统并弹出以下框,如下图: 原因可能是因为昨天晚上熬夜测试脚本.网上下载的脚本大多都是有毒的.但是人懒 ...

  9. 【win10系统问题】远程桌面登录一次后,第二次登录看不到用户名和密码输入框

    [win10系统远程桌面登录问题] 远程桌面登录某服务器一次后,第二次登录看不到用户名和密码输入框 [解决方法] 在注册表里找到该路径下的远程服务器ip,删除即可: HKEY_CURRENT_USER ...

  10. win7、win10系统电脑开机后小键盘灯不亮怎么办?

    摘自:https://www.pconline.com.cn/win10/1113/11136072.html win7.win10系统 电脑开机后小键盘灯不亮怎么办?这是不少用户最近都在反馈的问题. ...

随机推荐

  1. python方法、类方法和静态方法的区别

    class A: def f1(): pass def f2(self): pass @classmethod def f3(cls): pass @staticmethod def f4(): pa ...

  2. Linux 使用Nginx部署web项目

    https://blog.csdn.net/weixin_43233914/article/details/126483734

  3. Python下使用argparse模块的脚本参数配置

    python的一个用于命令行参数解析的模块,其专业解释已经有很多了,可以去详查,不做赘述,仅谈谈自己的一些理解. 为什么要用argparse模块来为代码导入参数或者文件路径呢?如果是一个简单的项目,输 ...

  4. FME视频教程

    FME视频教程 分为三种 10分钟 2011 2012

  5. 让你深夜emo的“网抑云”,是如何做产品设计的?

    网易云音乐作为国内首个以"歌单"为核心架构的音乐APP,有的人喜欢它的热评,有的人却觉得它的版权太少,虽然网易云音乐不是曲库最丰富的听歌软件,但绝对是听歌软件里情感体验最好的. 我 ...

  6. GSON 特殊类型支持序列化和反序列化,如LocalDateTime

    GSON 特殊类型支持序列化和反序列化,如LocalDateTime DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern ...

  7. Jmeter(三十九) - 从入门到精通进阶篇 - Jmeter配置文件的刨根问底 - 上篇(详解教程)

    ------------------------------------------------------------------- 转载自:北京-宏哥 https://www.cnblogs.co ...

  8. git添加github和gitee多个git地址管理

    1.git init //初始化当前的git地址 2.git remote add github github.com //git remote add git标识 git地址 3.git pull ...

  9. 38.Ribbon

    Ribbon默认是懒加载,所以初次请求时间最长,后续请求会变快,可以通过修改为饥饿加载 ribbon.eager-load.enabled=true ribbon.eager-load.clients ...

  10. 三种方式实现RPC调用

    一:RabbitMQ实现RPC调用 客户端: import pika import uuid class FibonacciRpcClient(object): def __init__(self): ...