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
@@ -5,13 +5,15 @@ module Getch
5
5
  def initialize
6
6
  super
7
7
  @state = Getch::States.new()
8
+ @clean = Getch::FileSystem::Clean
9
+ @partition = Getch::FileSystem::Partition.new
8
10
  run_partition
9
11
  end
10
12
 
11
13
  def run_partition
12
14
  return if STATES[:partition ]
13
- clear_struct
14
- cleaning
15
+ @clean.hdd(@disk)
16
+ @clean.external_disk(@disk, @boot_disk, @cache_disk, @home_disk)
15
17
  if Helpers::efi?
16
18
  partition_efi
17
19
  else
@@ -22,35 +24,16 @@ module Getch
22
24
 
23
25
  private
24
26
 
25
- def clear_struct
26
- exec("sgdisk -Z /dev/#{@disk}")
27
- exec("wipefs -a /dev/#{@disk}")
28
- end
29
-
30
- def cleaning
31
- puts
32
- print "Cleaning data on #{@disk}, can be long, avoid this on Flash Memory (SSD,USB,...) ? (n,y) "
33
- case gets.chomp
34
- when /^y|^Y/
35
- bloc=`blockdev --getbsz /dev/#{@disk}`.chomp
36
- exec("dd if=/dev/urandom of=/dev/#{@disk} bs=#{bloc} status=progress")
37
- else
38
- return
39
- end
40
- end
41
-
42
27
  # Follow https://wiki.archlinux.org/index.php/Partitioning
43
28
  def partition_efi
44
- # /boot/efi - EFI system partition - 260MB
45
- # / - Root
46
- # swap - Linux Swap - size of the ram
47
- # /home - Home
48
- mem=`awk '/MemTotal/ {print $2}' /proc/meminfo`.chomp + 'K'
49
-
50
- exec("sgdisk -n1:1M:+260M -t1:EF00 /dev/#{@disk}")
51
- exec("sgdisk -n2:0:+15G -t2:8304 /dev/#{@disk}")
52
- exec("sgdisk -n3:0:+#{mem} -t3:8200 /dev/#{@disk}")
53
- exec("sgdisk -n4:0:0 -t4:8302 /dev/#{@disk}") if @dev_home
29
+ # /efi - EFI system partition - 260MB
30
+ # swap - Linux Swap - size of the ram
31
+ # / - Root
32
+ # /home - Home
33
+ @partition.efi(@dev_esp)
34
+ @partition.swap(@dev_swap)
35
+ @partition.root(@dev_root, "8304")
36
+ @partition.home(@dev_home, "8302") if @dev_home
54
37
  end
55
38
 
56
39
  def partition_bios
@@ -58,16 +41,10 @@ module Getch
58
41
  # / - Root
59
42
  # swap - Linux Swap - size of the ram
60
43
  # /home - Home
61
- mem=`awk '/MemTotal/ {print $2}' /proc/meminfo`.chomp + 'K'
62
-
63
- exec("sgdisk -n1:1MiB:+1MiB -t1:EF02 /dev/#{@disk}")
64
- exec("sgdisk -n2:0:+15G -t2:8304 /dev/#{@disk}")
65
- exec("sgdisk -n3:0:+#{mem} -t3:8200 /dev/#{@disk}")
66
- exec("sgdisk -n4:0:0 -t4:8302 /dev/#{@disk}") if @dev_home
67
- end
68
-
69
- def exec(cmd)
70
- Getch::Command.new(cmd).run!
44
+ @partition.gpt(@dev_gpt)
45
+ @partition.swap(@dev_swap)
46
+ @partition.root(@dev_root, "8304")
47
+ @partition.home(@dev_home, "8302") if @dev_home
71
48
  end
72
49
  end
73
50
  end
@@ -0,0 +1,43 @@
1
+ require_relative '../../helpers'
2
+
3
+ module Getch
4
+ module FileSystem
5
+ module Ext4
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_swap, "swap swap rw,noatime,discard 0 0") if @dev_swap
15
+ line_fstab(@dev_root, "/ ext4 rw,relatime 0 1")
16
+ add_line(conf, "tmpfs /tmp tmpfs defaults,nosuid,nodev 0 0")
17
+ end
18
+
19
+ def config_dracut
20
+ conf = "#{MOUNTPOINT}/etc/dracut.conf.d/ext4.conf"
21
+ # dracut: value+= should be surrounding by white space
22
+ content = [
23
+ "hostonly=\"yes\"",
24
+ "omit_dracutmodules+=\" btrfs lvm \"",
25
+ ""
26
+ ]
27
+ File.write(conf, content.join("\n"), mode: 'w', chmod: 0644)
28
+ end
29
+
30
+ def kernel_cmdline_dracut
31
+ conf = "#{MOUNTPOINT}/etc/dracut.conf.d/cmdline.conf"
32
+ c="kernel_cmdline=\"root=#{@dev_root} rootfstype=ext4 rootflags=rw,relatime\""
33
+ File.write(conf, "#{c}\n", mode: 'w', chmod: 0644)
34
+ end
35
+
36
+ def finish
37
+ puts "+ Enter in your system: chroot /mnt /bin/bash"
38
+ puts "+ Reboot with: shutdown -r now"
39
+ end
40
+ end
41
+ end
42
+ end
43
+ end
@@ -11,4 +11,5 @@ require_relative 'lvm/format'
11
11
  require_relative 'lvm/mount'
12
12
  require_relative 'lvm/config'
13
13
  require_relative 'lvm/deps'
14
+ require_relative 'lvm/void'
14
15
  require_relative 'lvm/encrypt'
@@ -16,23 +16,23 @@ module Getch
16
16
  end
17
17
 
18
18
  def systemd_boot
19
- return if ! Helpers::efi?
20
- esp = '/boot/efi'
19
+ return if !@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=UUID=#{@uuid_root} init=#{@init} dolvm rw"
26
+ "options resume=#{@lv_swap} root=#{@lv_root} init=#{@init} dolvm rw"
27
27
  ]
28
28
  File.write("#{dir}/gentoo.conf", datas_gentoo.join("\n"))
29
29
  end
30
30
 
31
31
  def grub
32
- return if Helpers::efi?
32
+ return if @efi
33
33
  file = "#{@root_dir}/etc/default/grub"
34
34
  cmdline = [
35
- "GRUB_CMDLINE_LINUX=\"resume=UUID=#{@uuid_swap} root=UUID=#{@uuid_root} init=#{@init} dolvm rw\""
35
+ "GRUB_CMDLINE_LINUX=\"resume=#{@lv_swap} root=#{@lv_root} init=#{@init} dolvm rw\""
36
36
  ]
37
37
  File.write("#{file}", cmdline.join("\n"), mode: 'a')
38
38
  end
@@ -40,22 +40,18 @@ module Getch
40
40
  private
41
41
 
42
42
  def gen_uuid
43
- @uuid_swap = `lsblk -o "UUID" #{@lv_swap} | tail -1`.chomp() if @lv_swap
44
- @uuid_root = `lsblk -o "UUID" #{@lv_root} | tail -1`.chomp() if @lv_root
45
- @uuid_dev_root = `lsblk -o "UUID" #{@dev_root} | tail -1`.chomp() if @dev_root
46
43
  @uuid_boot = `lsblk -o "UUID" #{@dev_boot} | tail -1`.chomp() if @dev_boot
47
- @uuid_boot_efi = `lsblk -o "UUID" #{@dev_boot_efi} | tail -1`.chomp() if @dev_boot_efi
48
- @uuid_home = `lsblk -o "UUID" #{@lv_home} | tail -1`.chomp() if @lv_home
44
+ @uuid_esp = `lsblk -o "UUID" #{@dev_esp} | tail -1`.chomp() if @dev_esp
49
45
  end
50
46
 
51
47
  def data_fstab
52
- boot_efi = @dev_boot_efi ? "UUID=#{@uuid_boot_efi} /boot/efi vfat noauto,noatime 1 2" : ''
48
+ efi = @dev_esp ? "UUID=#{@uuid_esp} /efi vfat noauto,noatime 1 2" : ''
53
49
  boot = @dev_boot ? "UUID=#{@uuid_boot} /boot ext4 noauto,noatime 1 2" : ''
54
- swap = @lv_swap ? "UUID=#{@uuid_swap} none swap discard 0 0" : ''
55
- root = @lv_root ? "UUID=#{@uuid_root} / ext4 defaults 0 1" : ''
56
- home = @lv_home ? "UUID=#{@uuid_home} /home/#{@user} ext4 defaults 0 2" : ''
50
+ swap = "#{@lv_swap} none swap discard 0 0"
51
+ root = "#{@lv_root} / ext4 defaults 0 1"
52
+ home = @lv_home ? "#{@lv_home} /home/#{@user} ext4 defaults 0 2" : ''
57
53
 
58
- [ boot_efi, boot, swap, root, home ]
54
+ [ efi, boot, swap, root, home ]
59
55
  end
60
56
  end
61
57
  end
@@ -2,16 +2,9 @@ module Getch
2
2
  module FileSystem
3
3
  module Lvm
4
4
  class Deps
5
- def initialize
6
- if Helpers::efi?
7
- install_efi
8
- else
9
- install_bios
10
- end
11
- install_deps
12
- end
13
-
14
5
  def make
6
+ install_bios unless Helpers::efi?
7
+ install_deps
15
8
  options_make
16
9
  Getch::Make.new("genkernel --kernel-config=/usr/src/linux/.config all").run!
17
10
  end
@@ -34,17 +27,9 @@ module Getch
34
27
  File.write(file, datas.join("\n"), mode: 'a')
35
28
  end
36
29
 
37
- def install_efi
38
- end
39
-
40
- def install_bios
41
- exec("euse -p sys-boot/grub -E device-mapper")
42
- end
43
-
44
30
  def install_deps
45
- exec("euse -E lvm")
46
- Getch::Emerge.new('genkernel lvm2').pkg!
47
- Getch::Garden.new('-a lvm').run!
31
+ Getch::Bask.new('-a lvm').run!
32
+ Getch::Emerge.new('sys-fs/lvm2 genkernel').pkg!
48
33
  exec("systemctl enable lvm2-monitor")
49
34
  end
50
35
 
@@ -1,17 +1,41 @@
1
1
  module Getch
2
2
  module FileSystem
3
3
  module Lvm
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_root = Helpers::efi? ? "/dev/#{@disk}2" : "/dev/#{@disk}3"
6
+ super
11
7
  @vg = 'vg0'
12
- @lv_root = "/dev/mapper/#{@vg}-root"
13
- @lv_swap = "/dev/mapper/#{@vg}-swap"
14
- @lv_home = @user ? "/dev/mapper/#{@vg}-home" : nil
8
+ @lv_root = "/dev/#{@vg}/root"
9
+ @lv_swap = "/dev/#{@vg}/swap"
10
+ @lv_home = @home_disk ? "/dev/#{@vg}/home" : nil
11
+ end
12
+
13
+ private
14
+
15
+ def search_boot
16
+ if @efi
17
+ if @boot_disk
18
+ @dev_esp = "/dev/#{@boot_disk}1"
19
+ else
20
+ @dev_esp = "/dev/#{@disk}1"
21
+ @root_part += 1
22
+ end
23
+ else
24
+ if @boot_disk
25
+ @dev_gpt = "/dev/#{@boot_disk}1"
26
+ @dev_boot = "/dev/#{@boot_disk}2"
27
+ @dev_grub = "/dev/#{@boot_disk}"
28
+ else
29
+ @dev_gpt = "/dev/#{@disk}1"
30
+ @dev_boot = "/dev/#{@disk}2"
31
+ @dev_grub = "/dev/#{@disk}"
32
+ @root_part += 2
33
+ end
34
+ end
35
+ end
36
+
37
+ # The swap is a part of the LVM volume, so we clean the func
38
+ def search_swap
15
39
  end
16
40
  end
17
41
  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'
@@ -19,20 +19,20 @@ module Getch
19
19
 
20
20
  def systemd_boot
21
21
  return if ! Helpers::efi?
22
- esp = '/boot/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 crypt_root=UUID=#{@uuid_dev_root} root=#{@lv_root} init=#{@init} keymap=#{DEFAULT_OPTIONS[:keymap]} dolvm rw"
28
+ "options crypt_root=UUID=#{@uuid_dev_root} root=/dev/mapper/root real_root=#{@lv_root} init=#{@init} keymap=#{Getch::OPTIONS[:keymap]} dolvm rw"
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 #{@lv_swap} /dev/urandom swap,cipher=aes-xts-plain64:sha256,size=256"
35
+ "cryptswap #{@lv_swap} /dev/urandom swap,cipher=aes-xts-plain64:sha256,size=512"
36
36
  ]
37
37
  File.write("#{@root_dir}/etc/crypttab", datas.join("\n"))
38
38
  end
@@ -41,7 +41,7 @@ module Getch
41
41
  return if Helpers::efi?
42
42
  file = "#{@root_dir}/etc/default/grub"
43
43
  cmdline = [
44
- "GRUB_CMDLINE_LINUX=\"crypt_root=UUID=#{@uuid_dev_root} root=#{@lv_root} init=#{@init} dolvm rw slub_debug=P page_poison=1 slab_nomerge pti=on vsyscall=none spectre_v2=on spec_store_bypass_disable=seccomp iommu=force keymap=#{DEFAULT_OPTIONS[:keymap]}\"",
44
+ "GRUB_CMDLINE_LINUX=\"crypt_root=UUID=#{@uuid_dev_root} root=/dev/mapper/root real_root=#{@lv_root} init=#{@init} dolvm rw slub_debug=P page_poison=1 slab_nomerge pti=on vsyscall=none spectre_v2=on spec_store_bypass_disable=seccomp iommu=force keymap=#{Getch::OPTIONS[:keymap]}\"",
45
45
  "GRUB_ENABLE_CRYPTODISK=y"
46
46
  ]
47
47
  File.write("#{file}", cmdline.join("\n"), mode: 'a')
@@ -50,20 +50,17 @@ module Getch
50
50
  private
51
51
 
52
52
  def gen_uuid
53
- @uuid_swap = `lsblk -o "UUID" #{@lv_swap} | tail -1`.chomp() if @lv_swap
54
- @uuid_root = `lsblk -d -o "UUID" #{@lv_root} | tail -1`.chomp() if @lv_root
55
53
  @uuid_dev_root = `lsblk -d -o "UUID" #{@dev_root} | tail -1`.chomp() if @dev_root
56
54
  @uuid_boot = `lsblk -o "UUID" #{@dev_boot} | tail -1`.chomp() if @dev_boot
57
- @uuid_boot_efi = `lsblk -o "UUID" #{@dev_boot_efi} | tail -1`.chomp() if @dev_boot_efi
58
- @uuid_home = `lsblk -o "UUID" #{@lv_home} | tail -1`.chomp() if @lv_home
55
+ @uuid_esp = `lsblk -o "UUID" #{@dev_esp} | tail -1`.chomp() if @dev_esp
59
56
  end
60
57
 
61
58
  def data_fstab
62
- boot_efi = @dev_boot_efi ? "UUID=#{@uuid_boot_efi} /boot/efi vfat noauto,noatime 1 2" : ''
59
+ boot_efi = @dev_esp ? "UUID=#{@uuid_esp} /efi vfat noauto,noatime 1 2" : ''
63
60
  boot = @dev_boot ? "UUID=#{@uuid_boot} /boot ext4 noauto,noatime 1 2" : ''
64
- swap = @lv_swap ? "/dev/mapper/cryptswap none swap discard 0 0" : ''
65
- root = @lv_root ? "UUID=#{@uuid_root} / ext4 defaults 0 1" : ''
66
- home = @lv_home ? "UUID=#{@uuid_home} /home/#{@user} ext4 defaults 0 2" : ''
61
+ swap = "/dev/mapper/cryptswap none swap discard 0 0"
62
+ root = "#{@lv_root} / ext4 defaults 0 1"
63
+ home = @lv_home ? "#{@lv_home} /home/#{@user} ext4 defaults 0 2" : ''
67
64
 
68
65
  [ boot_efi, boot, swap, root, home ]
69
66
  end
@@ -3,16 +3,8 @@ module Getch
3
3
  module Lvm
4
4
  module Encrypt
5
5
  class Deps
6
- def initialize
7
- if Helpers::efi?
8
- install_efi
9
- else
10
- install_bios
11
- end
12
- install_deps
13
- end
14
-
15
6
  def make
7
+ install_deps
16
8
  options_make
17
9
  Getch::Make.new("genkernel --kernel-config=/usr/src/linux/.config all").run!
18
10
  end
@@ -37,19 +29,10 @@ module Getch
37
29
  File.write(file, datas.join("\n"), mode: 'a')
38
30
  end
39
31
 
40
- def install_efi
41
- end
42
-
43
- def install_bios
44
- exec("euse -p sys-boot/grub -E device-mapper")
45
- end
46
-
47
32
  def install_deps
48
- make_conf = "#{MOUNTPOINT}/etc/portage/make.conf"
49
- exec("euse -E lvm") if ! Helpers::grep?(make_conf, /lvm/)
50
- exec("euse -E cryptsetup") if ! Helpers::grep?(make_conf, /cryptsetup/)
51
- Getch::Emerge.new('genkernel systemd sys-fs/cryptsetup lvm2').pkg!
52
- Getch::Garden.new('-a lvm').run!
33
+ # lvm2, cryptsetup alrealy installed
34
+ Getch::Bask.new('-a lvm').run!
35
+ Getch::Emerge.new('genkernel').pkg!
53
36
  exec("systemctl enable lvm2-monitor")
54
37
  end
55
38
 
@@ -2,18 +2,42 @@ module Getch
2
2
  module FileSystem
3
3
  module Lvm
4
4
  module Encrypt
5
- class Device
5
+ class Device < Getch::FileSystem::Device
6
6
  def initialize
7
- @disk = DEFAULT_OPTIONS[:disk]
8
- @user = DEFAULT_OPTIONS[:username]
9
- @dev_boot_efi = Helpers::efi? ? "/dev/#{@disk}1" : nil
10
- @dev_boot = Helpers::efi? ? nil : "/dev/#{@disk}2"
11
- @dev_root = Helpers::efi? ? "/dev/#{@disk}2" : "/dev/#{@disk}3"
7
+ super
12
8
  @vg = 'vg0'
13
- @lv_root = "/dev/mapper/#{@vg}-root"
14
- @lv_swap = "/dev/mapper/#{@vg}-swap"
15
- @lv_home = @user ? "/dev/mapper/#{@vg}-home" : nil
9
+ @lv_root = "/dev/#{@vg}/root"
10
+ @lv_swap = "/dev/#{@vg}/swap"
11
+ @lv_home = @home_disk ? "/dev/#{@vg}/home" : nil
16
12
  @luks_root = "/dev/mapper/cryptroot"
13
+ @luks_home = @home_disk ? "/dev/mapper/crypthome" : nil
14
+ end
15
+
16
+ private
17
+
18
+ def search_boot
19
+ if @efi
20
+ if @boot_disk
21
+ @dev_esp = "/dev/#{@boot_disk}1"
22
+ else
23
+ @dev_esp = "/dev/#{@disk}1"
24
+ @root_part += 1
25
+ end
26
+ else
27
+ if @boot_disk
28
+ @dev_gpt = "/dev/#{@boot_disk}1"
29
+ @dev_boot = "/dev/#{@boot_disk}2"
30
+ @dev_grub = "/dev/#{@boot_disk}"
31
+ else
32
+ @dev_gpt = "/dev/#{@disk}1"
33
+ @dev_boot = "/dev/#{@disk}2"
34
+ @dev_grub = "/dev/#{@disk}"
35
+ @root_part += 2
36
+ end
37
+ end
38
+ end
39
+
40
+ def search_swap
17
41
  end
18
42
  end
19
43
  end
@@ -2,7 +2,7 @@ module Getch
2
2
  module FileSystem
3
3
  module Lvm
4
4
  module Encrypt
5
- class Format < Getch::FileSystem::Lvm::Encrypt::Device
5
+ class Format < Device
6
6
  def initialize
7
7
  super
8
8
  @fs = 'ext4'
@@ -12,10 +12,9 @@ module Getch
12
12
 
13
13
  def format
14
14
  return if STATES[:format]
15
- puts "Format #{@disk} with #{@fs}"
16
- exec("mkfs.fat -F32 #{@dev_boot_efi}") if @dev_boot_efi
15
+ puts "Format #{@disk}"
16
+ exec("mkfs.fat -F32 #{@dev_esp}") if @dev_esp
17
17
  exec("mkfs.#{@fs} -F #{@dev_boot}") if @dev_boot
18
- #exec("mkswap -f #{@lv_swap}")
19
18
  exec("mkfs.#{@fs} -F #{@lv_root}")
20
19
  exec("mkfs.#{@fs} -F #{@lv_home}") if @lv_home
21
20
  @state.format