File System Linux
File system
Untuk mengorganisasi file-file pada device diperlukan suatu metode yang disebut dengan filesystem. Jika Anda mengenal FAT selama ini di sistem operasi Windows maka Anda akan mengenal beberapa metode filesystem di Linux, seperti ext fs, ext2 fs atau xia fs dll. Saat ini ext2 fs adalah filesystem yang banyak digunakan untuk Linux karena terkenal sangat efisien. Meskipun demikian Red Hat Linux tetap menyediakan dukungan terhadap filesystem lain seperti msdos yang sudah built in di kernel atau dalam bentuk modul seperti vfat (Windows95 native fs), ext,umsdos dan sebagainya.
Mount & Umount Command
Untuk menggunakan filesystem tersebut kita lebih dahulu harus me-mount sebuah block device yang memiliki filesystem. Perintahnya adalah sebagai berikut:
# mount [-t] [-o] device mount_point
device berupa block device, mount_point berupa sebuah direktori untuk menampilkan filesystem. t adalah type atau jenis filesystem dan o adalah option, keduanya boleh saja tidak disertakan bila Anda sudah mengkonfigurasi file /etc/fstab yang berisi keterangan detail mengenai device,jenis filesystem, mount point yang digunakan dan sebagainya.
Misalnya saya akan mengakses sebuah file di disket di drive A: maka pertama kali saya harus me-mount dulu disk tersebut ke sebuah direktori yang sudah saya buat misalnya /mnt/floppy:
# mount /dev/fd1 -t vfat /mnt/floppy
mount: block device /dev/fd1 is write-protected, mounting read-only
Setelah perintah itu barulah saya bisa membaca disket di drive A: tersebut di direktori /mnt/floppy. Misalnya dengan mengetikkan perintah ls maka akan ditampilkan isi disket di drive A:
# ls /mnt/floppy
Untuk membatalkan perintah
# umount /mnt/floppy
Setelah perintah tersebut dieksekusi, otomatis drive A: tidak bisa digunakan, cobalah dengan mengetikkan perintah ls lagi. Pesan kesalahan akan ditampilkan seperti dibawah ini.
# ls /mnt/floppy
filesystem not mounted
mtools
Bila Anda memiliki filesystem DOSdan ingin mengunakannya tanpa harus melakukan
Filesystem Manager
Pada saat boot, kernel akan me-mount root filesystem dari device yang telah ditentukan dalam LILO. Selama proses boot tersebut semua filesystem yang ada dalam tabel filesystem atau dalam file /etc/fstab juga akan diperiksa apakah perlu di
Red Hat telah menyediakan program yang sangat mudah digunakan untuk mengkonfigurasi filesystem tersebut. Program ini berjalan di X dan dapat dipanggil melalui control panel atau cukup mengeksekusinya dengan perintah fstool. Selanjutnya hasil konfigurasinya juga akan disimpan dalam file /etc/fstab.
Bila Anda tidak menginstalasi X dan tidak bisa menjalankan fstool,
jangan kuatir file /etc/fstab juga dapat di edit secara manual dengan program teks editor favorit Anda.
Filesystem manager menampilkan informasi mengenai nama device,mount point, jenis filesystem, ukuran dan sisa spasi yang masih tersedia. (Informasi ini seperti ini juga bisa diperoleh dengan perintah df).
Filesystem dapat di
Tombol Format hanya berfungsi untuk partisi hard disk. Tombol ini akan menjalankan program mkfs yaitu program untuk membuat filesystem.
Tombol Check hanya berfungsi untuk filesystem ext2 dan minix. Tombol ini akan menjalakan program fsck dan membutuhkan waktu beberapa saat untuk menampilkan hasil pemeriksaan. Bila filesystem digunakan secara normal dan fsck selalu dijalankan pada saat boot maka hasil check seringkali tidak menunjukkan kesalahan apapun.
Mengedit file /etc/fstab
File /etc/fstab berupa file teks biasa, bisa dibaca dan mudah di edit dengan program editor teks favorit kita. Lakukan secara hati-hati karena kesalahan dalam memasukkan atau menghapus sesuatu menyebabkan sistim tidak bisa me-mount filesystem saat boot nanti.
Mirip dengan tampilan program fstool diatas, saat dibuka file /etc/fstab menampilkan kolom-kolom yang berisi informasi nama device, mount point, jenis filesystem, option, dump dan fsckorder. Kolom-kolom tersebut masing-masing dipisahkan dengan tabs atau spasi.
Kolom dump berhubungan dengan program dump, lihat manual page program dumb. Kolom terakhir fsckorder berhubungan dengan program fsck. Urutan pengecekan filesystem saat boot ditunjukkan oleh nomor dikolom ini. Pengecekan filesystem dapat dilakukan secara paralel dengan memberikan nomor urut yang sama tapi filesystem root selalu harus nomor 1. Filesystem dengan fsckorder 0 tidak akan dicek saat boot.
Filesystem Support
Linux memiliki dukungan terhadap beberapa filesystem lain sehingga kita dapat menggunakan atau mengakses filesystem yang berbeda tanpa harus melakukan konversi lebih dulu. Berikut ini adalah beberapa filesystem yang bisa di dukung Linux sejak kernel 2.0.30 di keluarkan: (Anda dapat mengkonfigurasi dukungan filesystem ini saat konfigurasi kernel )
Minix | Merupakan filesystem Linux yang pertama dan saat ini masih banyak digunakan untuk boot disk dan beberapa format disket. |
Extended fs | Tidak banyak yang menggunakannya lagi dan sebaiknya tidak perlu di kompile dalam kernel. |
Second Extended fs | Saat ini merupakan filesystem default untuk Linux dan seharusnya di kompile dalam kernel karena filesystem root tidak bisa bekerja bila berupa modul. |
xiafs filesystem | Diperkenalkan bersamaan dengan second extended fs dan dimaksudkan untuk menggantikan extended fs. Saat ini jarang digunakan dan sebaiknya tidak di kompile dalam kernel kecuali Anda membutuhkannya. |
DOS FAT fs | Pada dasarnya bukan merupakan sebuah filesystem tapi merupakan dasar bagi filesystem berbasis FAT lainnya seperti MS-DOS FAT, VFAT (Windows95) atau umsdos. |
MS-DOS FAT fs | Jika Anda menginginkan Linux dapat mengakses sistem berbasis DOS maka Anda dapat menkompilenya dalam kernel. Sangat berguna untuk komputer yang memiliki sistem dual-boot. |
VFAT (Windows95) fs | Merupakan peningkatan dari MS-DOS FAT fs dan mendukung format long filename. Ini juga berguna untuk komputer yang memiliki sistem dual-boot. |
umsdos | Dukungan ini dibutuhkan bila ingin menjalankan Linux diatas partisi DOS tapi sepertinya RedHat Linux tidak akan bisa berjalan pada sebuah filesystem umsdos. |
/proc | Filesystem ini dipakai oleh kernel untuk menyediakan informasi mengenai sistem kepada user program, seperti ps, top, xload, free atau netstat. Filesystem ini memang seharusnya selalu ada dan walaupun ada isinya tapi tidak akan mengisi spasi hard disk. |
NFS | Dibutuhkan bila Anda akan mengakses remote filesystem dan untuk sebuah server dukungan ini merupakan suatu keharusan. |
SMB | Sangat berguna bila Anda menginginkan memiliki akses langsung ke Windows95 atau NT. |
NCP | Dukungan terhadap NetWare melalui protokol NCP. |
ISO9660 | Bila Anda memiliki CD-ROM sebaiknya memanfaatkan dukungan ini karena banyak sekali CD-ROM yang ada dipasaran menggunakan format ISO9660 ini. |
OS/2 HPFS | Mendukung filesystem OS/2 dan HPFS. Linux hanya dapat membaca filesystem tersebut (read-only). |
System V & Coherent | Merupakan filesystem UNIX generasi lama dan dukungan ini hanya diperlukan bila Anda memiliki data-data lama dan ingin memindahkannya ke filesystem yang baru. |
Amiga FFS | Masih berupa experimental code dan sebaiknya gunakan dengan hati-hati. |
UFS | Filesystem ini digunakan oleh beberapa sistem UNIX, Solaris dan SunOS(4.2). Linux hanya dapat membaca filesystem ini. |
Manajemen Sistem
Organisasi File
Disamping memiliki program instalasi yang baik, distribusi RedHat juga mengorganisasi file-file yang diinstalasi dengan baik pula. RedHat mengikuti standar pengorganisasian filesystem Linux atau FSSTND yang tersedia di website http://www.pathname.com/fhs/
Keterangan lebih lengkap tentu saja dapat diperoleh di website tersebut tapi secara sederhana organisasi file di RedHat dapat dijelaskan sebagai berikut:
Pada tingkat tertinggi adalah root direktori, /, yang hanya mengandung sejumlah file penting seperti:
bin/, boot/, dev/, etc/, home/, lib/, lost+found/, mnt/, proc/, sbin/, tmp/, usr/, dan var/.
/bin & /sbin
Direktori ini menyimpan program-program penting yang digunakan untuk pemeliharaan sistem. Sesuai dengan nama direktorinya, file-file program yang tersimpan didalamnya berupa file binary yang dapat dieksekusi (executable).
Isi direktori /bin umumnya adalah user program seperti:
· login
· Shell (bash, ksh, csh)
· File utility (cp, mv, rm. ln, tar)
· Editor (ed, vi)
· Filesystem utilty (dd, df, mount, umount, sync)
· System utility (uname, hostname, arch)
· GNU utility (gzip, gunzip)
Isi direktori /sbin umumnya adalah program pemeliharaan atau sistem program. Program-program yang disimpan di direktori /sbin ini hanya dapat dieksekusi oleh root. Contohnya adalah sebagai berikut:
· fsck
· fdisk
· mkfs
· shutdown
· lilo
· init
/etc
Direktori ini menyimpan file-file konfigurasi systemwide yang dibutuhkan oleh program-program lainnya. Beberapa file penting di direktori ini misalnya:
· passwd
· shadow
· fstab
· hosts
· motd
· profile
· shells
· services
· lilo.conf
/home
Direktori ini menyimpan direktori masing-masing user yang ada di sistem termasuk HTTPD. Beberapa sistem Linux menyimpan home user root di direktori ini sebagai /home/root tapi ada juga yang menyimpan direktori home user root di direktori / atau root direktori.
/mnt
Umumnya direktori ini didalamnya mengandung subdirektori-subdirektori yang merupakan sebuah mount point untuk jenis device tertentu. Misalnya cdrom/, floppy/, atau zip/.
/tmp & /var
Direktori /tmp untuk menampung file-file sementara(temporary) dan /var menampung varying content atau macam-macam file.
Direktori /tmp biasanya juga dimanfaatkan oleh program instalasi saat kita mengintalasi program atau aplikasi. Isi direktori ini bisa saja dihapus setiap saat tanpa menimbulkan penagaruh apapun.
Direktori /var memiliki isi yang lebih banyak dari /tmp dan biasanya isinya adalah seperti ini:
catman/, lib/, local/, lock/, log/,
Direktori /var/log merupakan direktori yang sangat familiar bagi setiap user. Di dalamnya disimpan pesan-pesan yang dihasilkan oleh sistem. Berikut ini isi direktori /var/log di komputer saya:
httpd/, boot.log, cron, dmesg, htmlaccess.log, lastlog, maillog, messages, netconf.log, secure, sendmail.st, spooler, wtmp. File-file pesan tersebut sangat berguna bagi kita untuk mendiagnosis masalah atau kesalahan sistem. Bagi yang tidak berpengalaman dalam menangani masalah sistem, isi file-file pesan tersebut bisa disertakan bila kita minta bantuan orang lain atau di forum milis.
/usr
Berisi semua program dan file yang secara langsung berhubungan dengan setiap user dalam sistem. Misalnya di komputer saya isinya adalah sebagai berikut:
~X11, X11R6/, ~X386, bin/, dict/, doc/, etc/, games/, i386-redhat-linux/, i486-linux-libc5/, i486-linuxaout/, include/, info/, lib/, libexec/, local/, man/, sbin/, share/, src/, ~tmp.
Direktori /usr/bin dan /usr/sbin menyimpan banyak sekali file executable. File-file executable yang disimpan di direktori ini memiliki kesamaan fungsi dan jenis dengan file-file di direktori /bin dan /sbin.
Direktori /usr/X11 dan /usr/X11R6 dan subdirektori dibawahnya berisi semua file yang berhubungan dengan X Window seperti man page, library dan file executable.
Menganalisis Sistem
Menganalisis sistem biasanya dilakukan oleh seorang administrator sistem untuk mendeteksi adanya gejala-gejala yang dapat menyebabkan kerusakan atau masalah pada sistem kelak. RedHat sudah menyediakan tool-tool untuk melakukan hal itu, diantaranya adalah dua buah program tool yang sangat berguna yaitu vmstat dan top, dengan menggunakan kedua program tersebut administrator memperoleh informasi mengenai sistem seperti penggunaan CPU, memori atau proses-proses yang sedang berjalan dan dengan bantuan informasi ini administrator sistem bisa mendeteksi secara cepat apakah sistemnya mengalami gangguan atau tidak.
Dengan menggunakan kedua program tersebut, Anda sendiri bisa mencoba dan melihat apakah sistem yang dipakai saat ini berjalan dengan baik atau tidak. Lihatlah informasi yang ditampilkan program-program tersebut dan bila Anda memperkirakan ada masalah, silakan menghubungi administrator sistem untuk mendapatkan bantuan.
vmstat
Program atau perintah ini akan melakukan test dan menampilkan informasi penggunaan CPU, memori, proses-proses yang sedang berjalan serta operasi I/O. Sintaks penulisan perintahnya adalah sebagai berikut:
$ vmstat [interval] [count]
Interval adalah waktu jeda test dalam detik dan count adalah jumlah test yang kita kehendaki. Misalnya akan dilakukan test sebanyak 5 kali dengan waktu jeda setiap 5 detik maka perintah dan hasilnya adalah seperti dibawah ini:
[zakaria@linux source]$ vmstat 5 5
procs memory swap io system cpu
r b w swpd free buff cache si so bi bo in cs us sy id
0 0 0 37924 824 840 13280 54 14 30 9 522 271 21 6 73
3 0 0 37924 1080 816 13060 0 0 1 0 110 329 20 16 64
1 0 0 37924 1036 824 13084 0 0 2 1 130 331 18 18 64
1 0 0 37924 1036 824 13084 0 0 0 0 107 329 19 16 65
2 0 0 37924 1036 828 13084 0 0 0 1 112 326 21 14 65
Tiga kolom pertama menunjukkan proses-proses yang sedang dikerjakan, yaitu waiting for runtime(r), uninterupted sleep(b) dan swapped out(w). Banyaknya proses yang mengalami waiting for runtime(r) dapat merupakan indikasi terjadinya suatu masalah misalnya telah terjadi bottleneckyaitu penumpukan proses-proses disuatu tempat.
Kolom memory dan swap digunakan untuk mendeteksi adanya kesalahan yang ditimbulkan oleh manajemen memori. Kolom-kolom swpd, free, buff dan cache berturut-turut menjelaskan jumlah memori virtual yang digunakan, jumlah memori idle, jumlah memori yang dipakai sebagai buffer dan jumlah memori yang tersisa dalam cache, semuanya dalam KB. Perhatikan kolom swap in(si), merupakan jumlah memori yang di-paging dari disk dalam satuan KB/detik sedangkan swap out(so) adalah kebalikannya.
Tiga kolom terakhir adalah persentasi penggunaan CPU yaitu persentasi penggunaan CPU untuk tugas-tugas user(us), persentasi penggunaan CPU untuk tugas-tugas sistem termasuk waktu tunggu I/O, pelaksanaan fungsi-fungsi sistem operasi secara umum(sy) dan persentasi CPU idle atau saat tidak digunakan(id). Untuk mendeteksi suatu kesalahan yang diakibatkan oleh masalah CPU sebaiknya dengan melihat persentasinya secara signifikan dalam satu periode waktu. Misalnya pada saat komputer idle dalam satu periode waktu, perhatikan kolom us dan sy seharusnya menunjukkan angka yang rendah sedangkan kolom id menunjukkan angka yang tinggi. Bila tidak seperti itu maka dipastikan ada masalah yang berkaitan dengan CPU.
top
Menampilkan informasi proses yang sedang dilakukan CPU secara real time. Kelebihan dari top ini adalah kita dapat memanipulasi proses-proses tersebut secara interaktif dengan menekan tombol-tombol menu. Misalnya untuk meng-kill sebuah proses, kita cukup menekan tombol K dan mengisi nomor proses(PID) yang ingin di-kill.
Untuk menjalankannya cukup dengan mengetikkan perintah top dan segera ditampilkan daftar proses-proses yang sedang berjalan saat itu berikut informasi-informasi lainnya. Informasi-informasi yang ditampilkan tersebut secara default akan diperbarui atau diupdate setiap 5 detik. Berikut ini tampilan sebagian dari daftar proses-proses yang ditunjukkan oleh top:
Baris-baris header menampilkan informasi mengenai waktu, jumlah user, banyaknya proses, penggunaan CPU serta memori secara jelas. Misalnya saat itu sistem memiliki 35 buah proses, dimana 4 proses sedang berjalan, 30 proses sleeping dan ada sebuah proses menjadi zombie. Porses zombie ini adalah sebuah proses yang hang atau hidup segan, mati tak mau dan apabila Anda tidak bisa mem-kill proses zombie ini maka parent process-nya harus di-kill lebih dahulu. Gunakan perintah pstree atau ps ufx untuk mengurut proses mana yang menjadi parent dari zombie tersebut.
Daftar menu untuk mengoperasikan top dapat dilihat dengan menekan tombol ?, atau h. Dengan menggunakan tombol-tombol dalam daftar menu tersebut, kita dapat melakukan manipulasi semua proses dalam sistem. Misalnya, tombol k untuk meng-kill sebuah proses, tombol r untuk me-renice proses dan q untuk keluar atau mengakhiri progam top.
Multi User
Bagaimana Tidak Menggunakan Root?
Bila Anda membaca beberapa bab yang lalu, pernah disinggung mengenai kerugian-kerugian apabila kita selalu bekerja sebagai root. Tapi kemudian saya memperoleh beberapa pertanyaan seperti ini: Apakah saya masih bisa menggunakan hak-hak khusus root setelah saya tidak memakainya? Mengapa saya tidak bisa lagi melakukan koneksi dial-up setelah saya login bukan sebagai root?
Seperti yang telah kita ketahui, Linux termasuk sistem multiuser dimana suatu resource bisa digunakan oleh banyak user. Setiap user biasanya diberi ruangan atau space yang di simpan rapi dibawah direktori /home. Setiap user di home masing-masing memiliki hak mengakses, membaca atau menulis file-file di dalam home mereka sendiri tetapi mereka belum tentu bisa melakukan hal yang sama di home milik user lain atau direktori milik root. Masing-masing user bisa diberi hak-hak khusus yang berlainan untuk mengakses, membaca atau menulis ke sebuah file atau direktori oleh root. Oleh karena itu kita bisa saja meninggalkan root atau tidak lagi login sebagairoot sepanjang hari dengan cara membuat home sendiri, login sebagai user biasa serta memberikan hak akses seperlunya saja agar tidak membahayakan sistem bila suatu saat kita melakukan kesalahan.
Membuat rumah untuk saya, mama, keponakan atau teman saya
Mudah saja, saat Anda login sebagai root, jalankan perintah sebagai berikut:
# adduser meong
# passwd meong
Setelah mengetik perintah terkahir Anda akan ditanya password untuk membuka home Anda. Ketikkan saja passwordnya sebanyak dua kali dengan kata yang sama. Selanjutnya Anda telah memiliki 'rumah' baru dan siap untuk digunakan. Bila Anda menginginkan, Anda juga bisa memberikan home lain kepada mama, keponakan yang masih duduk TK atau kepada teman kuliah Anda yang sedang menumpang mengetik skripsinya di komputer Anda.
Group
Setiap user paling sedikit bergabung dengan sebuah group. Group bisa berisi kumpulan user lain atau program yang mempunyai kesamaan tugas. Group memungkinkan sebuah file bisa dipergunakan secara bersama hanya oleh user-user yang tergabung didalamnya. Oleh karena itu cara mengelompokkan user-user dalam group ini adalah salah satu cara yang mudah bagi root untuk memberikan hak akses file-file miliknya kepada sekelompok user.
Untuk membuat group baru, Anda bisa menggunakan perintah groupadd. Misalnya, Anda ingin membuat group baru yang namanya konek maka perintahnya adalah sbb:
# groupadd konek
Untuk parameter yang lain seperti menentukan gid, password dan lain-lain silakan lihat manualnya. Berikutnya adalah menambahkan user-user yang akan bergabung ke dalam group konek ini. Informasi group disimpan dalam file /etc/group, bukalah dengan menggunakan editor kesayangan Anda, kemudian tambahkan nama-nama user yang akan bergabung dalam group konek.
Setiap baris dalam file /etc/group terdiri dari empat segmen yang dipisahkan oleh tanda titik dua,
nama group : password : group id(gid) : user
Carilah baris group konek dan cukup tambahkan nama user yang akan bergabung dengan group konek ini di segmen terakhir. Pisahkan nama user dengan tanda koma bila user yang bergabung lebih dari satu, misalnya:
konek : : 501 : meong, fryda
Password biasanya kosong atau * atau biarkan saja bila Anda tidak membuat password untuk group ini. Setelah file /etc/group ini di simpan maka tugas berikutnya adalah merubah permission dan ownership file-file yang bisa diakses oleh group konek.
Permission dan Ownership
Setiap file memiliki perijinan dan kepemilikan yang menentukan siapa saja yang boleh mengaksesnya. Lihatlah kembali bab mengenai command line khusunya perintah chgrp, chmod dan chown atau lihat manual perintah-perintah tersebut untuk lebih memahami fungsi perijinan dan kepemilikan ini.
Sebagai contoh, bila Anda menginginkan group konek yang telah dibuat beberapa saat lalu itu, semua anggotanya bisa melakukan dial-up sendiri maka Anda harus merubah perijinan atau kepemilikan dari beberapa file yang berhubungan dengan dial-up supaya bisa diakses oleh group konek.
Bila Anda memakai kppp dari KDE sebagai dial-up maka Anda bisa merubah kepemilikan file kppp menjadi milik group konek seperti ini:
[root@cybernetics /root]# ls -l /usr/bin/kppp
-rwx------ 1 root root 365660
[root@cybernetics /root]# chown .konek /usr/bin/kppp [root@cybernetics /root]# ls -l /usr/bin/kppp -rwsrws--- 1 root konek 365660 Apr 19 00:33 /usr/bin/kppp
Lakukanlah hal yang sama pada file-file yang berhubungan dengan dial-up seperti /dev/modem, file-file di /etc/ppp/option dan sebagainya.
Setelah itu user-user yang tergabung dalam group konek diharuskan login ke group konek dengan mengetikkan perintah newgrp apabila ingin dapat melakukan dial-up dengan kppp:
[fryda@cybernetics fryda]$ newgrp konek
Sekarang user fryda sudah dapat melakukan dial-up sendiri dengan kppp tanpa bantuan root.
Command Line
Seperti halnya bila kita mengetikkan perintah di DOS, command line atau baris perintah di Linux juga diketikkan di prompt dan diakhiri enter untuk mengeksekusi perintah tersebut. Baris perintah merupakan cara yang lebih efisien untuk melakukan sesuatu pekerjaan oleh karena itu pemakai Linux tetap mengandalkan cara ini untuk bekerja. Sebaiknya pemula juga harus mengetahui dan sedikitnya pernah menggunanakan perintah baris ini karena suatu saat pengetahuan akan perintah-perintah ini bisa sangat diperlukan.
Saya mengumpulkan beberapa perintah dasar yang mungkin kelak akan sering digunakan terutama oleh para pemula. Perhatian: pengetahuan akan perintah-perintah yang lain akan segera bertambah seiring dengan kemajuan Anda menguasai sistem operasi Linux ini.
Penjelasan masing-masing perintah akan dipersingkat saja dan untuk mengetahui lebih detail lagi fungsi-fungsi suatu perintah, Anda dapat melihat manualnya, misalnya dengan mengetikkan perintah man:
$ man ls
Manual tersebut akan menampilkan bagaimana cara penggunaan perintah lsitu secara lengkap.