Jumat, Agustus 12, 2011

Pengelolaan Partisi di Linux

Beberapa pengguna Linux, terutama yang baru bermigrasi dari Microsoft Windows, biasanya kebingungan melacak partisi yang sudah dimiliki sebelumnya. Sebetulnya, ini masalah yang cukup umum: di Windows, semua partisi langsung diperlihatkan di muka (yaitu berupa drive C:, D:, dan seterusnya di Windows Explorer). Sedangkan di linux partisi biasanya seolah “tersembunyi” dari pandangan — ketika user berada di folder root (yaitu /), tidak terlihat adanya partisi berupa C:, D:, dan sebagainya.

Sebenarnya, partisi di linux di-mount ke dalam folder tersendiri. Biasanya seluruh partisi di-mount di bawah folder /mnt; meskipun begitu hal ini tidak mutlak adanya. Pengguna SuSE Linux (seperti saya :P ) malah mendapati seluruh partisi di-mount pada folder /windows. Meskipun begitu, para pengguna yang sebelumnya akrab di Windows biasanya tidak tahu akan hal ini, sehingga kemudian tejadi kebingungan seperti berikut:

“Kok harddisk saya tidak muncul sih?”

“Partisi saya kok nggak kelihatan?”

Dan lain sebagainya. (~_@)

***

Lalu, bagaimana sebenarnya mounting partisi ditentukan?

Prosesnya kira-kira seperti berikut ini.

Di dalam folder /etc, terdapat sebuah file yang bernama fstab. File ini bertugas sebagai acuan ketika linux me-mount partisi di saat booting. Jadi, ke mana dan bagaimana suatu partisi di-mount ditentukan melalui file yang satu ini.

Isi dari file /etc/fstab biasanya seperti berikut ini:

.

/dev/hda7            /                    reiserfs   acl,user_xattr        1 1 /dev/hda2            /windows/C           vfat       users,gid=users,umask=0002,utf8=true 0 0 /dev/hda5            /windows/D           vfat       users,gid=users,umask=0002,utf8=true 0 0 /dev/hda6            swap                 swap       defaults              0 0 proc                 /proc                proc       defaults              0 0 sysfs                /sys                 sysfs      noauto                0 0 usbfs                /proc/bus/usb        usbfs      noauto                0 0 devpts               /dev/pts             devpts     mode=0620,gid=5       0 0 /dev/dvdram          /media/dvdram        subfs      noauto,fs=cdfss,ro,procuid,nosuid,nodev,exec,iocharset=utf8 0 0 none                 /subdomain       subdomainfs noauto         0 0 

Kolom pertama sebelah kiri adalah daftar partisi yang ada di komputer kita. Dalam contoh di atas, saya mempunyai dua partisi bertipe FAT32, yaitu hda2(drive C: di Windows) dan hda5 (drive D: di Windows). Adapun hda7 adalah partisi linux, yang kemudian di-mount sebagai root directory.

Konvensi penamaannya kira-kira sebagai berikut:

Untuk harddisk, dua huruf pertama adalah hd;

Untuk flashdisk dan USB-disk seperti harddisk eksternal, dua huruf pertama adalah sd;

Huruf ketiga melambangkan unit, jadi hda berarti harddisk pertama, demikian pula hdb berarti harddisk kedua;

Angka di akhir menyatakan indeks partisi. Sengaja nggak dijelaskan lengkap di sini, soalnya bakal jadi panjang banget :P ).

Jadi bisa diketahui bahwa hda1 adalah partisi pada harddisk pertama, hdb5 adalah partisi pada harddisk kedua, sda1 adalah partisi pada USB disk, dan seterusnya.

Kolom kedua adalah mount point — tempat di mana partisi yang disebut sebelumnya akan di-load. Misalnya, karena hda2 sebelumnya adalah drive C: di Windows, maka mount point-nya ditentukan sebagai /windows/C. Demikian pula hda7 sebelumnya adalah drive D: di Windows, maka untuk memudahkan diberi mount point pada /windows/D. Adapun swap berarti partisi tersebut dipakai sebagai swap partition dari sistem linux

Kolom ketiga menyatakan filesystem yang dipakai oleh partisi. Misalnya, dalam contoh di atas partisi linux saya menggunakan reiserfs, dan partisi Windows diberi label vfat (menyatakan FAT/FAT32).

Terakhir, kolom keempat dan kelima menyatakan options yang bisa diberikan pada partisi tersebut. misalnya pada utf8=true untuk vfat, berarti mensupport penamaan file/folder dengan format Unicode/UTF-8 (menggunakan huruf asing, e.g. Cina, Rusia, Jepang).

Jika Anda merasa tidak nyaman dengan lokasi mounting partisi Anda, Anda bisa menggantinya dengan mengedit file /etc/fstab ini. Misalnya, dengan menggantimount point partisi hda2 menjadi /jendelas/drivec. Hati-hati: kesalahan dalam mengutak-atik file ini bisa mengakibatkan distro Anda crash. Sebaiknya, sediakan backup dari file aslinya untuk berjaga-jaga — dan copy-kan kembali menggunakan LiveCD jika distro Anda gagal melakukan booting.

***

Nah, setelah mounting ditentukan melalui fstab, maka distro Anda akan menggunakan file tersebut sebagai acuan di kala booting. Setelah booting dan proses mounting selesai, file fstab akan “ditinggalkan” oleh Linux. Data partisi yang berhasil di-mount kemudian akan dikirim ke file /etc/mtab.

.

/dev/hda7 / reiserfs rw,acl,user_xattr 0 0 proc /proc proc rw 0 0 sysfs /sys sysfs rw 0 0 tmpfs /dev/shm tmpfs rw 0 0 devpts /dev/pts devpts rw,mode=0620,gid=5 0 0 /dev/hda2 /windows/C vfat rw,noexec,nosuid,nodev,gid=100,umask=0002,utf8=true 0 0 /dev/hda5 /windows/D vfat rw,noexec,nosuid,nodev,gid=100,umask=0002,utf8=true 0 0 usbfs /proc/bus/usb usbfs rw 0 0 

Data dari file mtab ini akan dipakai untuk melihat partisi mana yang sudah di-mount. Jadi, bisa diketahui partisi apa saja yang sudah bisa diakses oleh Linux pada suatu saat.

.

Mounting Manual?

Mounting manual bisa dilakukan dengan perintah mount. Meskipun begitu, mounting manual hanya akan berhasil jika:

(1) Partisi terdaftar di /etc/fstab (kecuali untuk USB disks),
(2) Partisi belum di-mount (sehingga tidak terdaftar di /etc/mtab)

Misalnya /windows/C saya baru saja di-unmount (menggunakan perintahumount) sehingga tidak bisa diakses lagi. Meskipun begitu, jika saya ingin mengakses partisi ini, saya bisa melakukan mounting manual sbb:

user@linux:~> mount /windows/C 

Dan partisi tersebut bisa diakses kembali. Meskipun begitu, saya tidak akan bisa me-mount yang tidak terdaftar di fstab. Misalnya, saya mencoba me-mount drive H (yang tidak terdapat di komputer saya):

user@linux:~> mount /windows/H mount: can't find /windows/H in /etc/fstab or /etc/mtab 

Demikian pula, saya tidak bisa meng-unmount partisi yang tidak tercatat dimtab. Ini terjadi karena mtab adalah acuan untuk melihat partisi mana yang sudah di-mount oleh distro.

user@linux:~> umount /windows/H umount: /windows/H is not mounted (according to mtab) 

Oh iya, sistem ini juga mencegah terjadinya mounting ganda (yaitu, mounting kedua pada partisi sudah di-mount). Misalnya,

user@linux:~> mount /windows/C mount: /dev/hda2 already mounted or /windows/C busy mount: according to mtab, /dev/hda2 is already mounted on /windows/C 

***

Jadi, setelah pembahasan yang panjang di atas (aduh bo, cape deh, elah fiuuhh… :D :D ), dapat dilihat bahwa pengelolaan partisi di Linux dilakukan dengan prinsip berikut:

(1) Setiap partisi yang akan di-mount didaftarkan dalam file /etc/fstab (kecuali USB disks, untuk partisi jenis ini dikenakan auto-mounting). Pada proses booting, distro akan mengacu pada file ini.

(2) Partisi yang sudah berhasil di-mount akan dicatat dalam file /etc/mtab.

(3) User bisa melakukan mounting ataupun unmounting secara manual; dengan catatan terdaftar di /etc/fstab (untuk mounting) atau /etc/mtab(untuk unmounting).

(4) User tidak bisa me-mount ataupun unmount suatu partisi dua kali pada suatu sistem Linux.

***

Dan yah… demikianlah pembahasan kali ini tentang pengelolaan partisi di Linux. Mudah-mudahan penulisnya bisa terus semangat menulis tentang linux selepas post yang pertama ini. :P

Tidak ada komentar: