新入一台 MBP,硬盘 256G 的仅用 MacOS 有点浪费,使用 Bootcamp 安装了 新版 Win10。用来做 日常的开发。
装好系统,又发现新问题了。Windows 2008 IIS 中的 PHP 设置,在 web.config 设置的,PHP安装在D盘,而通过 Bootcamp 安装好系统 只能有 一个 分区。
尝试分区时 发现 了 VHD,创建虚拟磁盘 后 实现了 Macbook Pro 通过 Bootcamp 增加多个分区的功能。
具体操作方法如下:
1、找到 磁盘管理,右键创建 VHD
2、选择 存放位置,磁盘大小。虚拟格式选择 VHD,虚拟磁盘类型选择 固定大小。动态扩展会产品大量碎片,影响性能。
3、等待创建 完毕,选择 固定大小会有点慢。可以看到 创建了 对应的虚拟磁盘文件。
4、创建完毕后,就可以像 正常的磁盘一样分区了。
5、分区完毕后,即可 看到新增加的 磁盘(比如:D盘)
6、重装系统或备份时,可以 分离VHD,保存到 移动硬盘 备份。
这样还有个缺点,重启系统后,需要重新挂载(数据不会丢失)。百度搜索后,发现可以通过diskpart.exe挂载。
之前配置 windows 下 Nginx 用到了 winsw.exe,我用winsw.exe 配置了一个 vdisk-service-mqycn 的服务,可以在Windows系统启动时自动运行,支持多个虚拟磁盘。点击下载
使用方法非常简单,已经建好 Data.vhd 和 Web.vhd 的磁盘模板, 解压后放到:C:disk,右键以管理员身份执行,即可自动安装到系统服务。每次开机自动运行。也可以参考 上面的步骤 1-6,手工创建更多 虚拟磁盘,点启动 虚拟磁盘自动挂载服务,会自动加载 C:diskvdisk 目录下的所有虚拟磁盘。
如果 不想安装服务,也可以 通过 mAIn.cmd 手工 挂载 和 卸载。
核心的批处理脚本如下:
@echo off set temp_file=C:disklogconfig.txt if "%1"=="" goto exit if "%1"=="service" goto main2 if "%1"=="mount" goto main if "%1"=="unmount" goto main if "%1"=="config" goto config :main2 call %0 unmount call %0 mount goto exit :main cd %~dp0 if "%2"=="mount" ( echo 挂载虚拟磁盘中... ) else ( echo 卸载虚拟磁盘中... ) echo.>%temp_file% for /r %%d in (vdisk*.vhd) do call %0 config %1 %%d echo exit>>%temp_file% diskpart /s %temp_file% %2>nul del %temp_file% echo 执行完毕 goto exit :config echo 发现 %3 ... echo select vdisk file=%3>>%temp_file% if "%2"=="mount" ( echo attach vdisk>>%temp_file% ) else ( echo detach vdisk>>%temp_file% ) echo.>>%temp_file% goto exit :exit