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