Configure Surface to use MicroSD as Primary Storage

So after about a week of excitement and playing around with features I decided it was time to start optimizing and making this thing run the way I wanted it to. The first thing I noticed was that I cannot use my SD card with my Libraries; so all my apps are going to by default save to the local SSD which is far from what I want. I knew there had to be a way around this so I started digging in. I feel I finally have it to the point where others should be doing the same thing and once it’s done you can forget about it.

  • Create a VHD and save it on the SD card
  • Create directories on this VHD for your specific libraries
    • Documents
    • Music
    • Video
    • Pictures
  • Configure the libraries
  • Enable Indexing on the VHD – This is important because the Photos app will not work right without it
  • Have a script automatically Attach the VHD on Boot

If you would like to know exact steps to take please continue reading.

Creating a VHD

  1. Open Charms Menu (Swipe in from right side of screen)
  2. Click Settings
  3. Click Tiles
  4. Change “Show administrative tools” to Yes
  5. Swipe from bottom of screen
  6. Click All apps
  7. Under “Administrative Tools” click Computer Management
  8. Click “Disk Management”
  9. Click “Action”
  10. Click “Create VHD”
  11. Browse to the SD Card’s storage and name the VHD whatever you want
  12. Allocate as much of the SD’s storage you want to this VHD,
  13. You can decide between Fixed or Dynamically expanding. I personally went with Dynamically expanding.
  14. Find the newly created disk in the lower panel, should be “Disk 2″
  15. Right click where it says “Disk 2″
  16. Click “Initialize Disk”
  17. Click OK
  18. Right click “Unallocated”
  19. Click “New Simple Volume…”
  20. Click “Next >”
  21. Click “Next >”
  22. Select the Drive letter you want (can be anything)
  23. Click “Next >”
  24. Name the Volume whatever you want
  25. Click “Next >”
  26. Click “Finish”

Create/Configure Library Directories on VHD

  1. Click the “Libraries” icon from the “Task Bar”
  2. Single click “Documents”
  3. Click “Manage under “Library Tools” from the ribbon
  4. Click “Manage library”
  5. Click “Add”
  6. Browse to the newly Attached VHD you just created
  7. Click “New Folder”
  8. Name it whatever you want (Eg: Documents)
  9. DO NOT OPEN THE FOLDER, select the folder and click “Include folder”
  10. Remove the Default Personal folder
  11. Click OK
  12. Click “Set save location”
  13. Select the newly created folder
  14. Repeat steps 1-13 for the following
    1. Music
    2. Pictures
    3. Videos

Enable Indexing on VHD – Very Important

  1. Open the “Charms Menu”
  2. Click “Search”
  3. Type “Indexing Options”
  4. Click Settings
  5. Open “Indexing Options”
  6. Click “Modify”
  7. Select the newly Attached VHD
  8. Click OK
  9. Click Close

Create Script to Auto Attach on Startup

  1. Open PowerShell as an Administrator
  2. Type “Set-ExecutionPolicy RemoteSigned”
  3. Press Enter
  4. Type “y”
  5. Press Enter
  6. Click Computer from the navigation bar on the left of the Libraries folder
  7. Open the C: Drive
  8. Create a new folder named “PoSH”
  9. Double click the new folder
  10. Right click in the white area and navigate to “New > Text Document”
  11. Name it Auto-Mount.ps1
  12. Open the new file with Notepad
  13. Paste the below code in, don’t forget to modify the red text to the path you saved the vhd file at
    1. “Mount-DiskImage D:\YourVHD.vhdx”
  14. Open the “Charms Menu”
  15. Click “Search”
  16. Type “Task Scheduler” and open it
  17. Click “Task Scheduler Library”
  18. Click “Action”
  19. Click “Create Task…”
    1. General Tab
      1. Name: Attach SD VHD
      2. Location: \
      3. Description: This is the Task that is going to automatically attach the VHD file on the SD card on system boot.
      4. “Click Change User or Group…” type in SYSTEM
      5. Check “Run with highest privileges”
    2. Triggers Tab
      1. Click “New…”
      2. Begin the task: At startup
      3. Click OK
    3. Action Tab
      1. Action: Start a program
      2. Program/script: C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
      3. Add arguments: C:\PoSH\Auto-Mount.ps1
      4. Click “OK”
    4. Conditions Tab
      1. Under Power uncheck “Start the task only if the computer is on AC power
      2. Click “OK”
  20. Have fun testing, I recommend opening the Camera app and taking some pictures, making sure it index the new ones, try adding music to the folder make sure it shows up in the music app, same thing for Video app.

Update 12-30-2012: Thank you Don for reminding me you need to set the execution policy on the machine first.

Be Sociable, Share!
Leave a comment ?

84 Comments.

  1. SAVE 4GB ON YOUR C:\ DRIVE

    After doing this–many thanks–I thought I might add a few suggestions for others about how to free up additional space on the C: drive. For me, this ended up saving about 4 GB on my C: drive.

    (1) Use webroot as your anti-virus software. After realizing symmantec was taking up >1GB, I read this review and switched. Good rating, low disk space needs… http://www.pcmag.com/article2/0%2c2817%2c2470317%2c00.asp

    (2) Move your Microsoft indexing file to your new SD card drive. This was about 2GB. http://windows.microsoft.com/en-us/windows7/change-advanced-indexing-options#

    (3) Move your outlook data file to the your new SD card drive. Even configuring outlook to only cache 3 months of email, I still have a >1GB data file. https://support.microsoft.com/en-us/kb/2752583

  2. I found this page more than a week ago, looking for a way to get Dropbox to accept a director on an SD Card on my Surface Pro 3. I followed the directions and it worked great. Today while another application was writing data to a Dropbox folder, the mount was dropped and both applications died. :sad: The virtual disk no longer mounts on boot, and when I go into PowerShell and try to mount it manually, I get a permission denied error (FullyQualifiedErrorId : HRESULT 0x80070005,Mount-DiskImage).

    I haven’t played with virtual drives before. Any ideas on where to go next?

  3. You’re an angel Matt!!! It’s exactly what I need… And the step-by-step is perfect… Clean…

    Thanks a lot!

  4. Absolutely awesome. Thank so much for taking time to document all this. Just did my XPS 18 and it worked fine.

    Here are a couple of things noted about my process:
    Under “Create a VHD”, item 10 – “Create VHD” was disabled. I finally figured out I had to select a drive to enable it.
    Creating the VHD took about 20 minutes, probably because I’m using a 128gig SDXC. I hit Refresh and was wondering where Disk 2 was until I saw “Creating Virtual Disk…” in the status bar.
    I assume it’s okay to close Powershell and Notepad now? :)
    Under “Create a Script…” item 13 – not being a Powershell user, I followed your instructions to the letter. Or, number. You could make that instruction clearer if you said, “Paste in the text between the quotes below”. On my first attempt I gave the script the number 1, period, quotes and all. But hey, I was expecting the error. I just had to be sure. :)

    So, thanks so much! Two years later we’re still benefitting from your guidelines.

    • Thanks for the feedback. To this day I never expected this blog post to be so popular. I even reference it fairly frequently and I’m thrilled that it has helped so many other people!

  5. hi
    i’ve the same problem as Joe…
    on my Surface Pro with win 8.1! I followed each step exactly as you’ve laid it out, so I don’t know what the issue could be.
    Task Scheduler says that the operation completed successfully, but the VHD still isn’t mounted. When I try to run “Mount-DiskImage D:\Libraries.vhdx” in Powershell as Administrator to test it out, it tells me “Mount-DiskImage: Access is denied.” followed by some other text that I don’t really understand. I’m sure that this is the problem but I don’t know how to fix it. Anything that you can think of that might cause this to happen?

  6. Create a Custom Recovery Image - pingback on January 20, 2014 at 11:32 pm
  7. Micro SD card appear as a real drive to install DropBox etc - pingback on January 18, 2014 at 1:59 pm
  8. I have so many different methods of accomplishing this task and read more “That didn’t work when I tried it” comments than seems normal.
    Having tried multiple times I finally came across a post that had it RIGHT…and almost as important – SIMPLE. I wish I had made a note of the site but I was using a friends Ultrabook -so my apologies (and thanks) to the original creator.

    Set up automatic mounting on system startup. -Win+W, type Schedule Tasks, enter. In the tree on the left side,click on “Task Scheduler Library”
    -From the “Actions” pane, click on “Create Task”
    Enter “mount D:\disk.vhd” (or anything you’d like) as the task name. Likewise description is optional -Select “Run whether user is logged on or not” Check “Run with highest privileges” -In Triggers tab, click New, select “At startup” and press OK.
    -In Actions tab, click on New. Select “Start a program” as Action. In program/script, put “C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe.”
    In add arguments, write exactly
    “-command “mount-diskimage D:\disk.vhd””
    -In Conditions tab, uncheck everything. Press OK
    Enter your Windows password and press OK. That’s it!
    Restart the system and see if your new drive is visible after login.

    Set up Windows Indexing.
    Win+W, type Indexing Options, enter Click on modify, check the new vhd drive (probably E).
    OK, Close.
    You can now create folders in the mounted vhd and add them to library.
    I hope this help everyone else as much as it did me!

Leave a Comment


NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

Trackbacks and Pingbacks: