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

Latar Belakang Masalah

Sebelumnya, saya sudah membuat catatan dengan judul serupa, Booting ke Linux ISO menggunakan GRUB2 (Tanpa Bootable FlashDrive) a.k.a RecoveryHD.

Namun, ternyata setelah saya gunakan untuk melakukan arch-chroot, partisi tidak dapat di-mounting ke /mnt.

Saya menduga hal ini diakibatkan oleh, saya menjalankan Arch ISO dari dalam filesystem yang akan saya mounting. Melakukan mounting ke filesystem yang sudah dimounting oleh Arch ISO. Karena Arch ISO disimpan pada partisi /dev/sda1, yaitu pada direktori /root/iso/archlinux.iso. Sedangkan, saya ingin memounting /dev/sda1 ke /mnt untuk melakukan arch-chroot. Lucu kan 😄.

Pemecahan Masalah

Dari kasus tersebut, sudah terlihat solusi sederhana yang dapat saya lakukan adalah, membuat partisi sendiri khusus untuk menyimpan file ISO.

Membuat Partisi Recovery

Cara untuk membuat partisi, bebas saja, teman-teman dapat menggunakan tools favorit teman-teman.

Saya pribadi mengguakan GParted LiveUSB agar lebih mudah dalam mevisualisasikan partisi.

Kira-kira, seperti di bawah ini.

NAME   FSTYPE   SIZE TYPE LABEL    MOUNTPOINT
sda           447.1G disk
├─sda1 ext4   446.1G part ROOT     /
└─sda2 ext4    1023M part RECOVERY

Saya membuat partisi /dev/sda2 sebesar 1 GiB dan saya beri label RECOVERY degan filesystem ext4.

Ukuran partisi hanya 1 GiB karena tujuan saya membuat partisi ini adalah untuk menyimpan file ISO dari Artix Linux Base OpenRC yang hanya sebesar 600an MiB

Masukkan File Artix ISO

Kemudian, masukkan file Artix Linux ISO ke dalam partisi recovery.

Agar tidak ribet karena harus menggunakan root permission, saya akan buat direktori dengan user permission yang akan saya berinama iso/.

$ sudo mkdir iso

Kemduian, ubar kepemilikan direktori iso/ ke user yang kita gunakan.

$ sudo chown -R bandithijo:bandithijo iso

Kemudian, tinggal masukkan Artix Linux ISO ke dalam direktori iso/ ini.

└── iso
    └── artix-base-openrc-20210101-x86_64.iso

Membuat GRUB2 Menuentry

Selanjutnya, kita perlu membuat menuentry pada GRUB2, untuk mengarahkan boot ke dalam partisi recovery yang di dalamnya sudah berisi Artix Linux ISO.

FILE/etc/grub.d/40_custom
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.

menuentry "ArtixLinux ISO (OpenRC)" {
  iso_drv=(hd0,msdos2)
  iso_path="/iso/artix-base-openrc-20210101-x86_64.iso"
  export iso_path
  search --set=root --file "$iso_path"
  probe -u $root --set=rootuuid
  export rootuuid
  loopback loop "$iso_drv$iso_path"
  root=(loop)
  configfile /boot/grub/loopback.cfg
  loopback --delete loop
}

Yang harus diperhatikan!

iso_drv, adalah path yang mengarahkan ke partisi yang kita siapkan khusus untuk recovery. hd0 berarti disk pertama, msdos2 berarti partisi kedua. (/dev/sda2).

iso_path, adalah letak dimana Artix ISO kita letakkan di dalam partisi recovery.

Kedua variable di atas, perlu teman-teman sesuaikan sendiri dengan kondisi sistem yang teman-teman miliki.

Update GRUB2

Kalau sudah, tinggal update GRUB2.

$ sudo update-grub

Atau,

$ sudo grub-mkconfig -o /boot/grub/grub.cfg

Agar custom menuentry yang baru saja kita buat/modifikasi, digenerate ke dalam GRUB2 menuentry.

Mantap!

Kalau sudah begini tinggal mencobanya.

Demonstrasi

Tips

Menyembunyikan Recovery Partition

Karena kita membuat partisi recovery, otomatis oleh GVFS, partisi ini akan terbaca di File Manager.

gambar_01

Untuk menyembunyikan partisi RECOVERY, kita dapat memberikan rules di udev.

Recovery partisi saya berada pada /dev/sda2.

NAME   FSTYPE   SIZE TYPE LABEL    MOUNTPOINT
sda           447.1G disk
├─sda1 ext4   445.1G part ROOT     /
└─sda2 ext4       2G part RECOVERY

Blok partisi inilah yang akan saya sembunyikan.

Buat file udev rule dengan text editor favorit teman-teman, dengan root permission.

Tambahkan seperti rule di bawah.

FILE/etc/udev/rules.d/99-hide-partitions.rules
1
KERNEL=="sda2",ENV{UDISKS_IGNORE}="1"

Setelah itu, jalankan perintah:

$ sudo udevadm trigger --verbose

gambar_02

Nah, sekarag partisi RECOVERY sudah tidak terlihat.

Namun, masih dapat kita lihat pada $ lsblk.

Memperbaharui File ISO

Kalau ingin memperbaharui file ISO, tinggal dimount saja sengan udisksctl.

$ udisksctl mount -b /dev/sda2

Unmount dengan,

$ udisksctl unmount -b /dev/sda2


Pesan Penulis

Sepertinya, segini dulu yang dapat saya tuliskan.

Selanjutnya, saya serahkan kepada imajinasi dan kreatifitas teman-teman. Hehe.

Mudah-mudahan dapat bermanfaat.

Terima kasih.

(^_^)

Referensi

  1. forum.artixlinux.org/index.php/topic,1669.0.html
    Diakses tanggal: 2021/03/01


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

d98d8237fef8f1017d0be931b6e291341cbe6ca8