8

Using Mac OS X 10.4

I made a script a while ago for my linux box in order to take archived data off of 300 floppies that automated the process. I would make an image of the floppy and copy the files directly off of the floppy. I managed to install xcode on the machine (in order to install ddrescue)

The thing is on a linux box I mounted each floppy to /media/floppy and unmounted it to ddrescue it and copied it directly to a usb drive.

I'm trying to port my script to the mac, and it seems that it's default behavior is to automatically mount each zip floppy to the /Volumes folder, which is fine, except it uses the volume's name as it's mount point folder name. So if a floppy's volume name is, "Jimmy Bo Bobs" it will mount to /media/Jimmy /Bo /Bobs.

So my question is I need to get the volume name either consistent to one name, or adaptable to the volume's name.

So my initial question is can I some how mount a drive to a specific folder, Like I would normally do in linux?

 #Linux
 mount /dev/sd1 /media/floppy
 #Mac
 diskutil mount /dev/disk1s1 /media/floppy #Doesn't work

If it's not possible, is there an easy way to extract the volume's name so that I can then link the script like this.

 Volumename=Jimmy Bo Bobs
 do stuff to /Volume/$Volumename

I'm guessing if it's not possible I'll have to grep the mount command to the /dev/ pointer and then somehow parse that string which is what I want to avoid since it would require even more research.

  • Have You checked [-mountPoint path] option for diskutil ? – Mateusz Szlosek Sep 30 '14 at 8:47
  • The help file and man don't make a mention of it, will look through google... – Mallow Sep 30 '14 at 8:51
  • here's my man: "mount [readOnly] [-mountPoint path] device Mount a single volume. If readOnly is specified, then the file system is mounted read-only, even if the volume's underlying file system and/or device and/or media supports writing; even the super-user may not write to it; this is the same as the rdonly option to mount (8). If a -mountPoint is specified, then that path, rather than the stan- dard path of /Volumes/VolumeName, will be used as the view into the volume file content; a directory at that path must already exist." – Mateusz Szlosek Sep 30 '14 at 8:52
  • Hmmm... I see the man online, and your man, and they don't match mine. I tried both sudo diskutil mount /dev/disk2s4 -mountPoint /Volumes/test and sudo diskutil mount -mountPoint /Volumes/test /dev/disk2s4 ... I suspect 10.4 doesn't have the -mountPoint feature. – Mallow Sep 30 '14 at 8:56
  • Does /Volumes/test exist before running this command? – Mateusz Szlosek Sep 30 '14 at 9:02
7

"So my initial question is can I some how mount a drive to a specific folder, Like I would normally do in linux?"

Absolutely. The caveat is that the user who is mounting the volume must be the mount-point owner. You do NOT need to be root or use sudo to mount a disk.

The first thing is to identify your raw device. diskutil list will do that nicely.

For example, if I have a FAT32 USB stick that I want to mount in my home dir, I list my devices and see that my raw device is /dev/disk5s1. As a normal user, I can mount it in my home directory by:

mkdir ~/mount
mount -r -t msdos /dev/disk5s1 ~/mount

If you then cd ~/mount ; ls, you'll see the contents of the USB stick.

In this example, I mounted it read-only, but you can mount your device any way you like.

When you're done with the device, don't forget to unmount it, e.g.:

diskutil unmount ~/mount
  • SUCCESS!!! mount -t hfs /dev/disk1s4 ~/mountpoint/ – Mallow Oct 1 '14 at 2:57
  • 1
    any way for this to happen automatically whenever I connect the same drive? – rmp251 Sep 3 '16 at 20:52
  • @rmp251, I don't think there's any way to automate this. That said, you may be able to create a script that you could run that would mount the drive with nothing more than a double-click. Assuming that you are mounting only one drive regularly, it should get the same device name every time you mount it. – Trane Francks Sep 6 '16 at 4:48
  • @rmp251 After you've mounted volumes, you can automate the mounts at login by dragging the mounted volumes into your Login Items within the Users & Groups / Accounts panel in System Preferences. – Trane Francks Apr 5 at 0:01
2

This is described in comments, but it ought to be put into an answer. In MacOS 10.11.6 (and probably later versions), you can use

diskutil mount -mountPoint /dev/disk5s1 ~/mount

Unlike using mount, it's not necessary to specify the filesystem type, at least for hfs type disks (all that I have tried).

I found that I had to sudo to root to do this either using mount as in @TraneFranks' answer, or with diskutil mount as above, even though I own the mount point directory. I don't understand why sudo is needed. Using diskutil mount without -mountPoint, the disk is mounted in a default location in /Volumes, and I don't need to be root. However, I recommend keeping in mind that sudo might be needed, because the error message without it is mysterious.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .