getch 0.1.0 → 0.1.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (90) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data.tar.gz.sig +0 -0
  4. data/README.md +95 -22
  5. data/assets/network-stack.conf +63 -0
  6. data/bin/getch +12 -4
  7. data/lib/getch.rb +116 -66
  8. data/lib/getch/command.rb +19 -5
  9. data/lib/getch/config.rb +42 -0
  10. data/lib/getch/config/gentoo.rb +59 -0
  11. data/lib/getch/config/void.rb +49 -0
  12. data/lib/getch/filesystem.rb +5 -0
  13. data/lib/getch/filesystem/.mount.rb.swp +0 -0
  14. data/lib/getch/filesystem/clean.rb +58 -0
  15. data/lib/getch/filesystem/device.rb +61 -0
  16. data/lib/getch/filesystem/ext4.rb +1 -0
  17. data/lib/getch/filesystem/ext4/config.rb +8 -9
  18. data/lib/getch/filesystem/ext4/device.rb +2 -7
  19. data/lib/getch/filesystem/ext4/encrypt.rb +1 -0
  20. data/lib/getch/filesystem/ext4/encrypt/config.rb +8 -9
  21. data/lib/getch/filesystem/ext4/encrypt/deps.rb +3 -19
  22. data/lib/getch/filesystem/ext4/encrypt/device.rb +3 -8
  23. data/lib/getch/filesystem/ext4/encrypt/format.rb +3 -6
  24. data/lib/getch/filesystem/ext4/encrypt/mount.rb +5 -43
  25. data/lib/getch/filesystem/ext4/encrypt/partition.rb +29 -54
  26. data/lib/getch/filesystem/ext4/encrypt/void.rb +100 -0
  27. data/lib/getch/filesystem/ext4/format.rb +4 -6
  28. data/lib/getch/filesystem/ext4/mount.rb +7 -46
  29. data/lib/getch/filesystem/ext4/partition.rb +16 -39
  30. data/lib/getch/filesystem/ext4/void.rb +43 -0
  31. data/lib/getch/filesystem/lvm.rb +1 -0
  32. data/lib/getch/filesystem/lvm/config.rb +11 -15
  33. data/lib/getch/filesystem/lvm/deps.rb +4 -19
  34. data/lib/getch/filesystem/lvm/device.rb +33 -9
  35. data/lib/getch/filesystem/lvm/encrypt.rb +1 -0
  36. data/lib/getch/filesystem/lvm/encrypt/config.rb +9 -12
  37. data/lib/getch/filesystem/lvm/encrypt/deps.rb +4 -21
  38. data/lib/getch/filesystem/lvm/encrypt/device.rb +33 -9
  39. data/lib/getch/filesystem/lvm/encrypt/format.rb +3 -4
  40. data/lib/getch/filesystem/lvm/encrypt/mount.rb +7 -47
  41. data/lib/getch/filesystem/lvm/encrypt/partition.rb +30 -38
  42. data/lib/getch/filesystem/lvm/encrypt/void.rb +100 -0
  43. data/lib/getch/filesystem/lvm/format.rb +12 -8
  44. data/lib/getch/filesystem/lvm/mount.rb +7 -46
  45. data/lib/getch/filesystem/lvm/partition.rb +19 -31
  46. data/lib/getch/filesystem/lvm/void.rb +45 -0
  47. data/lib/getch/filesystem/mount.rb +56 -0
  48. data/lib/getch/filesystem/partition.rb +77 -0
  49. data/lib/getch/filesystem/zfs.rb +1 -0
  50. data/lib/getch/filesystem/zfs/config.rb +7 -8
  51. data/lib/getch/filesystem/zfs/deps.rb +24 -12
  52. data/lib/getch/filesystem/zfs/device.rb +54 -9
  53. data/lib/getch/filesystem/zfs/encrypt.rb +1 -0
  54. data/lib/getch/filesystem/zfs/encrypt/.mount.rb.swp +0 -0
  55. data/lib/getch/filesystem/zfs/encrypt/config.rb +11 -11
  56. data/lib/getch/filesystem/zfs/encrypt/deps.rb +24 -14
  57. data/lib/getch/filesystem/zfs/encrypt/device.rb +54 -9
  58. data/lib/getch/filesystem/zfs/encrypt/format.rb +84 -3
  59. data/lib/getch/filesystem/zfs/encrypt/mount.rb +8 -28
  60. data/lib/getch/filesystem/zfs/encrypt/partition.rb +26 -109
  61. data/lib/getch/filesystem/zfs/encrypt/void.rb +96 -0
  62. data/lib/getch/filesystem/zfs/format.rb +97 -4
  63. data/lib/getch/filesystem/zfs/mount.rb +10 -32
  64. data/lib/getch/filesystem/zfs/partition.rb +25 -106
  65. data/lib/getch/filesystem/zfs/void.rb +81 -0
  66. data/lib/getch/gentoo.rb +20 -16
  67. data/lib/getch/gentoo/boot.rb +24 -16
  68. data/lib/getch/gentoo/chroot.rb +16 -25
  69. data/lib/getch/gentoo/config.rb +67 -15
  70. data/lib/getch/gentoo/sources.rb +55 -13
  71. data/lib/getch/gentoo/stage.rb +0 -1
  72. data/lib/getch/gentoo/use.rb +43 -0
  73. data/lib/getch/gentoo/use_flag.rb +63 -0
  74. data/lib/getch/guard.rb +64 -0
  75. data/lib/getch/helpers.rb +133 -0
  76. data/lib/getch/log.rb +3 -2
  77. data/lib/getch/options.rb +46 -24
  78. data/lib/getch/version.rb +1 -1
  79. data/lib/getch/void.rb +59 -0
  80. data/lib/getch/void/boot.rb +80 -0
  81. data/lib/getch/void/chroot.rb +55 -0
  82. data/lib/getch/void/config.rb +87 -0
  83. data/lib/getch/void/stage.rb +70 -0
  84. metadata +46 -25
  85. metadata.gz.sig +0 -0
  86. data/.gitignore +0 -2
  87. data/CHANGELOG.md +0 -60
  88. data/Rakefile +0 -21
  89. data/bin/setup.sh +0 -90
  90. data/getch.gemspec +0 -25
@@ -0,0 +1,45 @@
1
+ require_relative '../../helpers'
2
+
3
+ module Getch
4
+ module FileSystem
5
+ module Lvm
6
+ class Void < Device
7
+ include Helpers::Void
8
+ attr_reader :boot_disk
9
+
10
+ def fstab
11
+ conf = "#{MOUNTPOINT}/etc/fstab"
12
+ File.write(conf, "\n", mode: 'w', chmod: 0644)
13
+ line_fstab(@dev_esp, "/efi vfat noauto,rw,relatime 0 0") if @dev_esp
14
+ line_fstab(@dev_boot, "/boot ext4 noauto,rw,relatime 0 0") if @dev_boot
15
+ add_line(conf, "#{@lv_swap} swap swap rw,noatime,discard 0 0") if @lv_swap
16
+ add_line(conf, "#{@lv_home} /home/#{@user} ext4 rw,noatime,discard 0 2") if @lv_home
17
+ add_line(conf, "#{@lv_root} / ext4 rw,relatime 0 1")
18
+ add_line(conf, "tmpfs /tmp tmpfs defaults,nosuid,nodev 0 0")
19
+ end
20
+
21
+ def config_dracut
22
+ conf = "#{MOUNTPOINT}/etc/dracut.conf.d/lvm.conf"
23
+ # dracut: value+= should be surrounding by white space
24
+ content = [
25
+ "hostonly=\"yes\"",
26
+ "omit_dracutmodules+=\" btrfs \"",
27
+ ""
28
+ ]
29
+ File.write(conf, content.join("\n"), mode: 'w', chmod: 0644)
30
+ end
31
+
32
+ def kernel_cmdline_dracut
33
+ conf = "#{MOUNTPOINT}/etc/dracut.conf.d/cmdline.conf"
34
+ c="kernel_cmdline=\"rd.lvm.vg=#{@vg} rootflags=rw,relatime\""
35
+ File.write(conf, "#{c}\n", mode: 'w', chmod: 0644)
36
+ end
37
+
38
+ def finish
39
+ puts "+ Enter in your system: chroot /mnt /bin/bash"
40
+ puts "+ Reboot with: shutdown -r now"
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,56 @@
1
+ require 'fileutils'
2
+
3
+ module Getch
4
+ module FileSystem
5
+ class Mount
6
+ def initialize
7
+ @root_dir = MOUNTPOINT
8
+ @boot_dir = "#{@root_dir}/boot"
9
+ @boot_efi_dir = "#{@root_dir}/efi"
10
+ @home_dir = "#{@root_dir}/home"
11
+ @state = Getch::States.new()
12
+ @log = Getch::Log.new
13
+ end
14
+
15
+ def swap(dev)
16
+ return if ! dev
17
+ if Helpers::grep?('/proc/swaps', /^\/dev/)
18
+ exec("swapoff #{dev}")
19
+ end
20
+
21
+ exec("swapon #{dev}")
22
+ end
23
+
24
+ def root(dev)
25
+ return if ! dev
26
+ Helpers::mkdir(@root_dir)
27
+ exec("mount #{dev} #{@root_dir}")
28
+ end
29
+
30
+ def esp(dev)
31
+ return if ! dev
32
+ Helpers::mkdir(@boot_efi_dir)
33
+ exec("mount #{dev} #{@boot_efi_dir}")
34
+ end
35
+
36
+ def boot(dev)
37
+ return if ! dev
38
+ Helpers::mkdir(@boot_dir)
39
+ exec("mount #{dev} #{@boot_dir}")
40
+ end
41
+
42
+ def home(dev)
43
+ return if ! dev
44
+ Helpers::mkdir(@home_dir)
45
+ exec("mount #{dev} #{@home_dir}")
46
+ end
47
+
48
+ private
49
+
50
+ def exec(cmd)
51
+ @log.info("==> #{cmd}")
52
+ Helpers::sys(cmd)
53
+ end
54
+ end
55
+ end
56
+ end
@@ -0,0 +1,77 @@
1
+ module Getch
2
+ module FileSystem
3
+ class Partition
4
+ def initialize
5
+ @log = Getch::Log.new
6
+ end
7
+
8
+ def gpt(dev)
9
+ return if ! dev
10
+ disk = disk_name(dev)
11
+ part = dev.match(/[0-9]/)
12
+ exec("sgdisk -n#{part}:1MiB:+1MiB -t#{part}:EF02 #{disk}")
13
+ end
14
+
15
+ def boot(dev)
16
+ return if ! dev
17
+ disk = disk_name(dev)
18
+ part = dev.match(/[0-9]/)
19
+ if Getch::OPTIONS[:fs] == "zfs"
20
+ exec("sgdisk -n#{part}:0:+2G -t#{part}:BE00 #{disk}")
21
+ else
22
+ exec("sgdisk -n#{part}:0:+128MiB -t#{part}:8300 #{disk}")
23
+ end
24
+ end
25
+
26
+ def efi(dev)
27
+ return if ! dev
28
+ disk = disk_name(dev)
29
+ part = dev.match(/[0-9]/)
30
+ exec("sgdisk -n#{part}:1M:+260M -t#{part}:EF00 #{disk}")
31
+ end
32
+
33
+ def swap(dev)
34
+ return if ! dev
35
+ disk = disk_name(dev)
36
+ part = dev.match(/[0-9]/)
37
+ if Getch::OPTIONS[:cache_disk]
38
+ exec("sgdisk -n#{part}:0:0 -t#{part}:8200 #{disk}")
39
+ else
40
+ mem=`awk '/MemTotal/ {print $2}' /proc/meminfo`.chomp + 'K'
41
+ exec("sgdisk -n#{part}:0:+#{mem} -t#{part}:8200 #{disk}")
42
+ end
43
+ end
44
+
45
+ def root(dev, code)
46
+ return if ! dev
47
+ disk = disk_name(dev)
48
+ part = dev.match(/[0-9]/)
49
+ exec("sgdisk -n#{part}:0:0 -t#{part}:#{code} #{disk}")
50
+ end
51
+
52
+ def home(dev, code)
53
+ return if ! dev
54
+ disk = disk_name(dev)
55
+ part = dev.match(/[0-9]/)
56
+ if Getch::OPTIONS[:home_disk]
57
+ exec("sgdisk -n#{part}:0:0 -t#{part}:#{code} #{disk}")
58
+ end
59
+ end
60
+
61
+ private
62
+
63
+ def disk_name(dev)
64
+ dev.match(/[^0-9]+/)
65
+ end
66
+
67
+ def exec(cmd)
68
+ @log.debug "Partition disk with #{cmd}"
69
+ if Getch::OPTIONS[:encrypt]
70
+ Helpers::sys(cmd)
71
+ else
72
+ Getch::Command.new(cmd).run!
73
+ end
74
+ end
75
+ end
76
+ end
77
+ end
@@ -11,4 +11,5 @@ require_relative 'zfs/format'
11
11
  require_relative 'zfs/mount'
12
12
  require_relative 'zfs/config'
13
13
  require_relative 'zfs/deps'
14
+ require_relative 'zfs/void'
14
15
  require_relative 'zfs/encrypt'
@@ -1,7 +1,7 @@
1
1
  module Getch
2
2
  module FileSystem
3
3
  module Zfs
4
- class Config < Getch::FileSystem::Zfs::Device
4
+ class Config < Device
5
5
  def initialize
6
6
  super
7
7
  gen_uuid
@@ -17,13 +17,13 @@ module Getch
17
17
 
18
18
  def systemd_boot
19
19
  return if ! Helpers::efi?
20
- esp = '/boot/efi'
20
+ esp = '/efi'
21
21
  dir = "#{@root_dir}/#{esp}/loader/entries/"
22
22
  datas_gentoo = [
23
23
  'title Gentoo Linux',
24
24
  'linux /vmlinuz',
25
25
  'initrd /initramfs',
26
- "options resume=UUID=#{@uuid_swap} root=ZFS=#{@pool_name}/ROOT/gentoo init=#{@init} dozfs"
26
+ "options resume=UUID=#{@uuid_swap} root=ZFS=#{@pool_name}/ROOT/#{@n} init=#{@init} dozfs"
27
27
  ]
28
28
  File.write("#{dir}/gentoo.conf", datas_gentoo.join("\n"))
29
29
  end
@@ -33,7 +33,7 @@ module Getch
33
33
  return if Helpers::efi?
34
34
  file = "#{@root_dir}/etc/default/grub"
35
35
  cmdline = [
36
- "GRUB_CMDLINE_LINUX=\"resume=UUID=#{@uuid_swap} root=ZFS=#{@pool_name}/ROOT/gentoo init=#{@init} dozfs\""
36
+ "GRUB_CMDLINE_LINUX=\"resume=UUID=#{@uuid_swap} root=ZFS=#{@pool_name}/ROOT/#{@n} init=#{@init} dozfs\""
37
37
  ]
38
38
  File.write("#{file}", cmdline.join("\n"), mode: 'a')
39
39
  end
@@ -42,15 +42,14 @@ module Getch
42
42
 
43
43
  def gen_uuid
44
44
  @uuid_swap = `lsblk -o "UUID" #{@dev_swap} | tail -1`.chomp()
45
- @uuid_boot = `lsblk -o "UUID" #{@dev_boot} | tail -1`.chomp() if @dev_boot
46
- @uuid_boot_efi = `lsblk -o "UUID" #{@dev_boot_efi} | tail -1`.chomp() if @dev_boot_efi
45
+ @uuid_esp = `lsblk -o "UUID" #{@dev_esp} | tail -1`.chomp() if @dev_esp
47
46
  end
48
47
 
49
48
  def data_fstab
50
- boot_efi = @dev_boot_efi ? "UUID=#{@uuid_boot_efi} /boot/efi vfat noauto,noatime 1 2" : ''
49
+ efi = @dev_esp ? "UUID=#{@uuid_esp} /efi vfat noauto,noatime 1 2" : ''
51
50
  swap = @dev_swap ? "UUID=#{@uuid_swap} none swap discard 0 0" : ''
52
51
 
53
- [ boot_efi, swap ]
52
+ [ efi, swap ]
54
53
  end
55
54
  end
56
55
  end
@@ -1,25 +1,31 @@
1
1
  module Getch
2
2
  module FileSystem
3
3
  module Zfs
4
- class Deps < Getch::FileSystem::Zfs::Device
5
- def initialize
6
- super
4
+ class Deps < Device
5
+ def make
6
+ unstable_zfs
7
7
  install_deps
8
8
  zfs_mountpoint
9
9
  auto_module_rebuild
10
- end
11
-
12
- def make
13
10
  hostid
14
11
  options_make
15
12
  Getch::Make.new("genkernel --kernel-config=/usr/src/linux/.config all").run!
13
+ zed_update_path
16
14
  end
17
15
 
18
16
  private
17
+
18
+ def unstable_zfs
19
+ conf = "#{MOUNTPOINT}/etc/portage/package.accept_keywords/zfs"
20
+ data = [
21
+ "sys-fs/zfs-kmod",
22
+ "sys-fs/zfs"
23
+ ]
24
+ File.write(conf, data.join("\n"), mode: "w")
25
+ end
26
+
19
27
  def install_deps
20
- exec("euse -E libzfs") if ! Helpers::grep?("#{MOUNTPOINT}/etc/portage/make.conf", /libzfs/)
21
- exec("euse -E rootfs") if ! Helpers::grep?("#{MOUNTPOINT}/etc/portage/make.conf", /rootfs/)
22
- Getch::Garden.new('-a zfs').run!
28
+ Getch::Bask.new('-a zfs').run!
23
29
  Getch::Make.new("make modules_prepare").run!
24
30
  Getch::Make.new("make -j$(nproc)").run!
25
31
  Getch::Emerge.new('genkernel sys-fs/zfs').pkg!
@@ -32,11 +38,18 @@ module Getch
32
38
  Helpers::touch("#{MOUNTPOINT}/etc/zfs/zfs-list.cache/#{@pool_name}")
33
39
  exec("ln -fs /usr/libexec/zfs/zed.d/history_event-zfs-list-cacher.sh /etc/zfs/zed.d/")
34
40
  exec("systemctl start zfs-zed.service")
35
- Helpers::sys("sed -Ei \"s|/mnt/?|/|\" #{MOUNTPOINT}/etc/zfs/zfs-list.cache/*")
36
41
  exec("systemctl enable zfs-zed.service")
37
42
  exec("systemctl enable zfs.target")
38
43
  end
39
44
 
45
+ def zed_update_path
46
+ Dir.glob("#{MOUNTPOINT}/etc/zfs/zfs-list.cache/*").each { |f|
47
+ if !system("sed", "-Ei", "s|#{MOUNTPOINT}/?|/|", f)
48
+ raise "system exec sed"
49
+ end
50
+ }
51
+ end
52
+
40
53
  def auto_module_rebuild
41
54
  g_dir="#{MOUNTPOINT}/etc/portage/env/sys-kernel"
42
55
  Helpers::mkdir(g_dir)
@@ -59,8 +72,7 @@ EOF
59
72
  end
60
73
 
61
74
  def hostid
62
- hostid_value=`hostid`.chomp
63
- File.write("#{MOUNTPOINT}/etc/hostid", hostid_value, mode: 'w')
75
+ exec "zgenhostid $(hostid)"
64
76
  end
65
77
 
66
78
  def options_make
@@ -1,17 +1,62 @@
1
1
  module Getch
2
2
  module FileSystem
3
3
  module Zfs
4
- class Device
4
+ class Device < Getch::FileSystem::Device
5
5
  def initialize
6
- @disk = DEFAULT_OPTIONS[:disk]
7
- @user = DEFAULT_OPTIONS[:username]
8
- @dev_boot_efi = Helpers::efi? ? "/dev/#{@disk}1" : nil
9
- @dev_boot = Helpers::efi? ? nil : "/dev/#{@disk}2"
10
- @dev_swap = Helpers::efi? ? "/dev/#{@disk}2" : "/dev/#{@disk}3"
11
- @dev_root = Helpers::efi? ? "/dev/#{@disk}3" : "/dev/#{@disk}4"
12
- @boot_pool_name = 'bpool'
13
- @pool_name = 'zpool'
6
+ super
7
+ @id = Helpers::pool_id(@dev_root)
8
+ @boot_pool_name = "bpool-#{@id}"
9
+ @pool_name = "rpool-#{@id}"
14
10
  @zfs_home = @user ? true : false
11
+ @n = Getch::OPTIONS[:os]
12
+ end
13
+
14
+ private
15
+
16
+ def search_boot
17
+ if @efi
18
+ if @boot_disk
19
+ @dev_esp = "/dev/#{@boot_disk}1"
20
+ @dev_boot = "/dev/#{@boot_disk}2" if Getch::OPTIONS[:os] == 'void'
21
+ else
22
+ @dev_esp = "/dev/#{@disk}1"
23
+ @root_part += 1
24
+ if Getch::OPTIONS[:os] == 'void'
25
+ @dev_boot = "/dev/#{@disk}#{@root_part}"
26
+ @root_part += 1
27
+ end
28
+ end
29
+ else
30
+ if @boot_disk
31
+ @dev_gpt = "/dev/#{@boot_disk}1"
32
+ @dev_boot = "/dev/#{@boot_disk}2"
33
+ @dev_grub = "/dev/#{@boot_disk}"
34
+ else
35
+ @dev_gpt = "/dev/#{@disk}1"
36
+ @dev_boot = "/dev/#{@disk}2"
37
+ @dev_grub = "/dev/#{@disk}"
38
+ @root_part += 2
39
+ end
40
+ end
41
+ end
42
+
43
+ def search_swap
44
+ if @cache_disk
45
+ @dev_swap = "/dev/#{@cache_disk}1"
46
+ @dev_log = "/dev/#{@cache_disk}2"
47
+ @dev_cache = "/dev/#{@cache_disk}3"
48
+ else
49
+ @dev_swap = "/dev/#{@disk}#{@root_part}"
50
+ @root_part += 1
51
+ end
52
+ end
53
+
54
+ def search_root
55
+ if @root_part == 1
56
+ @dev_root = "/dev/#{@disk}"
57
+ else
58
+ @dev_root = "/dev/#{@disk}#{@root_part}"
59
+ end
15
60
  end
16
61
  end
17
62
  end
@@ -13,3 +13,4 @@ require_relative 'encrypt/format'
13
13
  require_relative 'encrypt/mount'
14
14
  require_relative 'encrypt/config'
15
15
  require_relative 'encrypt/deps'
16
+ require_relative 'encrypt/void'
@@ -2,7 +2,7 @@ module Getch
2
2
  module FileSystem
3
3
  module Zfs
4
4
  module Encrypt
5
- class Config < Getch::FileSystem::Zfs::Encrypt::Device
5
+ class Config < Device
6
6
  def initialize
7
7
  super
8
8
  gen_uuid
@@ -18,31 +18,31 @@ module Getch
18
18
  end
19
19
 
20
20
  def systemd_boot
21
- return if ! Helpers::efi?
22
- esp = '/boot/efi'
21
+ return if ! @efi
22
+ esp = '/efi'
23
23
  dir = "#{@root_dir}/#{esp}/loader/entries/"
24
24
  datas_gentoo = [
25
25
  'title Gentoo Linux',
26
26
  'linux /vmlinuz',
27
27
  'initrd /initramfs',
28
- "options root=ZFS=#{@pool_name}/ROOT/gentoo init=#{@init} dozfs keymap=#{DEFAULT_OPTIONS[:keymap]}"
28
+ "options root=ZFS=#{@pool_name}/ROOT/#{@n} init=#{@init} dozfs keymap=#{Getch::OPTIONS[:keymap]}"
29
29
  ]
30
30
  File.write("#{dir}/gentoo.conf", datas_gentoo.join("\n"))
31
31
  end
32
32
 
33
33
  def crypttab
34
34
  datas = [
35
- "cryptswap UUID=#{@uuid_swap} /dev/urandom swap,cipher=aes-xts-plain64:sha256,size=256"
35
+ "cryptswap PARTUUID=#{@partuuid_swap} /dev/urandom swap,discard,cipher=aes-xts-plain64:sha256,size=512"
36
36
  ]
37
37
  File.write("#{@root_dir}/etc/crypttab", datas.join("\n"))
38
38
  end
39
39
 
40
40
  # See https://wiki.gentoo.org/wiki/ZFS#ZFS_root
41
41
  def grub
42
- return if Helpers::efi?
42
+ return if @efi
43
43
  file = "#{@root_dir}/etc/default/grub"
44
44
  cmdline = [
45
- "GRUB_CMDLINE_LINUX=\"root=ZFS=#{@pool_name}/ROOT/gentoo init=#{@init} dozfs keymap=#{DEFAULT_OPTIONS[:keymap]}\""
45
+ "GRUB_CMDLINE_LINUX=\"root=ZFS=#{@pool_name}/ROOT/#{@n} init=#{@init} dozfs keymap=#{Getch::OPTIONS[:keymap]}\""
46
46
  ]
47
47
  File.write("#{file}", cmdline.join("\n"), mode: 'a')
48
48
  end
@@ -50,13 +50,13 @@ module Getch
50
50
  private
51
51
 
52
52
  def gen_uuid
53
- @uuid_swap = `lsblk -o "UUID" #{@dev_swap} | tail -1`.chomp()
54
- @uuid_boot_efi = `lsblk -o "UUID" #{@dev_boot_efi} | tail -1`.chomp() if @dev_boot_efi
53
+ @partuuid_swap = Helpers::partuuid(@dev_swap)
54
+ @uuid_esp = `lsblk -o "UUID" #{@dev_esp} | tail -1`.chomp() if @dev_esp
55
55
  end
56
56
 
57
57
  def data_fstab
58
- boot_efi = @dev_boot_efi ? "UUID=#{@uuid_boot_efi} /boot/efi vfat noauto,noatime 1 2" : ''
59
- swap = @dev_swap ? "/dev/mapper/cryptswap none swap discard 0 0" : ''
58
+ boot_efi = @dev_esp ? "UUID=#{@uuid_esp} /efi vfat noauto,noatime 1 2" : ''
59
+ swap = @dev_swap ? "/dev/mapper/cryptswap none swap sw 0 0" : ''
60
60
 
61
61
  [ boot_efi, swap ]
62
62
  end