TMR 30 : Adinusa Linux System Administration - Modul 9

>    Filesystem Features


-    Learning Objectives

Pada akhir modul ini, Anda diharapkan mampu:

  • Menjelaskan konsep seperti directory files dan extended attributes.

  • Membuat dan memformat filesystem.

  • Memeriksa dan memperbaiki kesalahan pada filesystem.

  • Melakukan mount dan unmount filesystem.

  • Menggunakan network file systems.

  • Memahami cara melakukan automount filesystem dan memastikan filesystem tersebut ter-mount saat booting.



>    mkfs


-    Membuat Filesystem

Setiap tipe filesystem memiliki utilitas untuk memformat (membuat) filesystem di sebuah partisi. Nama generik untuk utilitas ini adalah mkfs (make filesystem). Namun, mkfs sebenarnya hanya frontend untuk program khusus setiap filesystem, yang masing-masing mungkin memiliki opsi-opsi tertentu.


-    Perintah mkfs

Format umum perintah mkfs adalah:


mkfs [-t fstype] [options] [device-file]
  • fstype: Jenis filesystem yang ingin dibuat, seperti ext4, xfs, vfat, dll.

  • device-file: Nama file perangkat, biasanya berupa seperti /dev/sda3 atau /dev/vg/lvm1.


Contoh berikut menunjukkan dua perintah yang sebenarnya setara:

$ sudo mkfs -t ext4 /dev/sda10

atau

$ sudo mkfs.ext4 /dev/sda10

Setiap jenis filesystem memiliki program mkfs spesifik dengan opsi-opsi format yang berbeda.


Untuk mengetahui opsi lengkap dari masing-masing program mkfs, Anda dapat melihat manualnya dengan perintah:

$ man mkfs.ext4

atau

$ man mkfs.xfs

dan sebagainya sesuai filesystem yang digunakan.



>    fsck


-    Memeriksa dan Memperbaiki Filesystem

Setiap tipe filesystem memiliki utilitas untuk memeriksa kesalahan dan (jika memungkinkan) memperbaikinya. Nama generik untuk utilitas ini adalah fsck (file system check). Namun, seperti halnya mkfs, fsck hanyalah frontend untuk program spesifik masing-masing filesystem.


-    Perintah fsck

Format umum penggunaan perintah fsck:

fsck [-t fstype] [options] [device-file]
  • fstype: Jenis filesystem (misalnya ext4, xfs, dll).

  • device-file: Nama perangkat (misalnya /dev/sda3 atau /dev/vg/lvm1).

Biasanya Anda tidak perlu menyebutkan tipe filesystem karena fsck bisa mengenalinya dari superblock partisi.

Contoh dua perintah berikut ini hasilnya setara:

$ sudo fsck -t ext4 /dev/sda10

atau

$ sudo fsck.ext4 /dev/sda10

Dalam banyak kasus, cukup jalankan:

$ sudo fsck /dev/sda10

dan sistem akan otomatis mengenali jenis filesystem dari isi awal partisi tersebut.


-    Opsi Perbaikan

  • Gunakan opsi -r untuk perbaikan manual satu per satu.

  • Gunakan opsi -a untuk mencoba memperbaiki otomatis sebanyak mungkin.

Setiap filesystem juga memiliki opsi spesifik. Lihat dengan:

$ man fsck.ext4


-    Kelebihan Filesystem dengan Journalling

Filesystem modern dengan journalling seperti ext3/ext4 lebih cepat diperiksa karena:

  1. Tidak perlu memindai seluruh partisi karena perubahan sudah tercatat di jurnal.

  2. Desain filesystem terbaru memang mendukung pemeriksaan cepat (fast fsck), berbeda dengan generasi awal filesystem.


-    Menjalankan fsck secara Otomatis

fsck biasanya dijalankan otomatis setelah:

  • Jumlah mount tertentu tercapai.

  • Melewati waktu tertentu sejak terakhir dijalankan.

  • Sistem dimatikan secara tidak normal.

Untuk memaksa pemeriksaan saat boot:

$ sudo touch /forcefsck
$ sudo reboot

File /forcefsck akan otomatis dihapus setelah pemeriksaan selesai.



>    Mounting Filesystems

-    Struktur Tree Filesystem di Linux

Semua file yang dapat diakses di Linux diorganisasikan dalam satu struktur pohon hierarkis besar, dengan kepala pohon adalah direktori root (/).
Namun dalam prakteknya, seringkali terdapat lebih dari satu partisi — masing-masing dapat memiliki tipe filesystem berbeda — yang digabungkan dalam satu pohon filesystem.

Bahkan, partisi-partisi ini bisa berada di:

  • Perangkat fisik yang berbeda

  • Jaringan


-    Perintah mount dan umount

  • mount: Untuk menyambungkan filesystem pada struktur direktori.

  • umount: Untuk melepaskan filesystem dari struktur direktori.

Mount point adalah direktori tempat filesystem akan ditempelkan.
Mount point harus sudah ada sebelum digunakan, Anda bisa membuatnya dengan:


$ mkdir /mount/point


Catatan penting
:

  • Jika direktori mount point sudah berisi file, isinya akan tersembunyi setelah filesystem dipasang (mount).

  • File-file tersebut tidak dihapus, dan akan muncul kembali setelah filesystem dilepas (umount).


-    Hanya Superuser yang Bisa Mount/Umount

Secara default, hanya pengguna dengan hak superuser (root) yang dapat menjalankan mount dan umount.

Contoh Mounting Filesystem

Perintah berikut akan melakukan mounting:


$ sudo mount -t ext4 /dev/sdb4 /home


Penjelasan:

  • -t ext4: Menentukan tipe filesystem (opsional, biasanya sistem dapat menebak otomatis).

  • /dev/sdb4: Partisi tempat filesystem berada.

  • /home: Mount point di struktur direktori.

Setelah mount:

  • Isi asli dari /home akan tersembunyi.

  • Isi filesystem dari /dev/sdb4 akan muncul di /home.


-    Melihat Filesystem yang Sedang di-Mount

Untuk melihat daftar semua filesystem yang saat ini aktif di-mount:


$ mount




>    mount

-    Bentuk Umum Perintah mount

Format umum perintah mount adalah:

mount [options] <source> <directory>

Di sini:

  • <source> adalah sumber filesystem (seperti partisi, label, atau UUID).

  • <directory> adalah mount point, lokasi di mana filesystem akan ditempelkan.


-    Berbagai Cara Mount Filesystem

Anda bisa melakukan mount dengan berbagai cara. Semua contoh berikut ini setara:


$ sudo mount /dev/sda2 /home
$ sudo mount LABEL=home /home
$ sudo mount -L home /home
$ sudo mount UUID=26d58ee2-9d20-4dc7-b6ab-aa87c3cfb69a /home
$ sudo mount -U 26d58ee2-9d20-4dc7-b6ab-aa87c3cfb69a /home


Penjelasan:

  • Device Node (/dev/sda2): Menunjuk langsung ke partisi.
    Kurang disarankan di sistem modern karena nama device bisa berubah tergantung urutan boot.

  • Label: Nama yang diberikan pada filesystem menggunakan utilitas seperti e2label.
    Lebih stabil, tetapi ada risiko label duplikat.

  • UUID: Nomor unik yang diberikan saat partisi dibuat dan diformat menggunakan mkfs.
    Paling aman, karena setiap UUID dijamin unik.


-    Opsi pada mount

Perintah mount mendukung banyak opsi, baik yang generik maupun spesifik filesystem.

Contoh penggunaan opsi:


$ sudo mount -o remount,ro /myfs


Penjelasan:

  • -o remount,ro: Remount filesystem /myfs dengan mode read-only.

Untuk melihat ringkasan cepat semua opsi mount, gunakan:


$ mount --help




>    umount

-    Melepas (Unmount) Filesystem

Filesystem dapat dilepas (unmounted) menggunakan perintah:


$ umount [device-file | mount-point]


Contoh:

Melepas filesystem yang ter-mount di /home:

$ umount /home


Melepas device /dev/sda3:

$ umount /dev/sda3

 

Catatan penting: Nama perintahnya adalah umount, bukan unmount!


-    Opsi dalam umount

Seperti mount, perintah umount juga memiliki banyak opsi, sebagian besar tergantung pada jenis filesystem.
Untuk informasi lebih rinci tentang opsi-opsinya, sebaiknya merujuk pada halaman manual (man umount).


-    Error Umum: "Device is Busy"

Error yang paling sering muncul saat menggunakan umount adalah:

device is busy

Ini artinya filesystem yang ingin dilepas masih digunakan, contohnya:

  • Ada terminal terbuka di dalam direktori pada filesystem tersebut.

  • Ada proses lain yang menggunakan file atau direktori di filesystem tersebut.

Solusi:

  • Pindahkan direktori aktif ke lokasi lain dengan cd.

  • Tutup terminal yang berada di dalam filesystem yang ingin dilepas.

Jika proses lain masih menahan filesystem:

  1. Gunakan fuser untuk melihat siapa yang menggunakan filesystem:


$ fuser -m /home

  1. Gunakan lsof untuk melihat file apa saja yang sedang terbuka:


$ lsof +D /home

  1. Hentikan proses yang menggunakan filesystem tersebut jika perlu (dengan hati-hati), atau informasikan pengguna untuk menutup file.



>    Network Shares (NFS)

-    Mengenal NFS – Network File System

Dalam sistem Linux, sangat umum untuk me-mount filesystem jarak jauh melalui jaringan agar terlihat seperti direktori lokal. Metode yang paling umum dan sudah lama digunakan adalah NFS (Network File System).

NFS dikembangkan oleh Sun Microsystems pada tahun 1989, dan kini telah mencapai versi modern NFSv4, yang terus diperbarui sejak tahun 2000.

Selain NFS, terdapat juga beberapa jenis filesystem jaringan lain seperti:

  • AFS (Andrew File System)

  • SMB/CIFS (Server Message Block / Common Internet File System), yang umum digunakan di sistem Windows.


-    Mounting NFS Share

Kita bisa me-mount remote NFS share dengan perintah:

$ sudo mount -t nfs myserver.com:/shdir /mnt/shdir


Artinya: direktori shdir dari server myserver.com akan di-mount ke /mnt/shdir di mesin lokal.

Agar filesystem ini juga di-mount secara otomatis saat boot, baris berikut bisa ditambahkan ke file /etc/fstab:

myserver.com:/shdir /mnt/shdir nfs rsize=8192,wsize=8192,timeo=14,intr 0 0


-    Menghindari Masalah saat Boot

Karena filesystem jaringan bisa saja tidak tersedia (misalnya karena jaringan belum aktif saat boot), beberapa opsi penting bisa digunakan:

  • noauto – agar filesystem tidak otomatis di-mount saat boot.

  • netdev – agar hanya di-mount setelah jaringan aktif.

  • Solusi lain: gunakan autofs atau automount untuk mounting otomatis saat filesystem diakses.


-    Lihat Detail Lebih Lanjut

Untuk informasi tambahan mengenai opsi-opsi khusus NFS, kamu bisa membuka:

$ man nfs
$ man mount



>    Mounting Filesystem Otomatis Saat Booting dengan /etc/fstab

-    Apa itu /etc/fstab?

File /etc/fstab adalah file konfigurasi penting dalam sistem Linux yang digunakan untuk menentukan filesystem mana yang akan di-mount secara otomatis saat sistem booting.

Ketika sistem dinyalakan, perintah berikut otomatis dijalankan:

$ mount -a

Ini berarti semua entri yang ada di /etc/fstab akan diproses dan filesystem-nya di-mount sesuai instruksi yang tercantum.


-    Struktur /etc/fstab


Setiap baris di dalam file /etc/fstab terdiri dari 6 kolom dengan format:


<file system>   <mount point>   <type>   <options>   <dump>   <pass>


Contoh nyata:


UUID=c296ad3d-8fea-483a-a47a-d7456cfbbe27   /boot/efi   ext4   defaults   0   0


-    Penjelasan Masing-masing Kolom

  1. File System
    Bisa berupa:

    • Nama device (/dev/sda1)

    • UUID (lebih disarankan)

    • LABEL (opsional)
      Gunakan blkid untuk melihat UUID atau label:

    $ sudo blkid
    
  2. Mount Point
    Lokasi direktori tempat filesystem akan diakses (misalnya /home, /mnt/data, dll). Direktori ini harus ada.

  3. Type
    Jenis filesystem seperti ext4, xfs, ntfs, swap, dll.

  4. Options
    Daftar opsi mounting, dipisahkan koma. Contoh: defaults, noauto, ro, rw, user, nofail, dll.

  5. Dump
    Digunakan oleh tool dump untuk backup:

    • 1: ikut dibackup

    • 0: tidak dibackup (umumnya 0)

  6. Pass (fsck Order)
    Menentukan urutan pengecekan filesystem oleh fsck saat boot:

    • 0: tidak dicek

    • 1: root filesystem (hanya satu)

    • 2: partisi lainnya
      Biarkan 0 jika tidak yakin.



>    Menampilkan Penggunaan Filesystem dengan df

Perintah df (disk free) digunakan di Linux untuk menampilkan informasi penggunaan ruang disk pada filesystem. Ini sangat berguna untuk memantau kapasitas disk dan mencegah kehabisan ruang penyimpanan.


-    Perintah Dasar df

  1. Tampilan Default (dalam KByte)
    Menampilkan penggunaan ruang setiap filesystem:

    $ df
    
  2. Tampilan Lebih Mudah Dibaca (Human-readable)
    Menampilkan ukuran dalam format KB, MB, GB:

    $ df -h
    
  3. Tampilkan Tipe Filesystem
    Informasi tambahan mengenai jenis filesystem:

    $ df -T
    
  4. Tampilkan Informasi Inode
    Berguna untuk memeriksa jika disk tidak penuh, tetapi inode habis:

    $ df -i
    


-    Contoh Output



>    Menampilkan Penggunaan Disk dengan du

Perintah du (disk usage) digunakan untuk mengetahui seberapa besar kapasitas disk yang digunakan oleh file dan direktori. Berbeda dengan df yang menampilkan total dan sisa disk, du fokus pada penggunaan ruang oleh file atau folder tertentu.


-    Perintah Dasar du

  1. Tampilkan Penggunaan Disk di Direktori Saat Ini

    $ du
    
  2. Tampilkan Semua File dan Direktori

    Berguna untuk melihat detail semua elemen:

    $ du -a
    
  3. Gunakan Format Human-Readable (KB, MB, GB)

    Agar lebih mudah dipahami:

    $ du -h
    
  4. Tampilkan Penggunaan Disk untuk Direktori Tertentu

    Contoh:

    $ du -h somedir
    


-    Menampilkan Penggunaan Semua Subdirektori Secara Ringkas

Gunakan perintah berikut untuk melihat ringkasan penggunaan disk per folder di tingkat teratas:

$ find . -maxdepth 1 -type d -exec du -shx {} \; | sort -hr

Perintah ini akan:

  • Menampilkan ukuran masing-masing direktori

  • Hanya mencari hingga satu tingkat dalam struktur

  • Mengurutkan dari yang paling besar





>    Memahami Penggunaan Swap di Linux

Linux menggunakan sistem memori virtual yang memungkinkan sistem berjalan seolah-olah memiliki lebih banyak RAM daripada yang sebenarnya tersedia. Ini merupakan fitur penting untuk menjaga performa sistem saat menghadapi tekanan memori.


-    Konsep Virtual Memory dan Swap

Ada dua cara utama virtual memory bekerja:

  1. COW (Copy On Write)
    Banyak program tidak langsung menggunakan seluruh memori yang diberikan. Ketika proses anak (child) mewarisi memori dari proses induk, ia hanya akan mendapatkan salinan baru jika terjadi perubahan. Ini menghemat penggunaan memori.

  2. Swapping
    Ketika memori fisik penuh, bagian dari memori yang kurang aktif akan dipindahkan ke disk (swap), dan akan dikembalikan ke RAM jika dibutuhkan lagi.


-    Area Swap: Partisi atau File

Linux mendukung beberapa area swap, baik berupa partisi maupun file. Masing-masing swap memiliki prioritas, dan swap dengan prioritas lebih tinggi akan digunakan terlebih dahulu.

Rekomendasi umum: ukuran swap = total RAM sistem


-    Melihat Swap Aktif

Gunakan perintah berikut untuk mengecek area swap yang sedang digunakan:


$ cat /proc/swaps


Contoh output:


Filename          Type          Size      Used   Priority
/dev/sda6         partition     8290300   0      -1
/tmp/swpfile      file          102396    0      -2


Untuk melihat statistik memori:


$ free -m


-    Perintah Terkait Swap

  • mkswap → Membuat/format area swap

    $ sudo mkswap /dev/sdX
    
  • swapon → Mengaktifkan swap

    $ sudo swapon /dev/sdX
    
  • swapoff → Menonaktifkan swap

    $ sudo swapoff /dev/sdX
    






Komentar