Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Add volume (UUID) to fstab to prevent automount (macOS)
#!/usr/bin/env ruby
# Usage: no_automount /Volumes/My\ Disk
diskinfo = `diskutil info '#{ARGV[0]}'`.gsub("\n\n", "\n").split("\n").collect { |b|
b.strip.split(/:\s+/)
}.to_h
disk_uuid = diskinfo['Volume UUID']
disk_type = diskinfo['Type (Bundle)']
disk_name = diskinfo['Volume Name']
fstab_filename = '/etc/fstab'
text = File.read(fstab_filename)
new_contents = text.gsub(/UUID=#{disk_uuid}.*(:?\n)/, "")
new_contents << "UUID=#{disk_uuid} none #{disk_type} rw,noauto # #{disk_name}"
File.open(fstab_filename, "w") {|file| file.puts new_contents }
@byassine52

This comment has been minimized.

Copy link

commented Feb 6, 2019

file_name is not defined.
I fixed it here:
https://gist.github.com/byassine52/dfb697bafe086585e22333f834074173

@henri

This comment has been minimized.

Copy link

commented Aug 7, 2019

Also, if you want to casually prevent volumes from auto mounting, take a look at this project which runs a daemon to prevent file systems from mounting : http://henri.shustak.org/tools/ejector

@voltechs

This comment has been minimized.

Copy link
Owner Author

commented Aug 7, 2019

file_name is not defined.
I fixed it here:
https://gist.github.com/byassine52/dfb697bafe086585e22333f834074173

Thanks @byassine52. Fixed!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.