Skip to content

tmkasun/fstab

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

fstab

Linux fstab helper library

WARNING

Experimental code, will eat your fstab at some point.

Usage

Adding a new entry to fstab:

require 'fstab'

# Use default /etc/fstab
# With safe_mode only valid devices/filesystems will be added to fstab
# Trying to add non existant device or filesystem will raise an exception
#
# :backup => true will create a timestamped fstab backup before saving
# the changes
fstab = Fstab.new '/etc/fstab', :safe_mode => true, 
                                :backup => true, :backup_dir => '/etc/'

# Asuming /dev/sda1 has a valid FS
# The library will use the FS UUID automatically by default even if the block device path
# was used as an argument. This is usually safer.
fstab.add_fs '/dev/sda1', '/mnt', 'ext4', 'discard,errors=remount-ro', 0, 1

# You can use filesystem UUID also
fstab.add_fs '15baeabd-b419-4a69-a306-bc550dc8355f', '/mnt', 'ext4', 'discard,errors=remount-ro', 0, 1

# List fstab entries
fstab.entries.each do |key, val|
  puts val[:label] # FS label, may be nil
  puts val[:uuid]  # FS UUID, nil if entry marked as invalid
  puts val[:mount_point] 
  puts val[:type]
  puts val[:opts]
  puts val[:dump]
  puts val[:pass]
  puts val[:special] # special FS, i.e. not a block device
  puts val[:line_number] # line number for the FS in fstab
  puts val[:invalid] # the parser marked the entry as invalid 
end

Checking if a device is present in /etc/fstab:

fstab.has_device? '/dev/sda1' # => true
# Assuming /dev/sda1 UUID is 15baeabd-b419-4a69-a306-bc550dc8355f
fstab.has_device? '15baeabd-b419-4a69-a306-bc550dc8355f' # => true

Some other helper methods:

# Return a hash of 'invalid' entries, i.e. device does not exist or the
# entry is malformed
fstab.invalid_entries
# Automatically remove invalid entries creating a backup file
fstab.remove_invalid_entries

# Get FS UUID
Fstab.get_uuid '/dev/sda1'

# Get FS label, assuming it has one
# return nil otherwise
Fstab.get_label '/dev/sda1'

Running the tests

rake spec

Copyright

Copyright (c) 2012 BVox World S.L.U. See LICENSE.txt for further details.

About

Linux fstab helper library

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Ruby 100.0%