Sejak memasang "dark" theme, saya cenderung menjadi malas menulis. Untuk sementara, dark theme saya disable dulu yaa. Terima kasih (^_^) (bandithijo, 2024/09/15) ●

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

Prakata

Sudah sejak bulan Juli 2018 saya memigrasikan aplikasi-aplikasi GUI (Graphical User Interface) menjadi aplikasi CLI (Command Line Interface), maksud saya selain text editor Vim. Memang terdengar absurd. Namun, ternyata setelah saya mencoba satu aplikasi, saya pun ketagihan dan mencoba mencari-cari aplikasi mana yang dapat saya migrasikan ke CLI. Untuk cerita migrasi aplikasi ini aka saya sambung pada artikel yang lain.

Karena alasan tersebut di atas, saya sampai pada tahap memigrasikan File Manager. File Manager yang menjadi favorite saya adalah PCManFM. Mungkin kapan-kapan File Manager ini akan saya bahas, mengapa menjadi satu-satunya File Manager yang saya pasang di sistem operasi saya.

Permasalahan

Salah satu kemampuan dari file manager adalah mounting/unmounting external drive, seperti: Flash Drive, External Hard Drive, SD Card, dll. Yang menjadi permasalahan adalah aplikasi file manager pengganti PCManFM yang saya gunakan, Ranger, tidak memiliki kemampuan ini. Tentu saja ini tidak sebanding dengan banyak kelebihan yang dimiliki oleh Ranger, maka dari itu saya tetap bersikeras menggunakan Ranger sebagai file manager utama saya.

Solusi

Untuk memecahkan permasalahan di atas, saya menggunakan aplikasi udisks2.

Cara menggunakannya sangat mudah.

Usage:
  udisksctl COMMAND

Commands:
  help            Shows this information
  info            Shows information about an object
  dump            Shows information about all objects
  status          Shows high-level status
  monitor         Monitor changes to objects
  mount           Mount a filesystem
  unmount         Unmount a filesystem
  unlock          Unlock an encrypted device
  lock            Lock an encrypted device
  loop-setup      Set-up a loop device
  loop-delete     Delete a loop device
  power-off       Safely power off a drive
  smart-simulate  Set SMART data for a drive

Options:
  -p, --object-path         Object path for ATA device
  -b, --block-device        Device file for ATA device
  --no-user-interaction     Do not authenticate the user if needed

Use "udisksctl COMMAND --help" to get help on each command.

Mounting

Untuk me-mounting flash drive atau external hard drive, hal yang perlu kita lakukan cukup dengan :

  1. Cek nama/alamat block dari drive yang akan kita mounting dengan lsblk

    $ lsblk
    NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
    sda      8:0    0 447.1G  0 disk
    ├─sda1   8:1    0   511M  0 part /boot
    ├─sda2   8:2    0 444.6G  0 part /
    └─sda3   8:3    0     2G  0 part [SWAP]
    sdX      8:16   1   7.2G  0 disk

    Periksa nama/lamat block /dev/sdX serta size, pastikan benar-benar drive yang anda inginkan

  2. Selanjutnya tinggal kita mount menggunakan udisksctl

    $ udiskctl mount -b /dev/sdX
    Mounted /dev/sdX at /run/media/username/AAAA-0000.
    

    Kemudian cek lagi dengan lsblk apakah sudah berhasil di-mounting

    $ lsblk
    NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
    sda      8:0    0 447.1G  0 disk
    ├─sda1   8:1    0   511M  0 part /boot
    ├─sda2   8:2    0 444.6G  0 part /
    └─sda3   8:3    0     2G  0 part [SWAP]
    sdX      8:16   1   7.2G  0 disk /run/media/username/AAAA-0000

    Apabila mengeluarkan tampilan seperti di atas, artinya mounting berhasil.

Unmounting

Setelah kita selesai berurusan dengan drive, sebelum mencabutnya sangat direkomendasikan untuk menjalankan proses unmounting. Caranya sangat mudah.

Perhatian

Pastikan file manager tidak sedang membuka direktori yang ada di dalam external drive yang akan kita unmount karena proses unmounting akan gagal dikarenakan partisi yang akan kita unmount dianggap sibuk.

  1. Jalankan udisksctl untuk proses unmounting

    $ udiskctl unmount -b /dev/sdX
    Unmounted /dev/sdX
    
  2. Selanjutnya lakukan pengecekan dengan lsblk untuk memastikan

    $ lsblk
    NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
    sda      8:0    0 447.1G  0 disk
    ├─sda1   8:1    0   511M  0 part /boot
    ├─sda2   8:2    0 444.6G  0 part /
    └─sda3   8:3    0     2G  0 part [SWAP]
    sdX      8:16   1   7.2G  0 disk

    Apabila mengeluarkan tampilan seperti di atas, artinya unmounting berhasil.

Power Off

Nah, namun apabila kita perhatikan, external drive masih dalam keadaan menyala. Apakah aman untuk kita lepas?

Jawabannya,”saya juga kurang yakin.”

Agar lebih yakin sebaiknya kita mematikan external drive tersebut, kemudian baru kita lepas. Caranya ada pada tahap di bawah.

  1. Jalankan kembali perintah udisksctl

    $ udiskctl power-off -b /dev/sdX
  2. Cek lagi apakah external drive sudah berhasil di power-off

    NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
    sda      8:0    0 447.1G  0 disk
    ├─sda1   8:1    0   511M  0 part /boot
    ├─sda2   8:2    0 444.6G  0 part /
    └─sda3   8:3    0     2G  0 part [SWAP]
    

    Apabila mengeluarkan tampilan seperti di atas, artinya proses power-off berhasil.

Video Ilustrasi

Akhir Kata

Untuk penjelasan lebih lengkap dan literatur tambahan silahkan membaca dari referensi yang saya sertakan di bawah. Karena sebaik-baiknya dokumentasi adalah dokumentasi yang ditulis sendiri oleh developer yang membuat aplikasi.

udisksctl juga dapat digunakan untuk melakukan mounting untuk file ISO image. Saya sudah pernah mencatatnya di sini, Mudah Mount & Unmount File ISO Image dengan Ruby Script (feat. udisksctl)

Referensi

  1. wiki.archlinux.org/index.php/Udisks
    Diakses tanggal: 2018/11/05

  2. freedesktop.org/wiki/Software/udisks/
    Diakses tanggal: 2018/11/05


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

944e8edeccab170ecee65673676b75514b2f62ed