Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

dannys1

macrumors 68040
Original poster
Sep 19, 2007
3,997
7,574
UK
Hi guys,

On my old iMac I used to have a separate 2tb drive before "Fusion drives" become a thing with an SSD for system files.

I now going to roll my own Fusion with Apples 256gb SSD and a G-tech G-Raid 4tb Thunderbolt external.

So far so good, the problem is I have a number of files on the seperate drive that were installed as part of installers, most to a new shared users folder. Does anybody know of a way to simply move these to a new single drive and update locations?

I mean I can't symlink from a location that doesn't exist anymore. I'm assuming its not possible and as each piece of software asks for the location of things i'll just have to update them - but maybe i've missed out on a utility which searches preference files for a location that no longer exists anymore and updates them to a new one? (wishful thinking!)
 
... I mean I can't symlink from a location that doesn't exist anymore. ...

That's true, but you can create a new directory at that location, and put symlinks there.

For example, let's say your external drive was named "Groucho". When it was an external drive, it would normally mount automatically at this location (pathname):
Code:
/Volumes/Groucho

Suppose your folder of apps on Groucho is named "Bucket", and it's located directly on the Groucho volume. When the disk is mounted, then, that folder's pathname will be:
Code:
/Volumes/Groucho/Bucket

Within that folder let's say you have two apps, named Laurel.app and Hardy.app. Their pathnames will be:
Code:
/Volumes/Groucho/Bucket/Laurel.app
/Volumes/Groucho/Bucket/Hardy.app

All of this is the state of affairs BEFORE creating the fusion drive.


After creating the fusion drive, you want to create a new directory here:
Code:
/Volumes/Groucho/Bucket
You can do this in Finder or using a single line in Terminal.app:
Code:
mkdir -p /Volumes/Groucho/Bucket
I don't think you'll need 'sudo' on that, as I think the permissions on "/Volumes" allow public write.

You then create symlinks in that directory for:
Code:
/Volumes/Groucho/Bucket/Laurel.app
/Volumes/Groucho/Bucket/Hardy.app
and point them where they need to point. I assume you know how to do that.

Since there is now an actual directory in /Volumes named Groucho, if you try to mount a disk named "Groucho", the system should automatically create a non-conflicting name (e.g. "Groucho-1") and mount the disk there, rather than mounting it onto "Groucho".

You could also just make "/Volumes/Groucho/" a symlink and point it at the directory where "Bucket" is now located. I'm not 100% sure that would prevent the auto-mounting from mounting on top of that node, because I've always done it the other way (make dir in /Volumes, add symlinks therein).


If that makes sense, then try it and see what happens, using a single app, to make sure it works the way you want. If it doesn't make sense, I suggest trying it anyway. If you have questions about anything, ask again.
 
Hi Chown,

That's a great answer, I didnt realise you could create folders within /Volumes/ as sort of mock drives. I think that would perfectly do what I wanted. The majority of items are large sample libraries which installed as part of an installer, and a lot of others are not too location dependant so they wont matter. I would probably go for the option you mentioned there of trying to symlink an entire base folder to a new location as I wouldn't mind keeping something like the same file structure i had on that drive, it makes sense.

Thanks again, i'll give that a go and I'll post back here how successful it was to symlink entire base folder as i'm sure in the future quite a few people might go for having files installed on a second drive moved over to a unified fusion drive.
 
Whatever you do, test the result before committing to it.

You can make a "fake external drive" by creating a disk image file (Disk Utility.app > Make Image). Give it the same name as your external drive, then eject it and remount it. What name does it appear as in /Volumes:
Code:
ls -l /Volumes
 
Whatever you do, test the result before committing to it.

I will, although the only thing that can go wrong really is it wont see the new path, which is the same problem id have if I just move them somewhere else haha.

You can make a "fake external drive" by creating a disk image file (Disk Utility.app > Make Image). Give it the same name as your external drive, then eject it and remount it. What name does it appear as in /Volumes:
Code:
ls -l /Volumes

I'll give this a shot, you mean, create the folder, and then create a fake external drive with the same folder name to see if OSX safely renames it to -1 or something and doesn't just meltdown?
 
I'll give this a shot, you mean, create the folder, and then create a fake external drive with the same folder name to see if OSX safely renames it to -1 or something and doesn't just meltdown?

Yup, exactly right.

The idea is to make a simplified test scenario, and discover exactly how it works (or doesn't). This tells you what to expect if you were to commit more time and effort to following that path. By keeping each step simple and reversible, it makes it a lot easier to go back if things don't work out. "The best-laid schemes o' mice an' men..." and all.
 
Yup, exactly right.

The idea is to make a simplified test scenario, and discover exactly how it works (or doesn't). This tells you what to expect if you were to commit more time and effort to following that path. By keeping each step simple and reversible, it makes it a lot easier to go back if things don't work out. "The best-laid schemes o' mice an' men..." and all.

Yeah, it renames it to /name1 automatically so in theory, symlinking the entire root directory to a new location should work flawlessly. Fingers crossed.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.