class Getch::FileSystem::Partition

Public Class Methods

new() click to toggle source
# File lib/getch/filesystem/partition.rb, line 4
def initialize
  @log = Getch::Log.new
end

Public Instance Methods

boot(dev) click to toggle source
# File lib/getch/filesystem/partition.rb, line 15
def boot(dev)
  return if ! dev
  disk = disk_name(dev)
  part = dev.match(/[0-9]/)
  if Getch::OPTIONS[:fs] == "zfs"
    exec("sgdisk -n#{part}:0:+2G -t#{part}:BE00 #{disk}")
  else
    exec("sgdisk -n#{part}:0:+128MiB -t#{part}:8300 #{disk}")
  end
end
efi(dev) click to toggle source
# File lib/getch/filesystem/partition.rb, line 26
def efi(dev)
  return if ! dev
  disk = disk_name(dev)
  part = dev.match(/[0-9]/)
  exec("sgdisk -n#{part}:1M:+260M -t#{part}:EF00 #{disk}")
end
gpt(dev) click to toggle source
# File lib/getch/filesystem/partition.rb, line 8
def gpt(dev)
  return if ! dev
  disk = disk_name(dev)
  part = dev.match(/[0-9]/)
  exec("sgdisk -n#{part}:1MiB:+1MiB -t#{part}:EF02 #{disk}")
end
home(dev, code) click to toggle source
# File lib/getch/filesystem/partition.rb, line 52
def home(dev, code)
  return if ! dev
  disk = disk_name(dev)
  part = dev.match(/[0-9]/)
  if Getch::OPTIONS[:home_disk]
    exec("sgdisk -n#{part}:0:0 -t#{part}:#{code} #{disk}")
  end
end
root(dev, code) click to toggle source
# File lib/getch/filesystem/partition.rb, line 45
def root(dev, code)
  return if ! dev
  disk = disk_name(dev)
  part = dev.match(/[0-9]/)
  exec("sgdisk -n#{part}:0:0 -t#{part}:#{code} #{disk}")
end
swap(dev) click to toggle source
# File lib/getch/filesystem/partition.rb, line 33
def swap(dev)
  return if ! dev
  disk = disk_name(dev)
  part = dev.match(/[0-9]/)
  if Getch::OPTIONS[:cache_disk]
    exec("sgdisk -n#{part}:0:0 -t#{part}:8200 #{disk}")
  else
    mem=`awk '/MemTotal/ {print $2}' /proc/meminfo`.chomp + 'K'
    exec("sgdisk -n#{part}:0:+#{mem} -t#{part}:8200 #{disk}")
  end
end

Private Instance Methods

disk_name(dev) click to toggle source
# File lib/getch/filesystem/partition.rb, line 63
def disk_name(dev)
  dev.match(/[^0-9]+/)
end
exec(cmd) click to toggle source
# File lib/getch/filesystem/partition.rb, line 67
def exec(cmd)
  @log.debug "Partition disk with #{cmd}"
  if Getch::OPTIONS[:encrypt]
    Helpers::sys(cmd)
  else
    Getch::Command.new(cmd).run!
  end
end