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. SQL in查询字段为Guid拼接处理办法

    场景一:在我们写SQL脚本执行普通的Id 为Int,Long 类型查询为 譬如: select *from Table where id in (1,2,3); 场景二:SQL in 查询,当查询字段 ...

  2. 执行celery --version报错

    python 3.7.4安装celery后执行celery --version报错 安装命令: pip install celery -i https://pypi.douban.com/simple ...

  3. GuzzleHttp示例

    一般请求 $httpClient = new Client([ 'timeout' => 5 ]); $request = $httpClient->post("http://l ...

  4. 一些test短代码

    #include <stdio.h> int main(){ char ray_tx_pwr[2][3]={{1,2,3},{4,5,6}}; int i = 0; printf(&quo ...

  5. 我和Java这些年的故事(五)

    时光荏苒,我来到了IBM.和慕名已久的WebSphere Application Server(WAS)打起了交道. 之前我搞过Weblogic,对应用服务器的特性有了一定的了解.但WAS无疑更为庞大 ...

  6. el-scrollbar 饿了么滚动条不出现 bug

    el-scrollbar 饿了么滚动条不出现 bug 解决方法:el-scrollbar 的直接子元素样式需要设置为 display: inline-block;

  7. 加载Assetbundle

    using UnityEngine;using System.Collections;using UnityEngine.SceneManagement; /// <summary>/// ...

  8. java生成uniappKey

    1.首先检查下自己的电脑有无java环境,打开CMD 输入java -version,如果有安装会跟下图一样: 2.在cmd命令行中执行keytool -genkey -alias mhhk -key ...

  9. js常用遍历理解

    1.for循环用于数组的遍历循环. 2.for in 循环主要用于遍历普通对象,i 代表对象的 key 值,a[i] 代表对应的 value. 3.forEach循环 遍历数组中的每一项,没有返回值, ...

  10. openSUSE 播放使用VLC播放视频

    openSUSE 使用VLC播放视频 linux视频播放 为什么 通常我们在安装号vlc后,由于版权的原因,是无法获取视频的解码器的.我们需要下载第三方的解码器帮助我们进行解码. 过程如下: 添加pa ...