2.5 2006-01-01
Pengenalan ke Block Device Block Device

Kita akan melihat lebih dalam tentang aspek disk di Gentoo Linux dan linux pada umumnya, termasuk filesystem Linux, partisi dan block device. Lalu, setelah anda mulai mengenal disk dan filesystem luar dan dalam, anda akan dipandu dalam proses set up partisi dan filesystem untuk instalasi Gentoo Linux anda.

Pertama-tama, kami akan memperkenalkan block device. Block device yang paling dikenal mungkin adalah device yang menunjukkan drive IDE pertama anda di sistem Linux, bernama /dev/hda. Jika sistem anda menggunakan drive SCSI atau SATA, maka drive pertama anda akan bernama /dev/sda.

Block device di atas menunjukkan sebuah interface abstrak ke disk. Program-program dapat menggunakan block device tersebut untuk berinteraksi dengan disk anda tanpa perlu khawatir apakah drive anda adalah IDE, SCSI, atau yang lain. Program-program dapat dengan mudah menuliskan data ke disk sebagai susunan blok-blok 512 byte yang dapat diakses secara acak.

Partisi

Walaupun secara teori anda dapat menggunakan seluruh disk anda untuk sistem Linux anda, hal ini hampir tidak pernah diterapkan. Tetapi, block device disk anda dipisah-pisahkan lagi menjadi block device yang lebih kecil, yang lebih mudah ditangani. Pada sistem x86, block device kecil tersebut dikenal sebagai partisi.

Partisi dapat dibagi menjadi tiga jenis: primary, extended, dan logical.

Partisi primary adalah sebuah partisi dimana informasinya tersimpan di MBR (Master Boot Record). Karena MBR sangat kecil (512 byte), hanya empat partisi primary yang dapat diciptakan (sebagai contoh, /dev/hda1 sampai /dev/hda4).

Partisi extended adalah partisi primary spesial (artinya partisi extended adalah salah satu dari empat partisi primary yang mungkin) yang berisi lebih banyak partisi di dalamnya. Partisi tersebut pada awalnya tidak ada, tetapi karena empat partisi dianggap sangat sedikit, maka partisi extended diciptakan untuk menambahkan skema partisi tanpa kehilangan kompatibilitas terhadap skema yang lama.

Partisi logical adalah partisi di dalam partisi extended. Informasi partisi tersebut tidak tersimpan di MBR, tetapi didefenisikan di dalam partisi extended.

Advanced Storage

CD Instalasi x86 menyediakan dukungan untuk EVMS dan LVM2. EVMS dan LVM2 meningkatkan fleksibilitas pada saat setup partisi anda. Selama proses instalasi, kami akan memfokuskan pada partisi "biasa", tetapi bagus juga untuk mengetahui bahwa EVMS dan LVM2 juga didukung.

Merancang sebuah Skema Partisi Skema Partisi Default

Jika anda tidak tertarik untuk merancang sebuah skema partisi anda sendiri bagi sistem anda, anda dapat menggunakan skema partisi yang kami gunakan di seluruh buku ini:

/dev/hda1ext232MPartisi boot/dev/hda2(swap)512MPartisi swap/dev/hda3ext3Sisa dari diskPartisi root
Partisi Filesystem Besar Penjelasan

Jika anda tertarik untuk mengetahui seberapa besar sebuah partisi harusnya, atau tentang berapa banyak partisi yang anda perlukan, baca terus seksi selanjutnya. Jika tidak, lanjutkan dengan proses mem-partisi disk anda, dengan membaca Menggunakan fdisk untuk mem-partisi disk anda:

Berapa Banyak dan Berapa Besar?

Jumlah partisi sangat tergantung ke lingkungan anda. Sebagai contoh, jika anda memiliki banyak pengguna (user), anda mungkin sekali ingin menciptakan partisi /home yang terpisah untuk meningkatkan keamanan dan proses backup semakin mudah. Jika anda menginstal Gentoo sebagai server mail, partisi /var anda sebaiknya dipisahkan karena mail-mail anda disimpan di partisi /var. Pilihan filesystem yang tepat juga dapat meningkatkan performa. Server-server game sebaiknya memiliki partisi /opt yang terpisah karena kebanyakan server game diinstal di partisi tersebut. Alasan utamanya juga sama dengan partisi /home: keamanan dan backup. Anda pasti ingin menjaga /usr agar tetap luas: bukan hanya karena partisi ini menampung hampir semua aplikasi, tapi pohon Portage saja memerlukan space 500MB, belum termasuk berbagai macam paket source yang disimpan di dalamnya.

Seperti yang anda lihat, jumlah partisi sangat tergantung kepada tujuan anda. Partisi-partisi yang terpisah memiliki beberapa keuntungan:

  • Anda dapat memilih filesystem yang paling tepat untuk setiap partisi
  • Seluruh sistem anda tidak akan kehabisan space jika sebuah aplikasi secara terus-menerus menulis file-file ke sebuah partisi.
  • Waktu untuk memeriksa filesystem lebih cepat, karena beberapa pemeriksaan dapat dijalankan secara bersamaan (walaupun keuntungan ini lebih dirasakan oleh multi-disk daripada multi-partisi)
  • Keamanan dapat ditingkatkan dengan me-mount beberapa partisi read-only, nosuid (setuid bit diabaikan), noexec (executable bit diabaikan), dll.

Walaupun begitu, multi-partisi memiliki satu kelemahan utama: jika tidak dikonfigurasi dengan benar, anda akan berakhir dengan sistem yang memiliki banyak space di satu partisi dan kekurangan space di partisi yang lain. Untuk sistem SCSI dan SATA, terdapat batas partisi sebanyak 15.

Di bawah ini adalah contoh tabel partisi disk 20 Gb, yang digunakan pada laptop (berisi webserver, mailserver, gnome, ...):

$ df -h
Filesystem    Type    Size  Used Avail Use% Mounted on
/dev/hda5     ext3    509M  132M  351M  28% /
/dev/hda2     ext3    5.0G  3.0G  1.8G  63% /home
/dev/hda7     ext3    7.9G  6.2G  1.3G  83% /usr
/dev/hda8     ext3   1011M  483M  477M  51% /opt
/dev/hda9     ext3    2.0G  607M  1.3G  32% /var
/dev/hda1     ext2     51M   17M   31M  36% /boot
/dev/hda6     swap    516M   12M  504M   2% <not mounted>
(Sisa disk yang tidak terpartisi untuk penggunaan masa datang: 2 Gb)

Partisi /usr hampir penuh (terpakai 83%) pada contoh di atas, tetapi setelah seluruh software terinstal, partisi /usr tidak akan berkembang banyak lagi. Untuk partisi /var, Kelihatannya space yang dialokasikan terlalu banyak, ingatlah bahwa Portage secara default menggunakan partisi ini untuk mengkompliasi semua program-program. Jika anda ingin menjaga /var agar tetap memiliki ukuran yang cukup beralasan, misalnya 1GB, anda perlu mengganti variabel PORTAGE_TMPDIR di /etc/make.conf agar menunjuk ke sebuah pertisi yang memiliki ruang kosong yang cukup untuk mengkompilasi paket-paket besar seperti OpenOffice.

Menggunakan fdisk untuk mem-partisi disk anda

Bagian berikut ini menjelaskan tentang cara menciptakan contoh tabel partisi seperti yang dijabarkan sebelumnya, yaitu:

/dev/hda1Partisi boot/dev/hda2Partisi swap/dev/hda3Partisi root
Partisi Penjelasan

Gantilah tabel partisi anda sesuka anda.

Menampilkan Tabel Partisi Saat ini

fdisk merupakan utilitas yang populer dan bagus untuk memisahkan disk anda menjadi beberapa partisi. Jalankan fdisk pada disk anda (di contoh ini, kita menggunakan /dev/hda):

# fdisk /dev/hda

Setelah anda berada di dalam fdisk, anda akan menemui sebuah prompt seperti berikut:

Command (m for help): 

Ketik p untuk menampilkan tabel partisi disk anda saat ini:

Command (m for help): p

Disk /dev/hda: 240 heads, 63 sectors, 2184 cylinders
Units = cylinders of 15120 * 512 bytes

Device Boot    Start       End    Blocks   Id  System
/dev/hda1             1        14    105808+  83  Linux
/dev/hda2            15        49    264600   82  Linux swap
/dev/hda3            50        70    158760   83  Linux
/dev/hda4            71      2184  15981840    5  Extended
/dev/hda5            71       209   1050808+  83  Linux
/dev/hda6           210       348   1050808+  83  Linux
/dev/hda7           349       626   2101648+  83  Linux
/dev/hda8           627       904   2101648+  83  Linux
/dev/hda9           905      2184   9676768+  83  Linux

Command (m for help): 

Disk tersebut berisi tujuh partisi Linux (setiap partisi dengan System tertulis sebagai "Linux") dan juga sebuah partisi swap (tertulis sebagai "Linux swap").

Menghapus Semua Partisi

Pertama, kita akan menghapus semua partisi yang telah ada dari disk. Ketik d untuk menghapus sebuah partisi. Sebagai contoh, untuk menghapus partisi /dev/hda1:

Command (m for help): d
Partition number (1-4): 1

Partisi tersebut telah dijadwalkan untuk dihapus. Partisi tersebut tidak akan lagi ditampilkan jika anda mengetik p, tetapi tidak akan juga dihapus sebelum anda menyimpan perubahan anda. Jika anda melakukan kesalahan dan ingin membatalkan tanpa menyimpan perubahan anda, segera ketik q dan tekan Enter, partisi anda tidak akan dihapus.

Sekarang, anggap anda benar-benar ingin menghapus seluruh partisi-partisi anda, secara terus-menerus ketikkan p untuk menampilkan tabel partisi lalu diikuti oleh d dan nomor partisi untuk menghapusnya. Pada akhirnya, anda akan berakhir dengan sebuah tabel partisi kosong:

Disk /dev/hda: 30.0 GB, 30005821440 bytes
240 heads, 63 sectors/track, 3876 cylinders
Units = cylinders of 15120 * 512 = 7741440 bytes

Device Boot    Start       End    Blocks   Id  System

Command (m for help):

Setelah tabel partisi di memory telah kosong, anda telah siap untuk menciptakan partisi-partisi. Kita akan menggunakan skema partisi default seperti yang dijabarkan sebelumnya. Tentu saja, jangan ikuti instruksi ini secara persis jika anda tidak ingin menggunakan skema partisi yang sama!

Menciptakan Partisi Boot

Pertama-tama, kita akan menciptakan sebuah partisi boot kecil. Ketik n untuk menciptakan sebuah partisi, lalu p untuk memilih partisi primary, diikuti oleh 1 untuk memilih partisi primary pertama. Jika anda ditanya silinder pertama, tekan Enter. Sewaktu ditanya silinder terakhir, ketik +32M untuk menciptakan sebuah partisi sebesar 32 Mbyte:

Command (m for help): n
Command action
  e   extended
  p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-3876, default 1): (Hit Enter)
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-3876, default 3876): +32M

Sekarang, jika anda ketik p, anda akan melihat tabel partisi seperti berikut:

Command (m for help): p

Disk /dev/hda: 30.0 GB, 30005821440 bytes
240 heads, 63 sectors/track, 3876 cylinders
Units = cylinders of 15120 * 512 = 7741440 bytes

Device Boot    Start       End    Blocks   Id  System
/dev/hda1          1        14    105808+  83  Linux

Kita perlu membuat partisi tersebut bootable. Ketik a untuk mengaktifkan flag bootable pada partisi ini dan pilih 1. Jika anda ketik p lagi, anda akan menemui tanda * di kolom "Boot".

Menciptakan Partisi Swap

Sekarang marilah kita ciptakan partisi swap. Untuk melakukannya, ketik n untuk menciptakan sebuah partisi baru, lalu p untuk memberitah fdisk kalau anda menginginkan sebuah partisi primary. Lalu, ketik 2 untuk menciptakan partisi primary kedua, yaitu /dev/hda2. Jika anda ditanya silinder pertama, tekan Enter. Sewaktu ditanya silinder terakhir, ketik +512M untuk menciptakan partisi sebesar 512MB. Setelah itu, ketik t untuk mengeset tipe partisi, 2 untuk memilih partisi yang baru anda ciptakan, lalu ketikkan 82 untuk mengeset tipe partisi menjadi "Linux Swap". Setelah anda menyelesaikan langkah-langkah di atas, anda akan menemui tabel partisi seperti ini jika anda mengetik p:

Command (m for help): p

Disk /dev/hda: 30.0 GB, 30005821440 bytes
240 heads, 63 sectors/track, 3876 cylinders
Units = cylinders of 15120 * 512 = 7741440 bytes

Device Boot    Start       End    Blocks   Id  System
/dev/hda1 *        1        14    105808+  83  Linux
/dev/hda2         15        81    506520   82  Linux swap
Menciptakan Partisi Root

Terakhir, mari kita ciptakan partisi root. Ketik n untuk menciptakan sebuah partisi baru, lalu p untuk memberitahu fdisk kalau anda menginginkan sebuah partisi primary. Lalu, ketik 3 untuk menciptakan partisi primary ketiga, yaitu /dev/hda3. Jika anda ditanya silinder pertama, tekan Enter. Sewaktu ditanya silinder terakhir, tekan Enter, untuk menciptakan sebuah partisi sebesar sisa disk anda. Setelah menyelesaikan langkah-langkah di atas, anda akan menemui tabel partisi seperti di bawah ini jika anda mengetik p:

Command (m for help): p

Disk /dev/hda: 30.0 GB, 30005821440 bytes
240 heads, 63 sectors/track, 3876 cylinders
Units = cylinders of 15120 * 512 = 7741440 bytes

Device Boot    Start       End    Blocks   Id  System
/dev/hda1 *        1        14    105808+  83  Linux
/dev/hda2         15        81    506520   82  Linux swap
/dev/hda3         82      3876  28690200   83  Linux
Menyimpan Tabel Partisi

Untuk menyimpan tabel partisi dan keluar dari fdisk, ketik w.

Command (m for help): w

Sekarang setelah partisi-partisi anda tercipta, anda dapat melanjutkan ke Menciptakan Filesystem.

Menciptakan Filesystem Pendahuluan

Setelah semua partisi anda diciptakan, sekarang saatnya untuk menaruh filesystem di partisi tersebut. Jika anda tidak perduli filesystem apa yang ingin dipilih dan puas dengan apa yang kami gunakan di buku panduan ini, lanjutkan ke Menciptakan Filesystem di sebuah Partisi. Jika tidak, baca terus untuk mengetahui filesystem-filesystem yang tersedia...

Filesystem?

Kernel Linux mendukung berbagai filesystem. Kami akan menjelaskan ext2, ext3, ReiserFS, XFS dan JFS karena filesystem tersebut adalah yang paling umum digunakan di sistem Linux.

ext2 adalah filesystem yang asli dan telah dicoba/dipakai tetapi tidak memiliki journal metadata, yang berarti waktu yang diperlukan untuk memeriksa filesystem ext2 kadang bisa sangat lama. Saat ini telah ada beberapa filesystem journal generasi baru yang dapat diperiksa konsistensinya dengan cepat dan karena itu lebih dipilih daripada partisi non-journal. Journal filesystem menghindari waktu tunda sewaktu anda boot dari sistem dimana filesystem anda kebetulan berada pada saat inkonsisten.

ext3 adalah filesystem ext2 versi journal, memiliki journal metadata untuk pemulihan sistem yang cepat dan juga beberapa tambahan modus journal seperti journal data terstruktur dan data penuh. ext3 adalah filesystem yang sangat bagus dan dapat dihandalkan. Filesystem ini memiliki opsi "hashed b-tree indexing" tambahan yang menghasilkan performa yang tinggi di hampir semua situasi. Secara singkat, ext3 adalah filesystem yang handal.

ReiserFS adalah filesystem berbasis B*-tree yang memiliki performa keseluruhan yang bagus dan performanya melebihi ext2 dan ext3 pada saat menangani file kecil (file yang besarnya kurang dari 4k), sering kali melebihi dalam faktor 10x-15x. ReiserFS juga berskala sangat bagus dan memiliki journal metadata. Setelah kernel 2.4.18+, ReiserFS telah mapan dan bagus untuk pemakaian umum atau kasus khusus seperti pembuatan filesystem yang besar, penggunaan file kecil yang banyak, file yang besar, dan directory yang mengandung puluhan ribu file. ReiserFS adalah filesystem yang kami rekomendasikan pada semua partisi non-boot.

XFS adalah filesystem dengan journal metadata yang datang dengan fungsi fungsi mapan dan teroptimasi untuk skalabilitas. Kami hanya merekomendasikan anda menggunakan filesystem ini pada system Linux dengan disk SCSI kelas atas dan/atau disk fibre serta power supply yang tidak pernah terputus. Karena XFS meng-cache data yang lewat dengan agresif ke dalam RAM, data-data mungkin hilang pada saat program yang tidak didisain dengan benar (program-program yang tidak mengambil langkah yang aman sewaktu menulis ke disk, dan ada beberapa program seperti itu) berjalan dan sistem tiba-tiba mati.

JFS adalah filesystem journal dengan performa tinggi dari IBM. Filesystem ini baru-baru ini menjadi filesystem yang siap pakai, dan sampai saat ini tidak banyak record tentang filesystem ini jadi kami tidak dapat berkomentar apakah filesystem ini bagus atau tidak dalam hal stabilitas, dll.

Menciptakan Filesystem di sebuah Partisi

Untuk menciptakan filesystem di sebuah partisi, anda dapat menggunakan beberapa utilitas yang tersedia untuk setiap filesystem:

ext2mke2fsext3mke2fs -jreiserfsmkreiserfsxfsmkfs.xfsjfsmkfs.jfs
Filesystem Perintah

Sebagai contoh, untuk menciptakan filesystem ext2 di partisi boot (/dev/hda1 di contoh kita) dan ext3 di partisi root (/dev/hda3 di contoh kita), anda perlu menjalankan:

# mke2fs /dev/hda1
# mke2fs -j /dev/hda3

Sekarang ciptakan filesystem di seluruh partisi-partisi anda.

Mengaktifkan Partisi Swap

mkswap merupakan perintah untuk menciptakan partisi swap:

# mkswap /dev/hda2

Untuk mengaktifkan partisi swap, gunakan swapon:

# swapon /dev/hda2

Ciptakan dan aktifkan swap seperti contoh di atas.

Mount

Setelah partisi-partisi anda memiliki filesystemnya masing-masing, sekarang saatnya untuk me-mount partisi-partisi tersebut. Gunakan perintah mount. Ingat untuk menciptakan direktori-direktori mount yang diperlukan untuk setiap partisi anda. Sebagai contoh, kita akan me-mount partisi root dan boot:

# mount /dev/hda3 /mnt/gentoo
# mkdir /mnt/gentoo/boot
# mount /dev/hda1 /mnt/gentoo/boot
Jika anda ingin /tmp anda diletakkan di partisi yang terpisah, pastikan untuk mengubah permission-nya setelah proses mount: chmod 1777 /mnt/gentoo/tmp. Hal ini juga berlaku untuk /var/tmp.

Kita juga perlu me-mount filesystem proc (penghubung kernel virtual) di /proc. Tetapi, pertama kita perlu menaruh file-file kita di partisi.

Lanjutkan ke Menginstal File-file Instalasi Gentoo.