ABDURROZAK
HOME ABOUT ME MICROSITE KONTAK PERSEMBAHAN HELP
ABDURROZAK.MY.ID // DEBIAN LINUX SERVER FUNDAMENTAL

FILE SYSTEM &STORAGE MANAGEMENT

Volume 04 dari seri Debian Linux Server Fundamental. Panduan komprehensif memahami file system Linux, partisi disk, mount/unmount, swap management, dan monitoring storage. Setiap command dijelaskan detail dengan syntax, parameter, contoh penggunaan, dan output. Dari struktur direktori FHS hingga troubleshooting storage.

VOLUME04 / 17
SUB-BAB8
BACA90 MENIT
STORAGE100%
ABDUR ROZAK, S.Kom. Web Developer & System Administrator - abdurrozak.my.id
VOLUME 04 / 17

FILE SYSTEM & STORAGE MANAGEMENT

Panduan lengkap file system dan storage management di Debian Linux. 8 sub-bab mencakup struktur direktori FHS, jenis file system (ext4, xfs, btrfs), partisi disk dengan fdisk/parted, format dan create file system, mount/unmount, konfigurasi fstab, swap management, hingga monitoring storage dengan df/du/lsblk. Setiap command disertai penjelasan detail.
SUB-BAB8 LEVELStorage WAKTU90 MENIT
01
SUB-BAB 01 FHS

STRUKTUR DIREKTORI LINUX (FHS)

Filesystem Hierarchy Standard (FHS)

FHS (Filesystem Hierarchy Standard) adalah standar struktur direktori di Linux. Semua distribusi Linux mengikuti standar ini agar konsisten. Memahami FHS penting untuk administrasi sistem yang efektif.

root directory structure
/ ├── bin → Essential user binaries (commands) ├── boot → Boot loader files (kernel, initrd) ├── dev → Device files (hardware devices) ├── etc → Configuration files ├── home → User home directories ├── lib → Essential shared libraries ├── media → Mount point for removable media ├── mnt → Temporary mount point ├── opt → Optional software packages ├── proc → Virtual filesystem (process info) ├── root → Home directory for root user ├── run → Runtime variable data ├── sbin → Essential system binaries ├── srv → Service data ├── sys → Virtual filesystem (hardware info) ├── tmp → Temporary files ├── usr → User programs and data └── var → Variable data (logs, spool, etc)

Direktori Penting

/etc
Configuration files untuk sistem dan aplikasi. Contoh: /etc/passwd, /etc/fstab, /etc/nginx/nginx.conf
/var
Variable data yang berubah-ubah. Logs (/var/log), spool (/var/spool), cache (/var/cache)
/home
Home directory untuk user biasa. Setiap user punya /home/username
/usr
User programs dan data. /usr/bin (binaries), /usr/lib (libraries), /usr/share (data)
/tmp
Temporary files. Biasanya di-clear saat reboot. Bisa di-mount sebagai tmpfs (RAM)
/var/log
Log files. syslog, auth.log, nginx/access.log, dll. Penting untuk troubleshooting

Direktori Lainnya

DIREKTORIFUNGSICONTOH ISI
/binEssential user binariesls, cp, mv, bash
/sbinEssential system binariesfdisk, iptables, reboot
/bootBoot loader filesvmlinuz, initrd, grub
/devDevice filessda, tty, null, zero
/libEssential shared librarieslibc.so, ld-linux.so
/mediaMount point removable mediaUSB, CD-ROM auto-mount
/mntTemporary mount pointManual mount
/optOptional softwareThird-party apps
/procVirtual filesystem (process)cpuinfo, meminfo
/rootHome directory rootRoot user files
/runRuntime variable dataPID files, sockets
/srvService dataFTP, WWW data
/sysVirtual filesystem (hardware)Hardware info
TIPS: Untuk melihat isi direktori, gunakan ls -la /etc, ls -la /var/log, dll. Untuk melihat ukuran, gunakan du -sh /var/log/*.
KOMPETENSI SUB-BAB 01
  • Memahami struktur direktori FHS
  • Mengetahui fungsi setiap direktori penting
  • Mampu navigasi dan eksplorasi struktur direktori
02
SUB-BAB 02 FILESYSTEM

FILE SYSTEM TYPES

Jenis File System Linux

File system adalah metode organisasi dan penyimpanan data di storage. Linux mendukung banyak jenis file system, masing-masing dengan kelebihan dan use case berbeda.

FILE SYSTEMKELEBIHANKEKURANGANUSE CASE
ext4Stabil, mature, kompatibel, journalingTidak ada snapshot, limit 16TBGeneral purpose (DEFAULT)
xfsPerforma tinggi, scalable, journalingTidak bisa shrinkLarge files, server
btrfsSnapshot, checksum, RAID, compressionMasih berkembang, overheadAdvanced features
swapVirtual memory-RAM overflow
vfat/fat32Kompatibel semua OSMax file 4GB, no journalingUSB, compatibility
ntfsWindows compatibleLinux read/write terbatasDual boot Windows

ext4 - Default Linux

KELEBIHAN
Stabil, backward compatible, journaling, max 16TB file, 1EB filesystem
KEKURANGAN
Tidak ada snapshot, tidak ada compression native, limit ukuran file

xfs - High Performance

KELEBIHAN
Performa tinggi untuk large files, parallel I/O, scalable, journaling
KEKURANGAN
Tidak bisa shrink (hanya grow), overhead untuk small files

btrfs - Advanced Features

KELEBIHAN
Snapshot, copy-on-write, checksum, compression, RAID native, subvolumes
KEKURANGAN
Masih berkembang, overhead CPU/memory, belum production-ready untuk semua
REKOMENDASI: Untuk server production, gunakan ext4 (stabil) atau xfs (performa tinggi). Untuk desktop/advanced user, btrfs menarik dengan fitur snapshot-nya.
KOMPETENSI SUB-BAB 02
  • Membedakan jenis file system Linux
  • Memahami kelebihan dan kekurangan setiap file system
  • Menentukan file system yang tepat untuk use case tertentu
03
SUB-BAB 03 PARTITION

PARTISI DISK

Konsep Partisi

Partisi adalah pembagian disk menjadi beberapa bagian logis. Setiap partisi bisa diformat dengan file system berbeda dan digunakan untuk tujuan berbeda (/, /home, /var, swap, dll).

Lihat Partisi yang Ada

lsblk
List block devices (disk & partisi)
lsblk [options]
bash
admin@web-server:~$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 50G 0 disk ├─sda1 8:1 0 512M 0 part /boot/efi ├─sda2 8:2 0 48.5G 0 part / └─sda3 8:3 0 1G 0 part [SWAP] sr0 11:0 1 1024M 0 rom
OPTIONFUNGSI
-fFull output (semua info)
-o columnsSpecify columns
-tTopology info
fdisk -l
List partisi dengan detail
sudo fdisk -l
bash
admin@web-server:~$ sudo fdisk -l Disk /dev/sda: 50 GiB, 53687091200 bytes, 104857600 sectors Disk model: VBOX HARDDISK 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: 12345678-1234-1234-1234-123456789012 Device Start End Sectors Size Type /dev/sda1 2048 1050623 1048576 512M EFI System /dev/sda2 1050624 102760447 101709824 48.5G Linux filesystem /dev/sda3 102760448 104857566 2097119 1G Linux swap

Membuat Partisi dengan fdisk

fdisk
Manipulate disk partition table
sudo fdisk /dev/sdX
bash - fdisk interactive
admin@web-server:~$ sudo fdisk /dev/sdb Welcome to fdisk (util-linux 2.38.1). Changes will remain in memory only, until you decide to write them. Command (m for help): n Partition type p primary (0 primary, 0 extended, 4 free) e extended (container for logical partitions) Select (default p): p Partition number (1-4, default 1): 1 First sector (2048-104857599, default 2048): [Enter] Last sector, +sectors or +size{K,M,G,T,P}: +20G Command (m for help): t Partition type (type L to list all types): 83 Changed type of partition 'Linux'. Command (m for help): w The partition table has been altered. Calling ioctl() to re-read partition table. Syncing disks.
COMMANDFUNGSI
nNew partition
dDelete partition
pPrint partition table
tChange partition type
wWrite changes to disk
qQuit without saving
mHelp (list all commands)

Partisi dengan parted (GPT)

parted
Partition editor (support GPT)
sudo parted /dev/sdX
bash - parted interactive
admin@web-server:~$ sudo parted /dev/sdb (parted) mklabel gpt (parted) mkpart primary ext4 0% 50% (parted) mkpart primary linux-swap 50% 100% (parted) print Model: Unknown (unknown) Disk /dev/sdb: 50.0GB Sector size (logical/physical): 512B/512B Partition Table: gpt Number Start End Size File system Name Flags 1 1049kB 25.0GB 25.0GB primary 2 25.0GB 50.0GB 25.0GB primary swap (parted) quit
TIPS: Gunakan fdisk untuk MBR (legacy BIOS), gunakan parted untuk GPT (UEFI). Untuk disk > 2TB, wajib pakai GPT.
KOMPETENSI SUB-BAB 03
  • Mampu lihat partisi dengan lsblk dan fdisk
  • Mampu buat partisi dengan fdisk (MBR)
  • Mampu buat partisi dengan parted (GPT)
04
SUB-BAB 04 FORMAT

FORMAT & CREATE FILE SYSTEM

Format Partisi

Setelah partisi dibuat, perlu diformat dengan file system tertentu sebelum bisa digunakan.

mkfs
Make file system
sudo mkfs.type /dev/sdXN
bash
# Format dengan ext4 admin@web-server:~$ sudo mkfs.ext4 /dev/sdb1 mke2fs 1.46.5 (30-Dec-2021) Creating filesystem with 6144000 4k blocks and 1536000 inodes Filesystem UUID: 12345678-1234-1234-1234-123456789012 Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736 Allocating group tables: done Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done # Format dengan xfs admin@web-server:~$ sudo mkfs.xfs /dev/sdb1 # Format dengan btrfs admin@web-server:~$ sudo mkfs.btrfs /dev/sdb1 # Format swap admin@web-server:~$ sudo mkswap /dev/sdb2 Setting up swapspace version 1, size = 25 GiB LABEL=none, UUID=87654321-4321-4321-4321-210987654321
COMMANDFILE SYSTEM
mkfs.ext4ext4
mkfs.xfsxfs
mkfs.btrfsbtrfs
mkfs.vfatFAT32
mkswapswap
TIPS: mkfs adalah wrapper untuk command spesifik file system. mkfs.ext4 sama dengan mke2fs -t ext4.
KOMPETENSI SUB-BAB 04
  • Mampu format partisi dengan berbagai file system
  • Memahami perbedaan mkfs.ext4, mkfs.xfs, mkfs.btrfs
  • Mampu format swap partition
05
SUB-BAB 05 MOUNT

MOUNT & UNMOUNT

Konsep Mount

Mount adalah proses mengaitkan file system ke directory tertentu di tree Linux. Setelah di-mount, isi file system bisa diakses melalui mount point tersebut.

Mount Manual

mount
Mount file system
sudo mount /dev/sdXN /mount/point
bash
# Buat mount point admin@web-server:~$ sudo mkdir -p /mnt/data # Mount partisi admin@web-server:~$ sudo mount /dev/sdb1 /mnt/data # Mount dengan option admin@web-server:~$ sudo mount -o rw,noexec /dev/sdb1 /mnt/data # Mount USB drive admin@web-server:~$ sudo mount /dev/sdc1 /media/usb # Lihat semua mount admin@web-server:~$ mount sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime) proc on /proc type proc (rw,nosuid,nodev,noexec,relatime) /dev/sda2 on / type ext4 (rw,relatime,errors=remount-ro) /dev/sdb1 on /mnt/data type ext4 (rw,relatime) # Lihat mount dengan detail admin@web-server:~$ findmnt TARGET SOURCE FSTYPE OPTIONS / /dev/sda2 ext4 rw,relatime,errors=remount-ro ├─/mnt/data /dev/sdb1 ext4 rw,relatime
OPTIONFUNGSI
-t typeSpecify file system type
-o optionsMount options (ro, rw, noexec, nosuid, etc)
-aMount all dari /etc/fstab
-r atau --read-onlyMount read-only

Unmount

umount
Unmount file system
sudo umount /mount/point | /dev/sdXN
bash
# Unmount by mount point admin@web-server:~$ sudo umount /mnt/data # Unmount by device admin@web-server:~$ sudo umount /dev/sdb1 # Force unmount (jika busy) admin@web-server:~$ sudo umount -f /mnt/data # Lazy unmount (detach sekarang, cleanup nanti) admin@web-server:~$ sudo umount -l /mnt/data
PERINGATAN: Jangan unmount file system yang sedang digunakan! Pastikan tidak ada process yang mengakses mount point tersebut.
KOMPETENSI SUB-BAB 05
  • Memahami konsep mount dan mount point
  • Mampu mount dan unmount file system
  • Mampu gunakan mount options
06
SUB-BAB 06 FSTAB

FSTAB CONFIGURATION

File /etc/fstab

/etc/fstab (file system table) adalah file konfigurasi yang mendefinisikan file system yang harus di-mount otomatis saat boot.

/etc/fstab
File system table configuration
/etc/fstab
# /etc/fstab: static file system information. # # <file system> <mount point> <type> <options> <dump> <pass> UUID=12345678 / ext4 errors=remount-ro 0 1 UUID=87654321 /boot/efi vfat umask=0077 0 1 UUID=11223344 none swap sw 0 0 /dev/sdb1 /mnt/data ext4 defaults 0 2
KOLOMDESKRIPSICONTOH
file systemDevice atau UUID/dev/sdb1 atau UUID=xxx
mount pointDirectory tujuan mount/mnt/data
typeFile system typeext4, xfs, swap
optionsMount optionsdefaults, ro, noexec
dumpBackup flag (0=no, 1=yes)0
passfsck order (0=no check)0, 1, atau 2

Menggunakan UUID

UUID (Universally Unique Identifier) lebih aman daripada device name (/dev/sdb1) karena UUID tidak berubah meskipun device name berubah.

blkid
Show UUID dan label partisi
sudo blkid
bash
admin@web-server:~$ sudo blkid /dev/sda1: UUID="ABCD-1234" TYPE="vfat" PARTLABEL="EFI System" /dev/sda2: UUID="12345678-1234-1234-1234-123456789012" TYPE="ext4" /dev/sda3: UUID="87654321-4321-4321-4321-210987654321" TYPE="swap" /dev/sdb1: UUID="11223344-5566-7788-9900-aabbccddeeff" TYPE="ext4"

Edit /etc/fstab

Edit fstab
Tambah entry ke /etc/fstab
bash
# Backup fstab dulu! admin@web-server:~$ sudo cp /etc/fstab /etc/fstab.backup # Edit fstab admin@web-server:~$ sudo nano /etc/fstab # Tambah baris baru: UUID=11223344-5566-7788-9900-aabbccddeeff /mnt/data ext4 defaults 0 2 # Test mount tanpa reboot admin@web-server:~$ sudo mount -a # Verifikasi admin@web-server:~$ df -h Filesystem Size Used Avail Use% Mounted on /dev/sda2 48G 3.2G 43G 7% / /dev/sdb1 25G 200M 24G 1% /mnt/data
PENTING: Salah edit /etc/fstab bisa membuat sistem tidak bisa boot! Selalu backup dulu dan test dengan sudo mount -a sebelum reboot.

Mount Options

OPTIONFUNGSI
defaultsrw, suid, dev, exec, auto, nouser, async
roRead-only
rwRead-write
noexecTidak bisa execute binary
nosuidIgnore SUID bits
nodevTidak bisa mount device
autoMount otomatis saat boot
noautoTidak auto-mount
userUser biasa bisa mount
nofailContinue boot jika device tidak ada
KOMPETENSI SUB-BAB 06
  • Memahami struktur /etc/fstab
  • Mampu gunakan UUID untuk mount
  • Mampu edit /etc/fstab dengan aman
  • Memahami mount options
07
SUB-BAB 07 SWAP

SWAP MANAGEMENT

Konsep Swap

Swap adalah ruang di disk yang digunakan sebagai virtual memory ketika RAM penuh. Linux memindahkan halaman memory yang jarang digunakan ke swap untuk membebaskan RAM.

Cek Swap yang Ada

swapon --show
Show swap usage
bash
admin@web-server:~$ swapon --show NAME TYPE SIZE USED PRIO /dev/sda3 partition 1G 0B -2 admin@web-server:~$ free -h total used free shared buff/cache available Mem: 1.9Gi 220Mi 1.4Gi 4.0Mi 320Mi 1.6Gi Swap: 1.0Gi 0B 1.0Gi

Tambah Swap Partition

Add swap
Create and enable swap partition
bash
# 1. Buat partisi swap (dengan fdisk/parted) admin@web-server:~$ sudo fdisk /dev/sdb # Buat partisi baru, set type ke 82 (Linux swap) # 2. Format sebagai swap admin@web-server:~$ sudo mkswap /dev/sdb2 Setting up swapspace version 1, size = 2 GiB # 3. Enable swap admin@web-server:~$ sudo swapon /dev/sdb2 # 4. Verifikasi admin@web-server:~$ swapon --show NAME TYPE SIZE USED PRIO /dev/sda3 partition 1G 0B -2 /dev/sdb2 partition 2G 0B -3 # 5. Tambah ke /etc/fstab (persistent) admin@web-server:~$ sudo blkid /dev/sdb2 /dev/sdb2: UUID="abcd1234-..." TYPE="swap" admin@web-server:~$ sudo nano /etc/fstab # Tambah baris: UUID=abcd1234-... none swap sw 0 0

Tambah Swap File (Alternatif)

Swap file
Create swap file (tanpa partisi)
bash
# 1. Buat file swap (2GB) admin@web-server:~$ sudo fallocate -l 2G /swapfile # Atau gunakan dd: admin@web-server:~$ sudo dd if=/dev/zero of=/swapfile bs=1M count=2048 # 2. Set permission admin@web-server:~$ sudo chmod 600 /swapfile # 3. Format sebagai swap admin@web-server:~$ sudo mkswap /swapfile # 4. Enable swap admin@web-server:~$ sudo swapon /swapfile # 5. Verifikasi admin@web-server:~$ swapon --show # 6. Tambah ke /etc/fstab admin@web-server:~$ echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

Swappiness

Swappiness mengontrol seberapa agresif Linux menggunakan swap. Nilai 0-100 (default 60).

swappiness
Configure swap usage
bash
# Lihat swappiness saat ini admin@web-server:~$ cat /proc/sys/vm/swappiness 60 # Set swappiness sementara admin@web-server:~$ sudo sysctl vm.swappiness=10 # Set swappiness permanent admin@web-server:~$ echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf # Disable swap sementara admin@web-server:~$ sudo swapoff -a # Enable swap kembali admin@web-server:~$ sudo swapon -a
TIPS: Untuk server dengan RAM besar, set swappiness rendah (10-20) agar swap jarang digunakan. Untuk desktop, biarkan default (60).
KOMPETENSI SUB-BAB 07
  • Memahami konsep swap dan swappiness
  • Mampu buat swap partition
  • Mampu buat swap file
  • Mampu konfigurasi swappiness
08
SUB-BAB 08 MONITORING

MONITORING STORAGE

Cek Disk Usage

df
Disk free - lihat usage file system
df [options]
bash
admin@web-server:~$ df -h Filesystem Size Used Avail Use% Mounted on tmpfs 393M 1.4M 392M 1% /run /dev/sda2 48G 3.2G 43G 7% / tmpfs 2.0G 0 2.0G 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock /dev/sda1 512M 5.8M 507M 2% /boot/efi /dev/sdb1 25G 200M 24G 1% /mnt/data # Lihat usage directory tertentu admin@web-server:~$ df -h /var/log Filesystem Size Used Avail Use% Mounted on /dev/sda2 48G 3.2G 43G 7% / # Lihat inode usage admin@web-server:~$ df -i
OPTIONFUNGSI
-hHuman-readable (KB, MB, GB)
-HHuman-readable (SI units)
-TShow file system type
-iShow inode usage
-t typeFilter by type

Cek Directory Size

du
Disk usage - lihat ukuran directory/file
du [options] [path]
bash
# Lihat ukuran directory admin@web-server:~$ du -sh /var/log 45M /var/log # Lihat ukuran semua directory di / admin@web-server:~$ du -sh /* 7.1M /bin 72M /boot 4.0K /cdrom 4.0K /dev 8.2M /etc 2.1G /home 650M /usr 380M /var # Lihat ukuran dengan depth admin@web-server:~$ du -sh /var/* --max-depth=0 12K /var/backups 45M /var/cache 45M /var/log 12M /var/lib # Sort by size (terbesar di atas) admin@web-server:~$ du -sh /* 2>/dev/null | sort -rh | head -10 2.1G /home 650M /usr 380M /var 72M /boot
OPTIONFUNGSI
-hHuman-readable
-sSummary (total saja)
-aAll files (bukan hanya directory)
--max-depth=NDepth level

Cek Block Devices

lsblk
List block devices
bash
admin@web-server:~$ lsblk -f NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINT sda ├─sda1 vfat FAT32 ABCD-1234 506M 1% /boot/efi ├─sda2 ext4 1.0 12345678-1234-1234-1234-123456789012 43G 7% / └─sda3 swap 1 87654321-4321-4321-4321-210987654321 [SWAP] sdb └─sdb1 ext4 1.0 11223344-5566-7788-9900-aabbccddeeff 24G 1% /mnt/data

Monitoring Real-time

iostat
I/O statistics
iostat [options] [interval] [count]
bash
# Install sysstat jika belum ada admin@web-server:~$ sudo apt install sysstat # Lihat I/O stats admin@web-server:~$ iostat Linux 6.1.0-18-amd64 (web-server) 09/07/2026 _x86_64_ avg-cpu: %user %nice %system %iowait %steal %idle 2.34 0.00 1.23 0.45 0.00 95.98 Device tps kB_read/s kB_wrtn/s kB_read kB_wrtn sda 5.23 123.45 45.67 123456 45678 # Monitor setiap 2 detik, 5 kali admin@web-server:~$ iostat 2 5

Alert Disk Penuh

Script alert
Script untuk alert disk penuh
disk-alert.sh
#!/bin/bash # Script alert disk penuh THRESHOLD=80 EMAIL="admin@example.com" df -h | awk 'NR>1 {print $5 " " $6}' | while read output; do usage=$(echo $output | awk '{print $1}' | cut -d'%' -f1) mount=$(echo $output | awk '{print $2}') if [ $usage -gt $THRESHOLD ]; then echo "Warning: Disk $mount is ${usage}% full" | mail -s "Disk Alert" $EMAIL fi done
bash
# Buat script executable admin@web-server:~$ chmod +x disk-alert.sh # Jalankan manual admin@web-server:~$ ./disk-alert.sh # Setup cron job (cek setiap jam) admin@web-server:~$ crontab -e # Tambah baris: 0 * * * * /path/to/disk-alert.sh
TIPS: Selalu monitor disk usage secara rutin. Disk penuh bisa menyebabkan sistem crash atau data loss.
KOMPETENSI SUB-BAB 08
  • Mampu cek disk usage dengan df
  • Mampu cek directory size dengan du
  • Mampu monitor I/O dengan iostat
  • Mampu buat script alert disk penuh
VOLUME 04 SELESAI

SELAMAT!

Kamu telah menyelesaikan Volume 04 - File System & Storage Management. Dari struktur direktori FHS, jenis file system, partisi disk, format, mount/unmount, fstab, swap management, hingga monitoring storage. Kamu sekarang menguasai storage management di Linux. Di Volume 05, kita akan dalami User & Permission Management. Sampai jumpa!
SUB-BAB8 LEVELStorage NEXTUser & Permission
ABDURROZAK.MY.ID // TERHUBUNG

JARINGAN SOSIAL

Temukan saya di berbagai platform digital