Persiapan
Dalam persiapan ini kita akan mebuat sebuah partisi ESP dengan format fat16 pada usb. Tipe partisi ESP dengan format FAT 16 ditujukan untuk menghindari paritisi secara otomatis terbaca saat di gunakan. Untuk operasi ini, kita membutuhkan akses root, oleh sebab itu kita mengganti terlebih dahulu roles menjadi root dengan perintah:
Selanjutnya kita mencari path dari usb yang akan kita gunakan dengan perintah:
Berikut contoh output dari perintah tersebut:
|  1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
 | NAME                             MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINTS
sda                                8:0    1   7.3G  0 disk  
├─sda1                             8:1    1   1.9G  0 part  
└─sda2                             8:2    1   5.4G  0 part  
  └─luks-abc8e9f3-1186-4ef3-b2f0-3ed275e07365
                                 253:5    0   5.4G  0 crypt /run/media/null/datums
nvme0n1                          259:0    0 476.9G  0 disk  
├─nvme0n1p1                      259:1    0   260M  0 part  /boot/efi
├─nvme0n1p2                      259:2    0    16M  0 part  
├─nvme0n1p3                      259:3    0 250.9G  0 part  
├─nvme0n1p4                      259:4    0   1.1G  0 part  
├─nvme0n1p5                      259:5    0     1G  0 part  /boot
└─nvme0n1p6                      259:6    0 223.6G  0 part  
  └─luks-36ea0348-6860-4926-b799-9dca2f7244eb
                                 253:0    0 223.6G  0 crypt 
    ├─rhel_karim-root            253:1    0    30G  0 lvm   /
    ├─rhel_karim-swap            253:2    0   7.7G  0 lvm   [SWAP]
    ├─rhel_karim-home            253:3    0 115.9G  0 lvm   /home
    └─rhel_karim-var_lib_libvirt 253:4    0    70G  0 lvm   /var/lib/libvirt
 | 
kita akan menggunakan sda1 sebagai paritisi yang berada didalam usb drive untuk diubah menjadi EPS dengan format FAT16, kita akan menggunakan cfdisk untuk menggati tipe partisi dengan perintah:
output dari perintah tersebut adalah:
|  1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 |                               Disk: /dev/sda
              Size: 7.26 GiB, 7798784000 bytes, 15232000 sectors
         Label: gpt, identifier: B81DEE59-E012-4A1F-ADED-E8B1C110177D
    Device               Start          End      Sectors     Size Type
>>  /dev/sda1             2048      3909631      3907584     1.9G EFI System   
    /dev/sda2          3909632     15230975     11321344     5.4G unknown
 ┌───────────────────────────────────────────────────────────────────────────┐
 │ Partition UUID: BD619216-97B6-4245-9E0B-0DD7E121F602                      │
 │ Partition type: EFI System (C12A7328-F81F-11D2-BA4B-00A0C93EC93B)         │
 │Filesystem UUID: 38CD-98E8                                                 │
 │     Filesystem: vfat                                                      │
 └───────────────────────────────────────────────────────────────────────────┘
    [ Delete ]  [ Resize ]  [  Quit  ]  [  Type  ]  [  Help  ]  [  Write ]
    [  Dump  ]
                     Quit program without writing changes
 | 
pilih drive dan kemudian ambil menu type pada menu bagian bawah. selanjutnya pilih EFI System seperti contoh dibawah ini:
|  1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 |                        ┌ Select partition type ───────┐
                       │ EFI System                   │
                       │ MBR partition scheme         │
                       │ Intel Fast Flash             │
                       │ BIOS boot                    │
                       │ Sony boot partition          │
                       │ Lenovo boot partition        │
                       │ PowerPC PReP boot            │
                       │ ONIE boot                    │
                       │ ONIE config                  │
                       │ Microsoft reserved           │
                       │ Microsoft basic data         │
                       │ Microsoft LDM metadata       │
                       │ Microsoft LDM data           │
                       │ Windows recovery environment │
                       │ IBM General Parallel Fs      │
                       │ Microsoft Storage Spaces     │
                       │ HP-UX data                   │
                       │ HP-UX service                │
                       │ Linux swap                   │
                       └────────────────────────────↓─┘
                     C12A7328-F81F-11D2-BA4B-00A0C93EC93B
 | 
tekan tombol enter untuk memilih, selanjutnya kita akan kembali ke menu utama, pada menu bagian bawah pilih menu [ Write ]
|  1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
 |                                 Disk: /dev/sda
              Size: 7.26 GiB, 7798784000 bytes, 15232000 sectors
         Label: gpt, identifier: B81DEE59-E012-4A1F-ADED-E8B1C110177D
    Device               Start          End      Sectors     Size Type
>>  /dev/sda1             2048      3909631      3907584     1.9G EFI System   
    /dev/sda2          3909632     15230975     11321344     5.4G unknown
 ┌───────────────────────────────────────────────────────────────────────────┐
 │ Partition UUID: BD619216-97B6-4245-9E0B-0DD7E121F602                      │
 │ Partition type: EFI System (C12A7328-F81F-11D2-BA4B-00A0C93EC93B)         │
 │Filesystem UUID: 38CD-98E8                                                 │
 │     Filesystem: vfat                                                      │
 └───────────────────────────────────────────────────────────────────────────┘
    [ Delete ]  [ Resize ]  [  Quit  ]  [  Type  ]  [  Help  ]  [  Write ]
    [  Dump  ]
                         Changed type of partition 1.
 | 
selanjutnya pilih menu [ Quit ]. Sampai pada tahap ini kita tinggal melakukan format terhadap paritisi /dev/sda1 dengan perintah.
ganti /dev/sda1 dengan path yang anda gunakan masing masing.
Menambahkan luks key kedalam usb
mount paritisi /dev/sda1 ke direktori mnt dengan perintah:
selanjutnya generate random key
| 1
 | dd if=/dev/urandom of=/mnt/karim.key bs=4096 count=1
 | 
ganti davinci.key dengan nama yang anda inginkan. output dari perintah tersebut adalah:
| 1
2
3
4
 | dd if=/dev/urandom of=/mnt/davinci.key bs=4096 count=1
1+0 records in
1+0 records out
4096 bytes (4.1 kB, 4.0 KiB) copied, 0.000481918 s, 8.5 MB/s
 | 
selanjutnya kita tambahkan key kedalam volume luks. sebelumnya kita cek terlebih dahulu dengan perintah :
output dari perintah tersebut
|  1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
 | NAME                            MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINTS
sda                               8:0    1   7.3G  0 disk  
├─sda1                            8:1    1   1.9G  0 part  /mnt
└─sda2                            8:2    1   5.4G  0 part  
  └─luks-abc8e9f3-1186-4ef3-b2f0-3ed275e07365
                                253:5    0   5.4G  0 crypt /run/media/null/datums
nvme0n1                         259:0    0 476.9G  0 disk  
├─nvme0n1p1                     259:1    0   260M  0 part  /boot/efi
├─nvme0n1p2                     259:2    0    16M  0 part  
├─nvme0n1p3                     259:3    0 250.9G  0 part  
├─nvme0n1p4                     259:4    0   1.1G  0 part  
├─nvme0n1p5                     259:5    0     1G  0 part  /boot
└─nvme0n1p6                     259:6    0 223.6G  0 part  
  └─luks-36ea0348-6860-4926-b799-9dca2f7244eb
                                253:0    0 223.6G  0 crypt 
    ├─rhel_davinci-root         253:1    0    30G  0 lvm   /
    ├─rhel_davinci-swap         253:2    0   7.7G  0 lvm   [SWAP]
    ├─rhel_davinci-home         253:3    0 115.9G  0 lvm   /home
    └─rhel_davinci-var_lib_libvirt
                                253:4    0    70G  0 lvm   /var/lib/libvirt
 | 
dari informasi di atas kita mengetahui path paritisi yang terenkripsi dengan luks adalah partisi dengan nama nvme0n1p6. sekarang kita menambahkan key ke partisi nvme0n1p6 dengan perintah:
| 1
 | cryptsetup luksAddKey /dev/nvme0n1p6 /mnt/davinci.key
 | 
/mnt/davinci.key adalah path dari paritisi usb yang kita mount sebelumnya dan /dev/nvme0n1p6 adalah paritisi yang di enkripsi menggunakan luks. anda akan diminta memasukan password luks yang telah tersimpan secara manual.
| 1
2
 | cryptsetup luksAddKey /dev/nvme0n1p6 /mnt/davinci.key
Enter any existing passphrase: 
 | 
selanjutnya kita akan mencoba membuka paritisi luks menggunakan kunci yang telah kita buat.
| 1
 | cryptsetup luksOpen --key-file /mnt/davinci.key --test-passphrase /dev/nvme0n1p6 && echo "Key register." || echo "Key not found."
 | 
Jika output dari comment tersebut adalah key register maka key telah berhasil ditanamkan ke partisi luks,
Rekonfigurasi Crypttab
pertama kita haru mengetahui terlebih dahulu UUID usb drive, untuk mengetahui UUID dari usb yang kita gunakan bisa menggunakan perintah:
| 1
 | lsblk /dev/sda1 -o UUID
 | 
output dari perintah tersebut adalah:
Tambahkan syntax berikut pada file /etc/crypttab dengan perintah:
outputnya adalah
| 1
 | luks-36ea0348-6860-4926-b799-9dca2f7244eb UUID=36ea0348-6860-4926-b799-9dca2f7244eb none discard
 | 
ganti none dengan format
dari tutorial ini maka valuenya adalah
| 1
 | davinci.key:UUID=38CD-98E8 
 | 
dan tambahkan ganti value discard dengan
| 1
 |  discard,keyfile-timeout=5s
 | 
dari proses diatas maka yang pada awalnya output dari perintah vi /etc/crypttab adalah :
| 1
 | luks-36ea0348-6860-4926-b799-9dca2f7244eb UUID=36ea0348-6860-4926-b799-9dca2f7244eb none discard
 | 
berubah menjadi
| 1
 | luks-36ea0348-6860-4926-b799-9dca2f7244eb UUID=36ea0348-6860-4926-b799-9dca2f7244eb davinci.key:UUID=38CD-98E8 discard,keyfile-timeout=5s
 | 
Rekonfigurasi GRUB2
edit default konfigurasi grub dengan perintah
berikut format syntax yang akan di tambahkan
| 1
 | rd.luks.key=LUKS_DRIVE_UUID=keyfile:UUID=USB_DRIVE_UUID rd.luks.options=timeout=5s
 | 
berdasarkan keterangan sebelumnya maka kita akan menggunakan sintax berikut, jangan lupa disesuikan dengan informasi perangkat anda karena setiap perangkat akan berbeda beda.
| 1
 | rd.luks.key=36ea0348-6860-4926-b799-9dca2f7244eb=davinci.key:UUID=38CD-98E8 rd.luks.options=timeout=5s
 | 
tambahkan systax diatas setelah property    rd.luks.uuid, berikut konfigurasi default dari file /etc/default/grub
| 1
2
3
4
5
6
7
8
9
 | GRUB_TIMEOUT=0
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="resume=/dev/mapper/rhel_davinci-swap rd.luks.uuid=luks-36ea0348-6860-4926-b799-9dca2f7244eb rd.lvm.lv=rhel_davinci/root rd.lvm.lv=rhel_davinci/swap rhgb quiet splash fips=1 boot=UUID=47ab35c0-4102-41ee-a131-a5efa446e984"
GRUB_DISABLE_RECOVERY="true"
GRUB_ENABLE_BLSCFG=true
GRUB_DISABLE_OS_PROBER=true
 | 
setelah ditambahkan maka berubah menjadi
| 1
2
3
4
5
6
7
8
9
 | GRUB_TIMEOUT=0
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="resume=/dev/mapper/rhel_davinci-swap rd.luks.uuid=luks-36ea0348-6860-4926-b799-9dca2f7244eb rd.luks.key=36ea0348-6860-4926-b799-9dca2f7244eb=davinci.key:UUID=38CD-98E8 rd.luks.options=timeout=5s rd.lvm.lv=rhel_davinci/root rd.lvm.lv=rhel_davinci/swap rhgb quiet splash fips=1 boot=UUID=47ab35c0-4102-41ee-a131-a5efa446e984" 
GRUB_DISABLE_RECOVERY="true"
GRUB_ENABLE_BLSCFG=true
GRUB_DISABLE_OS_PROBER=true
 | 
update initramfs
selanjutnya generate GRUB2 config dengan format, sesuaikan dengan perangkat anda masing masing.
| 1
 | grub2-mkconfig -o /boot/efi/EFI/[distro_name]/grub.cfg
 | 
contoh dari command di atas adalah:
| 1
 | grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg
 | 
lalu restart perangkat anda untuk uji coba.