Cara Partisi Hard Disk Secara Manual di FreeBSD

· 2 min read

geometri cakram yang tersedia untuk BIOS dijelaskan dalam istilah silinder/kepala/sektor (C/H/S). Secara kiasan (dan, saya ulangi, segala sesuatu yang

Terkadang menentukan skema partisi bisa membingungkan, saya sarankan untuk membuat mesin virtual menggunakan FreeBSD dan mencobanya. Akan lebih baik jika kita memiliki beberapa perangkat fisik untuk digunakan agar lebih berpengalaman, tetapi mesin virtual juga bagus. Sebelum memulai, pastikan Anda memiliki salinan FreeBSD.

Dalam artikel ini kita akan membahas tentang mempartisi hard disk drive secara manual tanpa bantuan program sysinstall. Kebutuhan akan hal ini tidak sering muncul, tetapi terkadang sangat diperlukan saat Anda bekerja dengan FreeBSD.

Seperti yang Anda ketahui, disk biasanya dibagi menjadi beberapa partisi (partisi dalam istilah DOS/Windows dan Linux). Namun, FreeBSD juga memiliki pendekatan yang orisinal. Untuk memahaminya, Anda harus mempraktikkannya terlebih dahulu.



mempartisi hard disk di freebsd


1. Apa Itu "geometry"

Kata "geometri" dalam judul bagian ini tidak sengaja diletakkan dalam tanda kutip. Faktanya adalah karena volume cakram telah melampaui 1 gigabyte (keterbatasan BIOS lama komputer pribadi, yang sebelumnya disebut kompatibel dengan IBM), pengguna tidak pernah menemukan geometri sebenarnya. Perangkat lunak yang tertanam dalam cakram elektronik (yang disebut firmware) mengubahnya menjadi bentuk yang dapat dipahami oleh BIOS.

Dan geometri cakram yang tersedia untuk BIOS dijelaskan dalam istilah silinder/kepala/sektor (C/H/S). Secara kiasan (dan, saya ulangi, segala sesuatu yang terkait dengan geometri cakram sekarang harus dipahami secara kiasan, alegoris, atau metaforis), kepala membaca informasi dari trek magnetik konsentris yang menjadi tempat setiap piringan cakram dibagi. Satu set trek vertikal dengan nomor yang sama pada semua pelat yang membentuk cakram sebagai perangkat fisik membentuk silinder. Dan sektor memotong pelat, bersama dengan treknya, menjadi fragmen radial yang disebut blok. Yaitu dapat dibayangkan sedemikian rupa sehingga balok-balok tersebut terletak pada perpotongan (dalam ruang) silinder, lintasan, dan sektor.

Seperti yang terlihat oleh perangkat lunak, hard drive tampak seperti blok sektor yang besar, yang secara tradisional masing-masing terdiri dari 512 byte (sekarang 4.096 byte), dengan sedikit pengetahuan tentang lokasi fisik sektor tersebut. Misalnya, drive berkapasitas 300 GB mungkin memiliki 585.937.500 sektor 512-byte, yang diberi nomor 0 hingga 585.937.499. Beberapa antarmuka hard drive awal mengharuskan pengontrol drive pada komputer induk untuk mengetahui tata letak fisik disk (karena pengontrol mengirimkan perintah untuk menggerakkan kepala disk).

Hard drive IDE (Integrated Drive Electronics, pertengahan 1980-an) akhirnya mengintegrasikan pengontrol disk ke dalam drive. Pengontrol disk terintegrasi menerjemahkan nomor sektor logis (seperti yang terlihat oleh perangkat lunak) ke lokasi fisik, yang menyajikan antarmuka blok sektor sederhana ke komputer induk sambil memungkinkan tata letak fisik yang jauh lebih kompleks. Sayangnya, karena alasan kompatibilitas perangkat lunak, nomor sektor masih dikodekan sebagai triplet CHS (tiga angka, tetapi tidak terkait dengan jumlah silinder, kepala, atau sektor/jalur penggerak yang sebenarnya) selama bertahun-tahun hingga LBA (pengalamatan blok logis, yang mengkodekan nomor sektor sebagai satu angka) menjadi populer.



sector track dan silinder di hard disk


Meskipun secara logika hanya ada blok besar sektor, sektor, trek, dan kepala (atau permukaan perekaman) secara fisik masih ada. Tidak ada cara mudah bagi perangkat lunak untuk mengetahuinya. Bagian ini memberikan beberapa definisi dasar untuk fitur fisik ini. Banyak pembaca mungkin sudah familier dengan ini.

Jumlah trek dan sektor dalam cakram modern biasanya tetap (atau lebih tepatnya, muncul seperti itu di BIOS): 255 trek dipotong menjadi 63 sektor masing-masing, yang secara total menghasilkan 16065 blok per silinder. Dan jumlah silinder ditentukan oleh kapasitas cakram (saya tidak akan membahas perhitungan aritmatika). Satu-satunya hal penting di sini adalah bahwa kepala cakram bergerak secara mekanis secara serempak di sepanjang permukaan semua pelat. Artinya, jika informasi dibaca dari trek pertama pada satu pelat, maka semua kepala lainnya bergerak ke trek yang sama - masing-masing pada pelatnya sendiri.

Saya ulangi, semua ini bersyarat - setidaknya karena konsep silinder dalam pengertian geometris kata tersebut sangat sulit diterapkan pada cakram modern, yang sering kali tidak hanya berupa pelat tunggal, tetapi bahkan, bisa dikatakan, semi-pelat (yaitu, hanya menggunakan satu sisi pelat tunggal). Namun, geometri ini merupakan masalah firmware dan BIOS, sementara kami tertarik pada silinder — sekumpulan trek yang diakses secara serempak, dan blok — kuanta ruang disk minimal.

Trek yang membentuk silinder dibuat selama penandaan disk pabrik awal — yang disebut pemformatan tingkat rendah. Dari uraian di atas, jelas bahwa akses ke data dalam satu silinder atau sekelompok silinder yang berdekatan akan dilakukan lebih cepat daripada data yang sebagian ditulis ke silinder pertama dan, katakanlah, silinder terakhir dari disk. Kasus ini tidak setidak mungkin seperti yang terlihat: dalam DOS, di mana ruang yang ditempati oleh file yang dihapus ditandai sebagai tidak digunakan, tetapi sebenarnya ditulis ulang hanya ketika ruang yang benar-benar kosong pada disk benar-benar habis, situasi seperti itu dapat terjadi.

Geometri hard drive adalah organisasi data pada piringan disk dan menentukan bagaimana dan di mana data disimpan pada permukaan setiap piringan. Fungsi ini digunakan untuk menetapkan geometri hard disk seperti ukuran sektor, head, sektor per track, silinder, total sektor, dan boot record (DBR) setiap partisi.

Harap perhatikan bahwa fitur ini mengonfigurasi parameter yang digunakan dalam tabel partisi. Dalam beberapa kasus, setelah menyimpan tabel partisi, parameter disk mungkin berubah. Dengan demikian, sistem operasi mungkin tidak dapat melakukan booting secara normal setelah mengubah geometri hard disk. Jangan buat perubahan apa pun jika Anda tidak sepenuhnya memahami fungsi ini.

2. Tentang Pembagian Hard Disk Drive

Jadi, penyelidikan menemukan bahwa hingga 4 partisi (inklusif) dapat dibuat pada satu disk fisik, yang masing-masing dapat ditetapkan ke sistem operasi yang terpisah. Apa selanjutnya? Dan kemudian Anda harus menyelidiki masalah gaya markup bagian.

Gaya tata letak partisi disebut Label Disk, yang berbeda dari label disk nama sembarang yang dapat ditetapkan ke partisi disk di DOS. Gaya markup adalah format tabel partisi sekunder, yang ditulis ke blok pertama partisi primer. Tabel ini menentukan sifat tindakan yang tersedia pada partisi primer ini.

Pengguna Windows maupun pengguna Linux biasanya tidak perlu memikirkan masalah gaya markup. Namun, ada banyak gaya seperti itu, untuk memverifikasinya, cukup masuk ke menu konfigurasi kernel Linux, ke subbagian Jenis Partisi di bagian Sistem berkas. Namun, dari semua kelimpahan ini, kami hanya tertarik pada dua gaya, yaitu DOS dan BSD.

DOS/Windows (secara mengejutkan) menggunakan gaya partisi DOS. Gaya ini didasarkan pada tabel BIOS, yang hanya digunakan sebagian. Yaitu, dari empat entri Tabel Partisi yang tersedia, hanya dua yang terisi (atau lebih tepatnya, hanya dua partisi yang dapat dibuat menggunakan FDISK standar dari DOS/Windows9X/ME; saya tidak tahu seperti apa situasinya di NT/2000/XP).

Linux juga menggunakan gaya markup DOS. Hanya di sini tabel BIOS digunakan sepenuhnya dengan menggunakan alat standar sistem operasi ini (misalnya, fdisk atau cfdisk) Anda dapat membuat keempat partisi primer dan menggunakannya sesuai keinginan. Namun, sekali lagi, hanya satu dari mereka yang dapat dideklarasikan diperluas dan karenanya dibagi menjadi bagian-bagian logis.

Gaya markup BSD (Label BSD) yang digunakan dalam FreeBSD, DragonFlyBSD, NetBSD dan OpenBSD, serta dalam BSD/OS terlihat sangat berbeda. Tabel BIOS juga dapat digunakan di sini, yang akan membuat empat partisi primer. Dalam terminologi FreeBSD, mereka disebut irisan (terjemahan yang paling akurat adalah "segmen") untuk membedakannya dari markup partisi BSD. Irisan dalam nomenklatur file perangkat ditetapkan dengan menambahkan huruf s dan nomor seri ke nama file disk (tidak seperti disk yang dimulai dengan angka satu), misalnya: ad0s1, ad0s2, ad0s3, ad0s4 untuk disk master pada saluran IDE pertama.

Jika satu atau beberapa irisan diberi pengenal sistem BSD - 165 dalam desimal (sebenarnya, ini disebut 4.2BSD dan juga merupakan karakteristik DragonFlyBSD dan NetBSD, meskipun secara teoritis yang terakhir, seperti OpenBSD, juga memiliki nomor pengenal partisi sendiri), maka blok awal mereka akan ditulis oleh tabel partisi BSD yang sebenarnya (Label BSD). Menurut formatnya, setiap irisan dengan ID 165 benar-benar sama dan dapat dibagi menjadi beberapa bagian logis (sebenarnya partisi, dalam terminologi FreeBSD).

Ada delapan entri untuk bagian dalam tabel BSD. Bagian yang sesuai adalah nomenklatur yang ditandai dengan menambahkan huruf ke nama file irisan - dari a hingga h. Namun, di DragonFlyBSD batasan ini dapat diatasi, dan irisan dapat berisi hingga 16 partisi logis.

Pada kenyataannya, tidak semua partisi irisan dapat digunakan untuk menghosting sistem berkas. Pertama-tama, salah satu catatan (yang ketiga, ditandai dengan huruf c) dicadangkan untuk menggambarkan seluruh irisan secara keseluruhan - misalnya, ad0s1c, kebutuhannya akan menjadi jelas nanti. Selanjutnya, entri tabel pertama, yang sesuai dengan berkas perangkat yang ditandai sebagai ad#s#a, dialokasikan untuk menggambarkan partisi root dari sistem berkas. Dan jelas bahwa pada mesin lokal tertentu hanya ada satu partisi root, terlepas dari jumlah irisan dan disk fisik.

Terakhir, entri kedua (berkas perangkat - ad#s#b) dimaksudkan semata-mata untuk menggambarkan partisi swap, yang, pertama, tidak dapat berisi data, dan kedua, merupakan satu-satunya di seluruh disk (jelas bahwa membuat partisi swap pada setiap irisan tidak ada gunanya, meskipun jika Anda memiliki dua disk fisik, membagi ruang swap di antara keduanya adalah ide yang sepenuhnya sehat).

Biasanya, tujuan pembuatan irisan adalah untuk menempatkan lebih dari satu sistem operasi pada disk dan mempertahankan kemampuan untuk bertukar data di antara keduanya (secara teoritis, partisi BSD dapat diakses dari Linux jika kernel dibangun kembali dengan benar; meskipun prosedur sebaliknya adalah mengakses partisi ext2fs dari FreeBSD, - ini lebih sederhana).

Jika seluruh disk yang ada direncanakan untuk dihancurkan oleh FreeBSD, maka biasanya satu irisan dibuat untuk (hampir) seluruh volumenya, meninggalkan entri dalam tabel BIOS untuk sisanya yang tidak digunakan. Tujuh posisi dalam tabel BSD cukup untuk memisahkan cabang sistem file seperti /usr, /tmp, /var dan /home - kira-kira ini adalah metode partisi disk default yang ditawarkan oleh program sysinstall.

3. Penandaan Irisan

Selama instalasi awal FreeBSD, program sysinstall biasanya digunakan untuk membuat irisan dan partisi di dalamnya. Namun, perlu diingat bahwa ini tidak lebih dari sekadar antarmuka untuk serangkaian utilitas khusus, termasuk utilitas partisi disk. Oleh karena itu, mengenalnya tidak akan merugikan dalam hal apa pun. Di satu sisi, ini akan memberikan pemahaman tentang apa sebenarnya yang dilakukan sysinstall. Di sisi lain, beberapa tindakan untuk mempartisi disk menjadi jauh lebih mudah dilakukan dengan bantuannya. Jadi, saya menghabiskan banyak waktu di sysinstall untuk membuat partisi guna menyiapkan array RAID perangkat lunak, hingga saya menyadari bahwa melakukannya secara manual jauh lebih mudah.

Ada juga utilitas partisi disk, yang, selain menjalankan fungsi langsungnya, berfungsi sebagai sumber informasi yang sangat diperlukan tentang disk fisik secara umum dan apa yang dipikirkan FreeBSD tentangnya. Dan kemudian - dengan bantuannya, Anda bisa mendapatkan informasi tentang partisi disk yang tidak dapat ditemukan di tempat lain.

Tidak seperti Linux, partisi disk di FreeBSD dilakukan dalam dua tahap dan oleh dua program terpisah. Pertama, disk dipotong menjadi beberapa bagian (atau satu bagian dibuat, baik dalam mode kompatibilitas atau untuk penggunaan eksklusif). Kemudian, irisan yang dialokasikan untuk FreeBSD dibagi menjadi beberapa bagian.

Seperti yang disebutkan, semua informasi ini merujuk ke disk dengan sistem berkas root. Untuk mendapatkan informasi serupa tentang drive lain, nama berkas perangkat terkait harus secara eksplisit ditentukan sebagai argumen untuk perintah fdisk. Misalnya.


$ fdisk /dev/ar0
Dengan menggunakan fdisk Anda dapat menampilkan informasi yang lebih ringkas dan penting saja, yaitu dengan menambahkan opsi -s, seperti pada contoh berikut.


$ fdisk -s /dev/ad#
Dengan perintah di atas, Anda ingin melihat hal-hal terpenting seperti nama file perangkat, jumlah silinder, kepala dan sektor, serta informasi singkat tentang irisan yang ada, yaitu sektor awal, ukuran irisan, pengidentifikasi jenis sistem file dan bendera aktivitas.


/dev/ad0: 155061 cyl 16 hd 63 sec
Part        Start        Size Type Flags
   1:           0   156301488 0xa5 0x80
Semua yang telah dikatakan hanya dimaksudkan untuk memperoleh informasi. Untuk menggunakan fdisk guna melakukan tindakan aktif apa pun pada partisi disk, Anda perlu membiasakan diri dengan opsi lainnya. Tidak banyak opsi, dan yang paling penting, mungkin, adalah opsi -I. Termasuk dalam perintah tersebut.


$ fdisk -I /dev/ar0
Pertama-tama, ia akan mengingatkan kita disk mana yang disalahgunakan dan akan melaporkan parameternya (baik yang tercatat dalam Label Disk maupun yang terbaca dari BIOS - secara umum, keduanya tidak harus sama):

Check oepnssl version
******* Working on device /dev/da0 *******
parameters extracted from in-core disklabel are:
cylinders=124 heads=64 sectors/track=32 (2048 blks/cyl)

parameters to be used for BIOS calculations are:
cylinders=124 heads=64 sectors/track=32 (2048 blks/cyl)
Setelah ini, Anda akan diminta untuk menentukan awal dan akhir irisan secara tepat. Jika Anda menolak, irisan tersebut akan diambil dari definisi sebelumnya; jika Anda setuju, Anda perlu menentukan silinder, kepala, sektor pertama dan terakhir. Yang akan ditampilkan sebagai.


sysid 165 (0xa5),(FreeBSD/NetBSD/386BSD)
    start 0, size 260000 (126 Meg), flag 0
    beg: cyl 0/ head 0/ sector 1;
    end: cyl 126/ head 60/ sector 32
Jika muncul pertanyaan, jawab saja dengan "y" (ya).


Are we happy with this entry? [n] y
Anda dapat melanjutkan membuat bagian kedua.


The data for partition 2 is:

Do you want to change it? [n]
Jika pertanyaan berikutnya muncul, jawablah dengan "tidak" [n].


Do you want to change the active partition? [n]
Meskipun ada cara lain untuk membuat irisan - deskripsi awal parameternya, dan pada saat yang sama geometri disk, dalam sebuah file (dalam file teks biasa, menggunakan editor yang sudah dikenal). Setelah itu program fdisk diluncurkan dalam bentuk.


$ fdisk -f configfile /dev/ad#
Terakhir, untuk membuat tata letak disk dalam mode eksklusif, Anda dapat melakukannya tanpa perintah fdisk sama sekali: cukup dengan menolkan blok awalnya menggunakan perintah dd, yang melakukan apa yang disebut penyalinan dengan transformasi. Perintah ini memerlukan dua argumen - nama file yang sedang disalin (if - file input) dan nama file perangkat tempat file tersebut disalin (of - file output). Anda juga dapat menentukan ukuran blok data yang sedang disalin dan jumlahnya. Artinya, dalam kasus kami akan terlihat seperti ini:


$ dd if=/dev/zero of=/dev/ad# bs=1k count=1
Atau,


$ dd if=/dev/zero of=/dev/ad# count=2

4. Penandaan Partisi

Irisan yang dibuat dengan fdisk, terlepas dari apakah itu "eksklusif" atau "kompatibel", sudah dapat digunakan - sistem berkas dapat dibuat langsung di atasnya. Namun, biasanya terlebih dahulu dibagi menjadi partisi logis (atau setidaknya satu partisi dibuat, ad#s1c, yang menggambarkan seluruh irisan). Sebelumnya, tujuan ini dilayani oleh utilitas disklabel, tetapi dalam versi 5.1 digantikan oleh program bsdlabel yang dipinjam dari NetBSD (dengan antarmuka yang lebih ramah pengguna, seperti yang dikatakan para optimis).

Meskipun disklabel juga dapat ditemukan di direktori /sbin, itu hanya tautan keras ke berkas yang dapat dieksekusi yang sama dengan bsdlabel. Ini dapat dengan mudah diverifikasi dengan melihat pengenal kedua berkas:


$ ls -l /sbin/bsdlabel /sbin/disklabel
-r-xr-xr-x  2 root  wheel  27348 23 ??? 22:42 /sbin/bsdlabel*
-r-xr-xr-x  2 root  wheel  27348 23 ??? 22:42 /sbin/disklabel*
Sekali lagi, dijalankan tanpa opsi (tetapi dengan argumen yang diperlukan berupa nama berkas perangkat, atau irisan), bsdlabel berfungsi murni sebagai laporan status, menghasilkan keluaran seperti berikut untuk irisan berlabel FreeBSD:


$ bsdlabel /dev/ad0

# /dev/ad0:
8 partitions:
#        size   offset    fstype  [fsize bsize bps/cpg]
  a:   524288        0    4.2BSD    2048 16384 32776
  b:  2074624   524288      swap
  c: 156301488       0    unused    0     0     0
  # "raw" part, don't edit
  d:   524288  2598912    4.2BSD    0     0     0
  e: 10240000  3123200    4.2BSD    0     0     0
  f: 142938288 13363200   4.2BSD    0     0     0
Contoh yang diberikan adalah untuk disk "eksklusif" - itulah sebabnya kita melihat offset nol untuk partisi pertama dan "irisan" c. Untuk disk yang ditandai dalam mode kompatibilitas, gambarnya akan kurang lebih seperti berikut:


# /dev/ad0s1:
8 partitions:
#        size   offset    fstype   [fsize bsize bps/cpg]
  a:   524288       63    4.2BSD     2048 16384 32776
  c: 16771797       63    unused        0     0
  # "raw" part, don't edit
  d:   524288   524351    4.2BSD     2048 16384 32776
  e:   524288  1048639    4.2BSD     2048 16384 32776
  f:  1048576  1572927    4.2BSD     2048 16384     8
  g: 14150357  2621503    4.2BSD     2048 16384 28552
Artinya, Anda dapat melihat bahwa partisi pertama dari disk yang ditandai "normal" digeser relatif terhadap awalnya sebanyak 63 blok yang dicadangkan.

Bukanlah suatu kebetulan bahwa bidang fstype dari partisi c memiliki nilai unused — tidak dapat digunakan untuk penyimpanan data apa pun. Akan tetapi, itu adalah satu-satunya yang tersedia pada drive yang baru ditandai dengan fdisk. Bagaimana Anda dapat membuat partisi yang diperlukan lainnya?.

Anehnya, salah satu caranya sangat sederhana: menggunakan editor teks biasa. Untuk melakukannya, bsdlabel diluncurkan dengan opsi -e dan argumen — nama file dari irisan yang ditandai:


$ bsdlabel -e /dev/ad0s1
Sebagai tanggapan, editor yang didefinisikan dalam variabel EDITOR dari berkas profil superuser akan dipanggil (tidak perlu diingat bahwa semua operasi dengan disk, irisan, dan partisi dilakukan hanya atas nama root), jika tidak ada, editor tersebut akan menjadi /usr/bin/vi. Dan di editor ini kita akan melihat yang berikut:


# /dev/da0:
8 partitions:
#        size   offset    fstype   [fsize bsize bps/cpg]
  c:   254787        0    unused        0     0
  # "raw" part, don't edit
Jika Anda tidak berencana untuk menempatkan sistem berkas root pada irisan ini, untuk membuat satu partisi, cukup dengan menambahkan (menggunakan alat pengeditan yang paling umum) baris jenis berikut.


d:   254787        0    4.2BSD
dalam kasus disk "eksklusif", atau


d:   254787        63    4.2BSD
untuk disk yang ditandai dalam mode kompatibilitas.

Dan keluar dari editor dengan perintah standarnya sambil menyimpan perubahan (dalam kasus vi — :wq), sebagai tanggapannya kami akan diberi tahu bahwa.


File /tmp/EdDk.KvEGsqRNsh saved.
Kali berikutnya kita memanggil bsdlabel untuk potongan yang sama, tetapi tanpa opsi, gambarnya akan seperti berikut.


# /dev/da0:
8 partitions:
#        size   offset    fstype   [fsize bsize bps/cpg]
  c:   254787        0    unused        0     0
  # "raw" part, don't edit
  d:   254787        0    4.2BSD        0     0     0
Artinya, Anda dapat melihat bahwa partisi tersebut "berfungsi" dan telah berhasil dibuat. Untuk membuat beberapa partisi, termasuk root dan swap, kita memerlukan beberapa aritmatika lagi, mirip dengan program fdisk yang digunakan dalam mode interaktif.
Subscribe on LinkedIn Cara Partisi Hard Disk Secara Manual di FreeBSD

Enclosures Link: Cara Partisi Hard Disk Secara Manual di FreeBSD

Silahkan Berkomentar, Kakak...! Bunda...!

Posting Komentar