بسم الله الرحمن الرحيم

STEP 2 : Disk Partitioning

2.1 Mengecek UEFI Mode

Saya lebih prefer untuk menggunakan mode bios UEFI ketimbang mode bios Legacy. Untuk itu kita akan mengecek apakah kita sudah berada pada mode UEFI atau belum.

# ls /sys/firmware/efi

Kemudian perhatikan apakah terdapat direktori efivars atau tidak. Jika ada, berarti kita sudah berada di jalan yang benar. Apabila belum, berarti kita harus mengeset ulang pengaturan pada BIOS dan merubahnya menjadi UEFI.

2.2 Mengatur Partisi Tabel

Kita akan membuat dua partisi. Yang pertama adalah partisi ESP (EFI System Partition) dan partisi / (baca: root). Saya lebih prefer menggunakan satu partisi / dan tidak memisahkan partisi /home dari /.

Pertanyaan

Mengapa saya tidak memisahkan partisi /home?

Karena saya tidak berniat untuk memasang distribusi sistem operasi GNU/Linux yang lain.

Pertama-tama kita harus mengetahui alamat blok dari hard drive yang akan kita partisi.

# lsblk -p

Pada kasus saya, storage device saya memiliki nama block sda. Saya dapat mengetahui dari jumlah kapasitasnya.

Kemudian langkah selanjutnya adalah mempartisi hard disk. Terdapat banyak aplikasi yang dapat kita gunakan seperti parted, fdisk, gdsik, cfdisk, cgdisk, dll. Namun pada dokumentasi ini saya akan menggunakan gdisk.

# gdisk /dev/sda
Steps Details
o↲ → Y↲ => Membuat GPT
n↲ → ↲ → ↲ → +512MiB↲ → EF00↲ => Membuat ESP (EFI System Partition)
n↲ → ↲ → ↲ → ↲ → 8E00↲ => Membuat sisa block partisi menjadi / (8E00 adalah kode untuk LVM)
p↲ => Melihat tabel partisi
w↲ → Y↲ => Menulis table partition ke disk dan otomatis exit dari gdisk

Sebelum kita write w, saat kita memasukkan perintah p, akan ditampilkan partisi tabel yang telah kita buat.

Number  Start (sector)  End (sector)   Size      Code  Name
   1            2048       1050623    512.0 MiB  EF00  EFI system partition
   2         1050624      20971486      9.5 GiB  8E00  Linux LVM

Setelah kembali ke prompt ArchISO shell #, kita dapat mengecek apakah partisi kita telah berhasil dibuat atau tidak, dengan perintah.

# fdisk -l
Disk /dev/vda: 10 GiB, 10737418240 bytes, 20971520 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 978C3EB8-984B-4189-BD33-F61A7272132B

Device       Start      End  Sectors  Size Type
/dev/sda1     2048  1050623  1048576  512M EFI System
/dev/sda2  1050624 20971486 19920863  9.5G Linux LVM

Akan terdapat detail keterangan bahwa kita menggunakan gpt dan terdapat 2 partisi /dev/sda1 (EFI System) dan /dev/sda2 (Linux LVM).

sda1 akan kita gunakan sebagai partisi /boot/efi dan sda2 akan kita gunakan sebagai partisi /.

Pertanyaan

Mengapa saya tidak menggunakan partisi SWAP?

Kalau ingin menggunakan SWAP, dapat kita tambahkan belakangan, setelah sistem kita jadi.

Saya juga lebih memilih menggunakan swapfile saja. Sehingga swapfile hanya akan saya buat apabila saya perlukan.

2.3 Mengenkripsi Partisi /dev/sda2

Pada saat ini, dimana semua orang mulai memperhatikan keamanan data, meskipun hanya laptop pribadi namun saya berusaha untuk tetap belajar mengerti bagaimana cara mengamankan data yang ada di dalam hard disk saya.

Pada dokumentasi instalasi ini saya akan menggunakan enkripsi pada partisi /dev/sda2 dan juga akan mengenkripsi direktori /home/username. Mungkin bisa disebut ini keamanan kue lapis. Hehe

Aplikasi disk encryption yang saya pergunakan adalah LUKS (dm-crypt).

# cryptsetup luksFormat /dev/sda2
Steps Details
YES↲ => Konfirmasi dengan YES huruf kapital
***************** => Masukkan password untuk enksripsi /sda2
***************** => Konfirmasi password /sda2

Outputnya kira-kira seperti ini,

WARNING!
========
This will overwrite data on /dev/sda2 irrevocably.

Are you sure? (Type 'yes' in capital letters): YES
Enter passphrase for /dev/sda2:
Verify passphrase:
WARNING: Locking directory /run/cryptsetup is missing!
cryptsetup luksFormat /dev/sda2  10.05s user 1.22s system 43% cpu 25.939 total

Kita telah berhasil membuat /dev/sda2 terenkripsi dengan LUKS.

Tahap selanjutnya adalah mengkonfigurasi LVM pada /dev/sda2. Untuk itu kita perlu membuka kembali /dev/sda2 yang baru saja kita enkripsi.

# cryptsetup luksOpen /dev/sda2 lvm

Kita akan diminta memasukkan password untuk mendecypt partisi.

Enter passphrase for /dev/vda2: _

Selanjutnya, membuat physical volume.

# pvcreate /dev/mapper/lvm

Membuat volume group.

# vgcreate volume /dev/mapper/lvm

Membuat logical volume dengan nama “root”.

# lvcreate -l 100%FREE volume -n root

Kita telah berhasil mengkonfigurasi LVM pada /dev/sda2 yang terenkripsi.

Kalau kita lihat skema partisinya.

# lsblk -p
NAME                          MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
/dev/loop0                      7:0    0 559.5M  1 loop  /run/archiso/sfs/airootfs
/dev/sr0                       11:0    1 682.3M  0 rom   /run/archiso/bootmnt
/dev/vda                      254:0    0    10G  0 disk
├─/dev/vda1                   254:1    0   512M  0 part
└─/dev/vda2                   254:2    0   9.5G  0 part
  └─/dev/mapper/lvm           252:0    0   9.5G  0 crypt
    └─/dev/mapper/volume-root 252:1    0   9.5G  0 lvm
Informasi

Sekedar pengetahuan saja.

Unmounting.
Cara untuk meng-encrypt kembali atau unmount partisi dengan enkripsi, kita dapat menggunakan cara seperti ini:

# cryptsetup luksClose /dev/mapper/volume-root
# cryptsetup luksClose /dev/mapper/lvm

*Proses unmounting dilakukan dari partisi paling bawah.


Mounting.
Cara untuk men-decrypt kembali atau mount partisi dengan enkripsi, kita dapat menggunakan cara seperti ini:

# cryptsetup luksOpen /dev/sda2 lvm

Lihat nama volume group dan volume name.

# lvs
  LV   VG     Attr       LSize Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root volume -wi-a----- 9.48g

Nah, tinggal di mount logical volumenya.

# lvchange -ay volume/root

Atau, semua logical volume di volume group tersebut.

# lvchange -ay volume

2.4 Memformat Partisi

Setelah kita mengkonfigurasi partisi tabel, langkah selanjutnya adalah mem-format partisi sesuai tipe partisi yang telah kita buat. Terdapat dua file sistem yang akan kita gunakan, yaitu FAT32 dan EXT4. File sistem FAT32 akan kita gunakan untuk /dev/sda1 yang merupakan partisi ESP (EFI System Partition). Sedangkan file sistem EXT4 akan kita gunakan untuk /dev/sda2 yang merupakan / partisi.

Mem-_format_ partisi /dev/sda1.

# mkfs.fat -F32 /dev/sda1

Mem-_format_ partisi /dev/sda2.

# mkfs.ext4 /dev/mapper/volume-root

Untuk melihat apakah konfigurasi partisi kita telah sesuai atau tidak, kita dapat menggunakan perintah di bawah ini untuk melihat struktur dari tabel partisi.

# lsblk -p
NAME                            SIZE RO TYPE  MOUNTPOINT
/dev/loop0                    559.5M  1 loop  /run/archiso/sfs/airootfs
/dev/sr0                      682.3M  0 rom   /run/archiso/bootmnt
/dev/sda                         10G  0 disk
├─/dev/sda1                     512M  0 part
└─/dev/sda2                     9.5G  0 part
  └─/dev/mapper/lvm             9.5G  0 crypt
    └─/dev/mapper/volume-root   9.5G  0 lvm

Apabila telah sesuai, akan menampilkan susunan /dev/sda pada kolom NAME, seperti yang terdapat pada tabel di atas.


Penulis

bandithijo

My journey kicks off from reading textbooks as a former Medical Student to digging bugs as a Software Engineer – a delightful rollercoaster of career twists. Embracing failure with the grace of a Cat avoiding water, I've seamlessly transitioned from Stethoscope to Keyboard. Armed with ability for learning and adapting faster than a Heart Beat, I'm on a mission to turn Code into a Product.

- Rizqi Nur Assyaufi

dccdf58fd8b5291092f9298491df3aa00affca3f