Tidak lama sesudah hard disk PC ditemukan, orang kemudian banyak yang ingin meng-install beberapa operating sistem meskipun PC mereka hanya memiliki satu hard disk. Sehingga diperlukan suatu mekanisma untuk membagi sebuah fisik hard disk menjadi beberapa logical disk. Jadi apa yang disebut sebuah partisi adalah: suatu bagian yang bersambung (contiguous) dari blok-blok hard disk yang diperlakukan sebagai suatu hard disk oleh sistem operasi.
Partisi tidak boleh saling tumpang-tindih (overlap), alasannya sederhana: sebuah sistem operasi pasti tidak akan dapat bekerja apabila sebuah sistem operasi lain di-install pada komputer yang sama dan merubah informasi penting yang diakibatkan tumpang-tindihnya partisi. Begitu pula, dua partisi yang berdekatan tidak boleh memiliki selang antara. Meskipun susunan partisi tsb tidak membahayakan, namun dengan membuat selang antara dua partisi berarti Anda telah menyia-nyiakan disk space.
Sebuah disk tidak harus dipartisi secara lengkap. Anda dapat memutuskan untuk meninggalkan beberapa ruang pada disk Anda yang tidak digunakan oleh sistem operasi yang Anda install. Sesudah mengetahui instalasi mana yang akan Anda gunakan seterusnya, Anda dapat melakukan partisi ruang disk space yang tersisa tadi dan menempatkan file sistem ke dalamnya.
Partisi tidak dapat dipindahkan maupun dirubah ukurannya tanpa merusak file sistem yang terdapat di dalamnya. Sehingga melakukan partisi ulang biasanya meliputi pekerjaan membackup dan merestore seluruh file sistem yang terpengaruh oleh proses ini. Sesungguhnya rusaknya seluruh isi disk saat mempartisi ulang merupakan suatu hal yang umum terjadi, sehingga sebelum Anda mulai menggunakan fdisk, Anda harus melakukan backup keseluruhan dari disk dalam komputer tersebut.
Beberapa partisi dengan tipe file sistem tertentu dapat dipecah menjadi dua bagian partisi tanpa menyebabkan hilangnya data (jika Anda beruntung). Misalnya, dengan program yang bernama fips , sebuah partisi MS-DOS dapat dipecah menjadi dua partisi untuk memberi tempat bagi instalasi Linux tanpa harus melakukan reinstall MS-DOS. Anda tentu tidak akan melakukan hal tsb sebelum seluruh data dari komputer Anda dibackup, ya kan?
Tape adalah teman Anda untuk mem-backup. Tape itu dapat digunakan secara cepat, reliable, dan mudah digunakan; sehingga Anda dapat melakukan backup yang kadang, lebih disukai untuk dilakukan secara otomatis, dan tanpa menimbulkan kesulitan.
Bersiaplah, penulis akan membicarakan tape tetapi tidak akan membicarakan ftape, sesuatu yang dikendalikan disk controller. Pertimbangkan untuk membeli SCSI: Linux secara native telah men-support SCSI. Dengan Linux, Anda tidak perlu untuk memasukkan ASPI driver, dan tidak akan kehilangan HMA yang berharga. Sesudah host adapter SCSI ter-install, Anda tinggal memasang tambahan disk, tape, atau CD-ROM kedalamnya. Anda tidak akan bersusah-payah lagi dengan I/O address, IRQ atau Master/Slave serta penyesuaian PIO-level.
Tambahan: host adapter SCSI yang tepat akan memberikan Anda performance I/O yang tinggi tanpa banyak membebani CPU. Meskipun dengan aktifitas disk yang tinggi Anda akan mendapatkan waktu respons yang baik. Jika Anda merencanakan untuk menggunakan sistem Linux sebagai USENET news feed utama, atau jika Anda akan memasuki bisnis ISP, jangan pernah berfikir untuk menjalankan sebuah sistem tanpa SCSI.
Sejak awal, Jumlah partisi dalam sistem berbasis Intel sudah dibatasi: Tabel partisi asli yang diinstall sebagai bagian dari boot sektor hanya menyediakan tempat bagi 4 (empat) entri partisi. Partisi-partisi tsb sekarang disebut partisi primer. Sesudah jelas bahwa orang membutuhkan lebih banyak partisi maka partisi logical dikembangkan. Jumlah partisi logical tidak dibatasi: Setiap partisi logical berisi sebuah pointer ke partisi logical berikutnya, sehingga secara potensial Anda dapat memiliki rantai entri partisi yang tidak terbatas.
Untuk alasan kompatibilitas, space yang dipakai oleh seluruh partisi logical harus diperhitungkan. Jika Anda menggunakan partisi logical, sebuah partisi primer ditandai sebagai partisi extended, blok awal dan blok akhirnya ditandai sebagai area yang digunakan oleh partisi logical Anda. Hal ini menyebabkan space yang digunakan oleh semua partisi logical harus bersambung tanpa antara (contiguous). Jumlah partisi extended hanya ada satu: program fdisk
tidak akan membuat lebih dari satu partisi extended.
Linux hanya dapat menangani partisi dengan jumlah yang terbatas pada setiap drivenya. Sehingga dalam Linux Anda dapat memiliki 4 partisi primer (jika Anda menggunakan partisi logical maka 3 diantara partisi primer tsb dapat Anda gunakan), dan maksimum jumlah keseluruhan adalah 15 partisi bagi disk SCSI (atau berjumlah keseluruhan 63 bagi IDE disk).
Dalam Linux, partisi-partisi dinyatakan dengan file device. Sebuah file device adalah sebuah file dengan tipe c (untuk "character device", yaitu device yang tidak menggunakan buffer cache) atau b (untuk "blok device", device yang menggunakan buffer cache). Di dalam Linux, semua disk dinyatakan hanya sebagai blok device. Berlainan dengan beragam Unix yang lain, Linux tidak memberikan versi raw character bagi disk maupun partisi-partisinya.
Suatu hal yang penting bagi suatu file device adalah bilangan major dan minor dari device, yang ditampilkan sebagai pengganti ukuran file.
$ ls -l /dev/had brw-rw---- 1 root disk 3, 0 Jul 18 1994 /dev/had ^ ^ | bilangan minor dari device | bilangan major dari device
Ketika mengakses sebuah file device, bilangan major akan menentukan device driver mana yang dipanggil untuk melakukan operasi input/output. Pemanggilan device driver ini dilakukan dengan bilangan minor sebagai parameternya, dan interpretasi dari bilangan minor tsb tergantung kepada device driver tadi. Dokumentasi device driver biasanya menjelaskan bagaimana device driver menggunakan bilangan minor. Bagi disk IDE, dokumentasi ini terdapat pada /usr/src/linux/Documentation/ide.txt
. Bagi disk SCSI, orang akan menduga bahwa dokumentasi tsb akan berada di dalam /usr/src/linux/Documentation/scsi.txt
, tetapi dugaan itu salah. Orang harus memeriksa driver source untuk memastikannya (/usr/src/linux/driver/scsi/sd.c:184-196
). Kita beruntung memiliki daftar Peter Anvin yang berisi bilangan serta nama device di dalam file /usr/src/linux/Documentation/device.txt
; Silahkan lihat untuk blok device, major 3,22,33,34 untuk disk IDE serta major 8 untuk disk SCSI. Bilangan major dan minor masing-masing sebesar 1 byte dan itulah sebabnya mengapa jumlah partisi pada setiap disk dibatasi.
Sesuai konvensi, suatu file device memiliki nama tertentu dan program-program sistem mengetahui nama-nama tsb karena telah tercompile kedalamnya. Program-program itu menginginkan disk IDE diberi nama /dev/hd*
sedangkan disk SCSI diberi nama /dev/sd*
. Disk-disk dinamai dengan a, b, c, dst, sehingga /dev/hda
adalah disk IDE Anda yang pertama dan /dev/sda
adalah disk SCSI Anda yang pertama. Kedua device tsb mewakili keseluruhan disk dimulai dari blok satu. Penulisan kedalam disk dengan alat yang salah akan merusak master boot loader dan tabel partisi dari disk tsb, menyebabkan semua data dalam disk tsb tidak terbaca atau membuat sistem Anda tidak dapat di-boot. Fahamilah dahulu apa-apa yang Anda akan lakukan, dan sekali lagi, lakukanlah backup sebelum Anda melakukannya.
Partisi primer dalam sebuah disk ditandai dengan angka 1, 2, 3, dan 4. Sehingga /dev/hda1
adalah partisi primer pertama dari disk IDE pertama, dst. Partisi logical memiliki bilangan 5 dan seterusnya, sehingga /dev/sdb5
adalah partisi logical pertama dari disk SCSI kedua.
Setiap entri partisi memiliki alamat blok awal dan alamat blok akhir dan juga tipenya. Tipe adalah sebuah kode bilangan (satu byte) yang menAndai suatu partisi dalam suatu sistem operasi. Demi kepentingan konsultan komputer, kode tipe partisi tidaklah khas (unik), sehingga dimungkinkan adanya dua sistem operasi yang menggunakan satu kode tipe yang sama.
Linux menggunakan kode tipe 0x82 bagi partisi swap, dan 0x83 bagi file sistem "native" (untuk hampir semua dari Anda itu berarti ext2). File sistem yang dulu pernah populer namun sekarang telah ketinggalan yaitu Linux/Minix, menggunakan kode tipe 0x81 bagi partisinya. OS/2 menAndai partisinya dengan tipe 0x07 seperti halnya NTFS dari Windows NT. MS-DOS memberikan beberpa kode tipe bagi berbagai jenis file sistem FAT: 0x01, 0x04, dan 0x06. DR-DOS menggunakan 0x81 untuk menAndai partisi FAT yang terproteksi, menyebabkan adanya konflik tipe dengan Linux/Minix saat itu, namun baik DR-DOS maupun Linux/Minix sudah tidak banyak lagi digunakan. Partisi extended yang digunakan sebagai kontainer bagi partisi logical memiliki kode tipe 0x05.
Partisi-partisi dibuat dan dihapus menggunakan program fdisk. Setiap program sistem operasi dilengkapi dengan sebuah fdisk, dan secara tradisi di setiap sistem operasi program dinamai fdisk
(atau FDISK.EXE
). Beberapa fdisk, termasuk yang terdapat di dalam DOS, memiliki keterbatasan jika menemui partisi sistem operasi lain. Keterbatasan-keterbatasan tsb meliputi ketidak-mampuan untuk melakukan apapun jika kode tipenya tidak dikenal, menangani silinder dengan nomor diatas 1024, dan membuat bahkan memahami partisi yang batas akhirnya diluar batas silinder. Misalnya, fdisk dari MS-DOS tidak dapat menghapus partisi NTFS, fdisk dari OS/2 diketahui dapat "mengoreksi" partisi yang dibuat dengan fdisk dari Linux yang bats akhirnya diluar batas silinder. Demikian pula, fdisk dari DOS dan OS/2 keduanya mempunyai masalah dengan disk yang memiliki lebih dari 1024 silinder (silahkan baca large-disk Mini-HOWTO mengenai hal yang terinci dari disk demikian.