Junctions can point to any NTFS folder, no matter on what disk is the source versus the target.
Since WinXP Junctions works with any directly connected NTFS partitions, no matter if they are on the same disk or on different diks.
So having a junction is the best solution (symbolic can cause some problems).
I use it a lot to do this:
- Have some "virtual" folders on System partition (normally it is C:) that point to a folder on a partition on a USB disk (SSD, HDD, pendrive, memory card, etc).
So i can have some applications data on external media, and have only one copy for more than one PC, so no need to do a sync, etc. Of course only one PC will see it at the same time.
Also junctions can point to a folder on a NTFS partition that is encrypted by veraCrypt, etc.
Junctions only need three things:
- Source partition be a NTFS
- Destination partition be a NTFS
- Both partitions be local (physical connected to the PC)... this is not allways a need, there are some tools that let you put a FTP as a local drive and be seen it as a NTFS, so junctions can be created to point to that
What i mean is that junction need to see the source and target be inside a NTFS partition.
- For XP use the SysInternals tool called
junction
, link: TechNet Junction Download.
- For 7 to 10 use the native tool
mklink
with /j
parameter.
Both are command line tools and most of the times requires admin rights.
Juntions are the easiest way, but not the only one:
- You can use a NTFS partition mounted on a NTFS folder on different disks
- You can create a VHD /VHDX file (XP and Vista requieres a tool, 7 to 10 do it native on disk managment), create one or more partitions inside it and mount them on any NTFS folder
- etc
The trick of VHD / VHDX also lets you use dynamic storage, so no need to worry about GiB of size:
- Create the VHD / VHDX in dynamic mode (not all size assigned to the virtual disk will be the size of the file) and give it as much as you want (VHD is limited to a little less than 2TiB, VHDX limit is 64TiB), but create it on a NTFS, since FAT32 limits the file size to less than 4GiB.
- Initializate the virtual disk as MBR or GPT (depends on what you want, MBR does not support more than 4 primary partitions and is limited to a little less tha 2TiB, GPT is limited to 8ZiB, but Windows XP can not see GPT drives), see more info about that limits on Wikipedia: en.wikipedia.org/wiki/GUID_Partition_Table
- Partition the virtual disk as you want
- Give format NTFS to the partition you want
- If you need to move data on one folder (the one you want to be somewhere else) temporally mount that new partiton as any letter, move the data to it and dismount it... but do not delete the folder from where you moved the contents.
- Mount that partition over that folder
And $MFT have a trick to be as small as possible (very important if you create big, really big NFTS partitions to hold ISOs, etc... less than 1000 files of really big size each one):
- The basics of this is to have initial $MFT size as small as possible
- $MFT will grow if you put more files and it has not enough space, so do not be afraid of not been able to add files
- It is a normal native way of creating the partition, with no risk at all
- There is no motive (i can see) to not create all NFTS partitions this way
The procedure is quite simple:
- Create the partition with only 8MiB (yes megabytes, not giga, etc), the less size to create a normal NTFS... NTFS can be of less size, but it will do strange things since it is not a fully NFTS.
- Grow it to the real size you want
Theese steps makes one thing:
- When partition is created, the $MFT is really small (since partition is only 8MiB in size)
If you create the partition with the full size you want, the $MFT will be (by default and as lees as possible) of 12.5% of the partition size; and i do not know any method to reduce that percent, neither to reduce $MFT size after been created; that percent can be greater touching NtfsMFTZoneReservation registry key on some windows, but never be less... so by creating a partition of only 8MiB, the $MFT initial size will be very little.
You can check how $MFT space is reserved on Microsoft site:
How NTFS reserves space for its Master File table (MFT)
Growing a NTFS partition size does not touch the $MFT size... so to have a huge NTFS partition with as less as possible $MFT size, create the partition as only 8MiB and grow it to desired size after creation.
That is great for having a dynamic VHD / VHDX, beacuse it will not use all that $MFT space for nothing... i mean:
- If you create a NTFS of 8MiB (do not forget to do a it in quick format mode) and grow to 1.5TiB, the file VHD / VHDX holding it will be smaller, much smaller
- If you directly create a 1.5TiB partition inside the VHD / VHDX, the file VHD / VHDX holding it will be bigger, much bigger
Test done in Windows 10 Home 64Bits:
- Dynamic VHD of 1.8TiB with one NTFS partition created (with quick format) of 8MiG and growed to 1.5GiB ... VHD size is: 15.6MiB
- Dynamic VHD of 1.8TiB with one NTFS partition created (with quick format) of 1.5GiB ... VHD size is: 107MiB
See, it is ten times greater. I know it is not much talking about a hundred of megabytes... but if you use a lot (some thousand of them) of VHD / VHDX files, that size can matter a lot, if one thousand of such files, that would be near 100GiB. Also with VHDX and sizes of ZetaBytes it is really huge such difference.
Note: I talk about disk size of 1.8TiB just to ensure i can create an identical partition of exact size of 1.5TiB (1572864 MiB)... if you put disk size of X, partition will be less than X.