Memahami Struktur Partisi dan Hierarki FileSystem Pada LinuX

memahami hierarti linux file sistem dan mounting pada linux

FileSystem Hierarchy Standard(FHS)

FHS menentukan struktur linux directory dan isi dari directory tersebut dalam sistem operasi berbasis Unix. aturan ini diperkenalkan oleh Linux foundation dan hanya digunakan oleh Linux. aturan ini disesuaikan dengan perkembangan linux , Versi terakhir aturan FHS adalah versi 3.0 yang dirilis pada tanggal 18 Mei 2015 .

 Versi  Tanggal Release Keterangan
1.0 1994-02-14 FSSTND[29]
1.1 1994-10-09 FSSTND[30]
1.2 1995-03-28 FSSTND[31]
2.0 1997-10-26 FHS 2.0 is the direct successor for FSSTND 1.2. Name of the standard was changed to Filesystem Hierarchy Standard.[32][33][34]
2.1 2000-04-12 FHS[35][36][37]
2.2 2001-05-23 FHS[38]
2.3 2004-01-29 FHS[39]
3.0 2015-05-18 FHS[40]

Di dalam aturan FHS, semua file dan folder (directory) berada di bawah root directory yang diberi simbol /, walau berada di psical storage atau virtual storage yang berbeda semua file dan folder harus dimuat di bawah root directory( / )dengan cara mounting. perlu diketahui juga semua settingan di linux berbasis text ,jadi untuk mengubah settingan suatu aplikasi kita harus mengubah file config nya yang biasnaya diletakan di directory /etc

Linux mempunyai banyak variant dan tiap varian(Linux Family /distro) biasanya mempunayi struktur hierarki file system yang agak berbeda , tetapi secara garis besar mengikuti struktus standar linux dan hanya menambahkan beberapa folder saja.

stuktur directory tree pada linux

Directory Description
/
Merupakan direktori induk dari semua sub drectory yang ada dan  berfungsi sebagai root directory
/bin
Directory ini berisi Command Linux yang  sering kita gunakan dan bisa digunakan oleh setiap user .
/boot
Berisi Bootloader dan konfigurasinya,kernel dan file pendukung yang menghandle urusan booting
/dev
Semua Device yang terpasang akan dimunculkan disini dalam bentuk file,baik external atau internal device.
/etc
Semua konfigurasi dari suatu aplikasi akan diletakan disini
/etc/opt
folder tempat file konfigurasi untuk add on package (Aplikasi yang diinstall manual di /opt) akan diletakan disini
/etc/sgml
Folder tempat file konfigurasi aplikasi yang memproses SGML
/etc/X11
Folder tempat file konfigurasi X windows sistem versi 11
/etc/xml
Folder tempat file konfigurasi aplikasi yang memproses XML
/home
Merupakan Home dorectory untuk user selain root yang berisi personal setting dll
/lib
Library untuk file binnari yang berada di /bin dan /sbin
/lib<qual>
alternatf nama untuk directory utama
/media
Lokasi mount point untuk removeable media seperti flashDisk,cardReader dan CDROM
/mnt
Lokasi tempat mounting file sistem sementara /temporary
/opt
Lokasi file aplikasi yang diinstall secara manual tanpa perlu compile (Optional Applcation Software Packages)
/proc
Virtual filesystem yang menyediakan informasi tentang process dan kernel
/root
Home directory untuk user root
/run
Berisi Runtime variable data seperti kapan aplikasi dijalankan,ProcessID ,dll
/sbin
Berisi file binnari utility seperti init,fsck,mkfs,ssh,smbd dll
/srv
Berisi Data informasi tentang layanan yang disediakan oleh sistem  misalnya FTP server ,Webserver atau repository untuk version control system
/sys
Berisi informasi tentang perangkat/devices yang terpasang pada komputer
/tmp
Lokasi temporary file untuk aplikasi dan sistem
/usr
merupakan hierarki sekunder untuk read only  user data yang berisi sebagian besar aplikasi dan utilitas untuk multi user
/usr/bin
Berisi aplikasi/command non esensial (pokok) dan tidak diperlukan oleh single user mode
/usr/include
Standard include files.
/usr/lib
LIbrary untuk binnary file yang berlokasi di /usr/bin/ dan /usr/sbin/.
/usr/lib<qual>
Alternate format libraries (optional).
/usr/local
hirerarki sekunder untuk local data yang dikhususkan untuk host ini.
/usr/sbin
sistem binnary non esensial /pokok seeprti daemon/service untuk network services
/usr/share
Architecture-independent (shared) data.
/usr/src
Source code seperti kernel source code dengan header files
/usr/X11R6
X Window System, Version 11, Release 6 (up to FHS-2.3, optional).
/var
Variable files— dimana file tersebut secara  dinamik berubah ketika system bekerja seperti Logs,spools,dan temporary browser /email.
/var/cache
cache dari aplikasi yang bekerja, dimana cache diperlukan untuk menyimpan perhitungan dalam waktu singkat dan agak besar. cache ini diperlukan karena adanya delai perhitungan I/O .
/var/lib
informasi tetap hasil modifikasi aplikasi yang berjalan seperti database dan meta data packages.
/var/lock
Lock files. yang digunakan oleh aplikasi untuk melacak resouce yang digunakan nya.
/var/log
Log files
/var/mail
Mailbox files. pada beberapa distro mungkin berada di  /var/spool/mail.
/var/opt
Variable data dari  add-on packages yang berada di  /opt/.
/var/run
Run-time variable data. folder ini berisi informasi system komputer, mulai dari aplikasi yang berjalan sampai kapan komputer booting

pada FHS versi 3.0 /var//run digantikan oleh /run . biasanya sistem baru mempertahankan lokasi lama /var/run dengan cara membuat symbolik link dari /var/run yang diarahkan ke /run

/var/spool
Spool untuk antrian data yang akan diproses seperti antrean print dan Email
/var/spool/mail
Lokasi penyimpanan mailbox user
/var/tmp
Lokasi file temporary yang tetapdipertahankan walau komputer telah direboot

Dimana lokasi aplikasi diinstall (Programs Files) pada linux? 

Sesuai dengan penjelasan heirarki struktur direktori linux diatas maka lokasi penginstallan aplikasi akan dipencar pencar dan dimasukan kedalam directory yang telah ditentukan :

  • Binnary file untuk executable akan diletakan di /bin atau /usr/bin tergantung dari tipe aplikasi.
  • File Konfigurasi akan diletakan di /etc
  • File library akan diletakan di /lib atau /usr/lib
  • dan seterusnya
    lokasi programs files (aplikasi diinstall)pada linux

/OPT untuk aplikasi portable (tanpa perlu compile /install)
Tetapi jika aplikasi yang diinstall tidak memerlukan compile /optional packages (Portable) langsung bisa dijalankan  maka kita perlu meletakan nya di /opt
lokasi penginstallan aplikasi optional packages portable pada directory /opt

Kesimpulan lokasi installasi aplikasi pada linux
Jadi file aplikasi pada linux akan dipencar penempatannya (tidak pada satu folder seperti pada windows) sesuai dengan aturan HFS v.3 tetapi khusus aplikasi portable yang  bisa dijalankan tanpa compile dan install maka file aplikasi akan ditemaptkan dalam satu folder di /opt. karena aplikasi yang terinstall file nya dipencar-pencar maka ketika ingin menginstall /menghapus baiknya gunakan package manager untuk memudahkan mengelola aplikasi yang terinstall pada linux

Partisi pada Linux

Ketika kamu nginstall linux maka kamu perlu membuat partisi wajib dan partisi optional. partisi wajib harus dibuat agar linux bisa diinstall pada system . ada beberapa skema partisi linux berdasar pemilihan Partition table dan Firmware Mode, berikut contoh skema partisi Linux pada BIOS san UEFI .

A.Format Penulisan Nama Drive dan Partisi

Format penulisan drive dan partisi pada linux biasanya ditulis dengan urutan : Tipe hardisk ,Nomer hardisk ,dan nomer partisi

sd Untuk Disk tipe SATA
hd Untuk Disk tipe IDE /ATA
a untuk hardisk/SSD pertama, b untuk hardisk/SSD kedua dst
1 untuk partisi pertama 2 untuk partisi kedua dst

Contoh :
sda1 artinya partisi pertama(1) pada disk pertama(a),dengan tipe disk SATA(sd)
hda2 artinya partisi kedua(2) yang berada pada disk pertama(a) dengan tipe disk ATA/IDE (hd)

melihat mount pint drive pada linux
Dengan perintah lsblk atau df -h kita bisa melihat partisi kapasitas dan mount point pada linux

B.Contoh Layout Partisi  MBR – BIOS

Pada MBR -BIOS ,partisi yang wajib diuat adalah partisi swap dan partisi root. Swap berfungsi sebagai virtual memory yang akan digunakan oleh sistem untuk menampung ram overload dan temporary memory. sedangkan partisi root dengan moount point / merupakan partisi utama tempat linux diinstall.
contoh skema partisi utama pada MBR BIOS Linux sustem

Swap
-Mount Point    :  [Swap]
-Partisi              : /dev/sdx1
-Jenis Partisi    : Linux Swap
-Bootable Flag  : tidak
-Ukuran Partisi : Minimal 512MiB

Root
-Mount Point    :  /
-Partisi              : /dev/sdx2
-Jenis Partisi    : Linux (LVM,EXT,ZFS,XFS dll)
-Bootable Flag  : tidak
-Ukuran Partisi : Minimal 15GiB

C.Contoh Layout Partisi GPT -UEFI

Pada GPT -UEFI ,partisi yang wajib diuat adalah partisi EFIswap dan partisi root.Partisi EFI berguna untuk menaruh efi bootloader linux , Swap berfungsi sebagai virtual memory yang akan digunakan oleh sistem untuk menampung ram overload dan temporary memory. sedangkan partisi root dengan moount point / merupakan partisi utama tempat linux diinstall.
contoh skema partisi linux dengan GPT dan UEFI firmware

EFI  atau Boot
-Mount Point    :  /boot atau /boot/efi
-Partisi              : /dev/sdx1
-Jenis Partisi    : FAT32
-Bootable Flag  : yes
-Ukuran Partisi : 260-512 MiB

Swap
-Mount Point    :  [Swap]
-Partisi              : /dev/sdx2
-Jenis Partisi    : Linux Swap
-Bootable Flag  : tidak
-Ukuran Partisi : Minimal 512MiB

Root
-Mount Point    :  /
-Partisi              : /dev/sdx3
-Jenis Partisi    : Linux (LVM,EXT,ZFS,XFS dll)
-Bootable Flag  : tidak
-Ukuran Partisi : Minimal 15GiB

Mounting Pada Linux

Mounting merupakan tindakan mengasosiasikan storage device (flashdisk,HDD,CDROM dll) ke lokasi tertentu pada directory tree linux (dibawah root directory /), hal ini perlu dilakukan karena Linux hanya mempunyai satu directory tree dengan induk atau root directory yang diberi simbol slash atau garis miring /

Tidak seperti windows dimana setiap partisi drive bisa menjadi root directory (yang diwakili dengan drive letter misal C:\ D:\ E:\ dst), linux hanya mempunyai 1 root directory yaitu root yang diwakili dengan simbol slash atau garis miring /.Maka semua partisi ,device,filesystem harus dimuat (mount) dibawah root directory agar bisa digunakan oleh sistem.

Contoh:
Katakanlah kamu ingin mengakses file yang ada di CD-ROM, maka kamu harus me mount CD-ROM (biasanya sudah dilakukan otomatis ) kedalam lokasi tertentu dalam directory tree linux. katakanlah  CD-ROM device akan dimount ke /dev/cdrom dan mount point yang dipilih  untuk volume CD-ROM adalah /media/cdrom   maka perintah manual untuk nge-mount nya adalah # mount /dev/cdrom /media/cdrom .
Jika di dalam CD-ROM terdapat folder dengan nama foto maka untuk bisa mengaksesnya kita menggunakan lokasi mount dan folder —  /media/cdrom/foto 

Bukan hanya device dan drive saja yang dimount,namun file sistem juga ikut dimount agar bisa digunakan seperti proc ,sys.run,tmpfs,defpts dan lain lain. kita bisa melihat mount point linux dengan perintah $ cat /proc/mounts
melihat lokasi mountpoint filesistem device dan drive pada linux

Tools Untuk Mengatur File system dan  Partisi Pada Linux

Ada beberapa tool berbasis command line interface (CLI) yang biasa digunakan untuk melihat informasi drive dan partisi serta untuk mengelola partisi

  • du  (Disk Usage)
    Perintah  $ du -sh digunakan untuk melihat summary ukuran pemakaian volume untuk setiap folder atau file yang ada dalam sistem.  untuk manual penggunaan nya silakan gunakan perintah $ man du

    [[email protected] ~]$ du -sh /home/masarie
    25G	/home/masarie
    [[email protected] ~]$ 
    
  • df (Disk Free)
    digunakan untuk melihat report sisa ruang disk space pada linux sistem ,untuk manual penggunaan nya silakan gunakan perintah $ man df

    [[email protected] ~]$ df -h
    Filesystem      Size  Used Avail Use% Mounted on
    dev             3.9G     0  3.9G   0% /dev
    run             3.9G  1.5M  3.9G   1% /run
    /dev/sda2        33G   19G   14G  59% /
    tmpfs           3.9G  107M  3.8G   3% /dev/shm
    tmpfs           3.9G     0  3.9G   0% /sys/fs/cgroup
    /dev/sda1       975M  392K  975M   1% /boot/efi
    tmpfs           3.9G   44K  3.9G   1% /tmp
    /dev/sda4        87G   26G   61G  30% /home
    /dev/sda9        65G   60G  4.4G  94% /run/media/masarie/DATA
    tmpfs           791M   20K  791M   1% /run/user/1000
    [[email protected] ~]$
  • lsblk (List Block Devices)
    digunakan untuk menampilkan block device yang tersedia,namun tidak menampilkan RAM , block device yang dimaksud disini seperti flashdisk,mmc,HDD,SSD,DCROM dll.untuk manual penggunaan nya silakan gunakan perintah $ man lsblk

    [[email protected] ~]$ lsblk
    NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
    sda           8:0    0 223.6G  0 disk 
    ├─sda1        8:1    0 976.6M  0 part /boot/efi
    ├─sda2        8:2    0  32.9G  0 part /
    ├─sda3        8:3    0   1.9G  0 part [SWAP]
    ├─sda4        8:4    0  88.8G  0 part /home
    ├─sda5        8:5    0   300M  0 part 
    ├─sda6        8:6    0   100M  0 part 
    ├─sda7        8:7    0   128M  0 part 
    ├─sda8        8:8    0  34.3G  0 part 
    └─sda9        8:9    0  64.2G  0 part /run/media/masarie/DATA
    mmcblk0     179:0    0   1.9G  0 disk 
    └─mmcblk0p1 179:1    0   1.9G  0 part
  • cfdisk /fdisk
    digunakan untuk mengelola prtisi dari create,delete,mengatur jenis pertisi dll .tool ini berbasis CLI (Command Line Interface)
    tool utilitas pengelola partisi pada linux
  • Gparted
    Merupakan tool pengelola partisi (partition manager) berbasis GUI untuk Linux
  • LVM partition manager
    Ada beberapa linux seperti CentOS menggunakan partisi jenis LVM , untuk mengelola partisi dengan tipe LVM silakan cari GUI LVM manager pada repository sofware distro masing masing.
    Untuk versi command line bisa menggunakan perintah : pv (physical volume) ,vg (volume group) dan lv (logical volume)pv (physical volume)
    ketik pv lalu tekan tab untuk melihat command yang tersedia

    [[email protected] ~]# pv
    pvchange   pvck       pvcreate   pvdisplay  pvmove     pvremove   pvresize   pvs        pvscan

     vg (volume group)
    ketik vg lalu tekan tab untuk melihat command yang tersedia

    [[email protected] ~]# vg
    vgcfgbackup    vgck           vgdisplay      vgimport       vgmknodes      vgrename       vgsplit        
    vgcfgrestore   vgconvert      vgexport       vgimportclone  vgreduce       vgs            
    vgchange       vgcreate       vgextend       vgmerge        vgremove       vgscan

    lv (logical volume)
    ketik lv lalu tekan tab untuk melihat command yang tersedia

    [[email protected] ~]# lv
    lvchange     lvcreate     lvextend     lvmchange    lvmconfig    lvmdump      lvmpolld     lvmsar       lvremove     lvresize     lvscan
    lvconvert    lvdisplay    lvm          lvmconf      lvmdiskscan  lvmetad      lvmsadc      lvreduce     lvrename     lvs          
    [[email protected] ~]#

Kurang jelas? Silakan Bertanya