Disk Yapılandırma

From OpenBSD Belgeleme Projesi

Contents

OpenBSD'nin disklabel(8)’ini kullanmak

disklabel(8) nedir?

Öncelikle, disklabel(8) man sayfasını okuyunuz. OpenBSD üzerinde disk kurulumunun detayları donanım platformuna göre değişir. i386, amd64, macppc, zaurus, ve cats platformları için disk kurulumu iki aşamada yapılır. Önce, sabit diskin OpenBSD’ye ayrılacak dilimi fdisk(8) kullanılarak belirlenir, daha sonra bu dilim üzerinde disklabel(8) kullanılarak OpenBSD altbölümleri oluşturulur.

Ancak disklabel(8), tüm OpenBSD platformları için yetkin olan OpenBSD altbölümleri yönetim aracıdır. Aynı zamanda fdisk(8) kullanan platformlarda, tüm disklabel(8) altbölümleri tek bir fdisk(8) altbölümü şeklinde yer alır.

Etiketler, sürücü geometrisi ve disk üzerindeki dosya sistemleri gibi diskiniz hakkında genel bilgileri tutarlar. Etiketler ayrıca, diskin dönme hızı, diskteki boşluklar vb. gibi çoğu zaman doğru olmayan, ama tarihi sebeplerle tutulan bilgileri de içerirler. Bu konuda endişe etmeyin. Sonrasında önyükleme (boot) programı disk sürücüsüne ulaşmak ve dosya sistemlerinin nerede olduğu bilgisine erişmek için disklabel’i kullanır. Disklabel hakkında daha detaylı bilgi için disklabel(5) man sayfasını okuyabilirsiniz.


Bazı platformlarda disklabel, donanım mimarisine bağlı oluşan disk bölümleme sınırlamaların üzerinden gelmeye yardımcı olur. Örneğin, i386 üzerinde sadece 4 birincil bölüm oluşturulabilirken, disklabel(8) ile bunlardan birine tüm OpenBSD bölümlerini (mesela, 'swap', '/', '/usr', '/var' vb.) yükleyebilirsiniz ve istediğiniz 3 işletim sistemi için yine boş yeriniz olur.


OpenBSD yüklemesi sırasında disklabel(8)

OpenBSD yüklemesinin en önemli safhalarından biri başlangıç etiketlerinin oluşturulmasıdır. Yükleme sırasında ayrı disk bölümleri oluşturmak için disklabel(8) kullanın. Yükleme işleminin bir parçası olarak, disklabel(8) ile kendi bağlanma noktalarınızı seçebilirsiniz. Bu değerleri yüklemenin ileri safhalarında veya yükleme sonrası değiştirebilirsiniz. Bir disk etiketi oluşturmak için sadece bir "doğru" yol olmadığı gibi birçok yanlış yol da vardır. Disk etiketi oluşturmadan önce, bölümleme ve bölüm boyutlarının ayarlanması hakkındaki bu tartışmaya bir göz atın.

disklabel(8) kullanımına bir örnek olarak, Yükleme Klavuzu’nun Disklerin kurulumu bölümüne bakınız.


Yükleme sonrası disklabel(8)’i kullanmak

Yükleme sonrası disklabel(8) kullanmanın en yaygın sebebi diskin nasıl organize edildiğini görmektir. Aşağıdaki komut size o anki disk organizasyonunu değiştirmeden gösterir.

 # disklabel wd0 <-- Veya sizin görüntülemek istediğiniz disk.
 # Inside MBR partition 3: type A6 start 63 size 29880837
 # /dev/rwd0c:
 type: ESDI
 disk: ESDI/IDE disk
 label: Maxtor 51536H2  
 flags:
 bytes/sector: 512
 sectors/track: 63
 tracks/cylinder: 16
 sectors/cylinder: 1008
 cylinders: 16383
 total sectors: 29888820
 rpm: 3600
 interleave: 1
 trackskew: 0
 cylinderskew: 0
 headswitch: 0           # mikrosaniye
 track-to-track seek: 0  # mikrosaniye
 drivedata: 0 

 16 partitions:
 #             size        offset  fstype [fsize bsize  cpg]
  a:        614817            63  4.2BSD   2048 16384  328 # Cyl     0*-   609 
  b:        409248        614880    swap                   # Cyl   610 -  1015 
  c:      29888820             0  unused      0     0      # Cyl     0 - 29651*
  d:       6291936       1024128  4.2BSD   2048 16384  328 # Cyl  1016 -  7257 
  e:        409248       7316064  4.2BSD   2048 16384  328 # Cyl  7258 -  7663 
  f:       1024128       9822960  4.2BSD   2048 16384  328 # Cyl  9745 - 10760 
  h:       2097648       7725312  4.2BSD   2048 16384  328 # Cyl  7664 -  9744 

Şu an bu dosya sisteminin nasıl sadece bir disk dilimine atanmış olduğuna dikkat ediniz. Disklabel, disk etiketlerini düzenlemek için, biri yerleşik komut sürücülü editör (bu OpenBSD’yi yüklerken kullandığınız editör) ve diğeri vi(1) gibi tam bir editör olmak üzere iki seçenek sunar. İlk seçenek size her adımda yol gösterdiği ve isteğe göre yardım sağladığı için daha "kolay" gelebilir, ama tam-ekran editör de ilki kadar kullanışlıdır.

Şimdi yukarıdaki sisteme bir disk bölümü ekleyelim.

Dikkat: Her disklabel kullandığınızda bu, disk üzerindeki tüm veriyi riske attığınız anlamına gelir. Disklabel ile düzenleme yapmadan ve disklabel’dan çıkmadan önce verilerinizi yedeklendiğinizden emin olun!

Bu işlemde disklabel(8)’da "-E" seçeneği ile aktif olan yerleşik komut sürücülü editörü kullanacağız.

# disklabel -E wd0
...
> a k
offset: [10847088] 
size: [19033812] 2g
Rounding to nearest cylinder: 4194288
FS type: [4.2BSD] 
> p m
device: /dev/rwd0c
type: ESDI
disk: ESDI/IDE disk
label: Maxtor 51536H2  
bytes/sector: 512
sectors/track: 63
tracks/cylinder: 16
sectors/cylinder: 1008
cylinders: 16383
total bytes: 14594.2M
free bytes: 7245.9M
rpm: 3600

16 partitions:
#             size        offset  fstype [fsize bsize  cpg]
  a:        300.2M          0.0M  4.2BSD   2048 16384  328 # Cyl     0*-   609 
  b:        199.8M        300.2M    swap                   # Cyl   610 -  1015 
  c:      14594.2M          0.0M  unused      0     0      # Cyl     0 - 29651*
  d:       3072.2M        500.1M  4.2BSD   2048 16384  328 # Cyl  1016 -  7257 
  e:        199.8M       3572.3M  4.2BSD   2048 16384  328 # Cyl  7258 -  7663 
  f:        500.1M       4796.4M  4.2BSD   2048 16384  328 # Cyl  9745 - 10760 
  h:       1024.2M       3772.1M  4.2BSD   2048 16384  328 # Cyl  7664 -  9744 
  k:       2048.0M       5296.4M  4.2BSD   2048 16384   16 # Cyl 10761 - 14921 
> q
Write new label?: [y] 

Bu durum için disklabel(8) disk bölüm başlangıcı için iyi bir offset değeri belirleyecek kadar centilmendi. Çoğu durum için böyle davranır; fakat eğer disk etiketlerinizde "delikler" varsa, (örneğin, bir disk bölümünü sildiyseniz veya hayatınızı mahvetmeyi seviyorsanız) elinize bir kağıt ve kalem alıp uygun offset değerini hesaplamanız gerekebilir. Disklabel(8)’in bu tip durumlarda bazı makullük testleri yaparken çok yanlış işler yapabileceğini de unutmayınız. Girdiğiniz değerlerin ne ifade ettiğini anlayın ve dikkatli olun.

Pek çok OpenBSD platformunda, "a" ile "p" arasında etiketlenmiş on altı adet disklabel bölümü vardır. (bazı "özel" sistemlerde sekiz olabilir.). Her disklabel "unused"’un "fstype" türünden ve tüm fiziksel sürücüyü kapsayan bir 'c' altbölümüne sahip olmalıdır. Eğer size ait disklabel böyle değilse, bu düzeltilmelidir ve "D" seçeneği (aşağıda) size yardımcı olabilir. Hiçbir zaman "c" bölümünü diskin ham sektörlerine erişmek dışında bir işlem için kullanmayın, "c" üzerinde dosya sistemi kurmaya çalışmayın. Önyükleme (boot) cihazında, "a" root bölümü ve "b" ise swap bölümü için ayrılmıştır, sadece önyükleme cihazı bu ayrımları yaratabilir. Diğer cihazlar "c" dışındaki diğer on beş bölümü dosya sistemi kurmak için kullanabilirler. Disklabel tavsiyeleri ve püf noktaları • Yardım Alın: Komut-sürücülü editörde, "?" tuşuna basmak size kullanabileceğiniz komutların listesini oluşturur. "M" size disklabel(8)’in man sayfalarını gösterir. • Öntanımlı duruma dönün: Birçok durumda, her şeye yeniden başlamak ve değiştirdiğiniz tüm disklabel bilgisini silmek isteyebilirsiniz. "D" komutu etiket bilgilerini hiç disklabel etiketi bulundurmayan öntanımlı duruma geri döndürür. • Bir disklabel’i tekrerlama: Bazı durumlarda, bir diskteki bölümlemeyi benzer şekilde başka bir disk üzerinde tekrar etmek istersiniz. (örneğin, farklı boyuttaki bir diskte öncekine benzer bir bölüm oluşturmak istersiniz). '-e' seçeneğinde (tam-ekran editör) disklabel(8) ile "model" sürücüden istediğiniz bölümleri kopyalayabilir, yeni disk sürücüsüne yapıştırabilir, eski sürücüdeki 'c' bölümünü silebilir ve kaydedebiliriniz. Böylece eski sürücüdeki bölümü yeni sürücüye hiçbir temel parametreyi değiştirmeden taşımış olursunuz. • (sparc/sparc64) Swap bölümünü diskin başlangıç kısmında oluşturmayın. • (i386, amd64) Birinci kaydı boş bırakın: Bazı platformlarda, disklabel(8) ve fdisk(8) için birinci mantıksal kaydı boş bırakmalısınız. Bu tavsiye bazen "bölümlemeye 63. sektörden başlayın" olarak geçer, ama bu sadece sizin donanımınızın kayıt boyutu ile aynıysa geçerlidir. Böyle bir varsayım yapmayın, her zaman doğru değildir; ama disklabel size kayıt başına düşen sektör sayısı hakkında bilgi verir. Diğer birçok platform OpenBSD bölümlerinin 0. sektörden başlamasını beklerler. • Disklabel’i olmayan cihazlar: Eğer bir cihaz OpenBSD disklabel’ına sahip olmadığı halde başka bir dosya sistemine sahipse (örneğin, üzerinde önceden FAT32 dosya sistemi bulunan bir disk), OpenBSD çekirdeği bellekte bir adet "yaratır" ve bu OpenBSD disklabel’inin diske yüklenmesinin temelini oluşturur. Fakat, eğer bir bir disklabel oluşturulup diske kaydedilir ve OpenBSD olmayan bir dosya sistemi üzerine kurulursa, disklabel otomatik olarak güncellenmez. OpenBSD’nin bu dosya sistemine ulaşmasını istiyorsanız bunu kendiniz yapmalısınız. Daha fazla bilgi aşağıdadır. • "q" vs. "x": Geçmişe dayanan sebeplerden dolayı, komut-sürücülü editörde "q" değişiklikleri kaydeder ve çıkar, "x" ise kaydetmeden programdan çıkar. Bu pek çok insanın kullandığı uygulamalarda tam ters olarak çalışır. disklabel(8) sizi değişiklikleri kaydetmeden önce uyarır, ama "x" sessiz ve hızlıca programdan çıkar.

OpenBSD'nin fdisk(8)’ni kullanmak

fdisk(8) man sayfasını incelediğinizden emin olunuz.

fdisk(8) pek çok platformda (i386, amd64, macppc, zaurus ve cats) içine OpenBSD alt bölümlerinin de eklenebileceği sistem önyükleme (boot) ROM’unun tanıdığı disk bölümleri oluşturmak için kullanılır. Diğer platformlar fdisk(8)’i kullanmaz veya ona gerek duymazlar. fdisk(8) ayrıca sistemdeki tüm işletim sistemlerini etkileyen Ana önyükleme kaydı (Master Boot Record: MBR) yönetiminde de kullanılır. Diğer işletim sistemlerindeki fdisk-benzeri programların aksine, OpenBSD fdisk’i sizin ne yaptığınızı bildiğinizi varsayar ve çoğu zaman yapmanız gerekene izin vererek size çok güçlü bir araç sağlar. Bu size yapmamanız veya yapmayı planlamadığınız şeyleri yapma izni verir, bu nedenle dikkatli kullanılmalıdır.

Normal koşullarda, disk üzerinde sadece bir OpenBSD fdisk bölümü oluşur. Bu bölüm disklabel ile OpenBSD’nin sistem alt bölümlerine ayrılır.

Fdisk ile sadece disk bölüm tablosunu görüntülemek için:

  # fdisk sd0

Bu aşağıdakine benzer bir çıktı verir:

Disk: sd0 geometry: 553/255/63 [8883945 Sectors] Offset: 0 Signature: 0xAA55

        Starting       Ending       LBA Info:
#: id    C   H  S -    C   H  S [       start:      size   ]

  • 0: A6 3 0 1 - 552 254 63 [ 48195: 8835750 ] OpenBSD
1: 12    0   1  1 -    2 254 63 [          63:       48132 ] Compaq Diag.
2: 00    0   0  0 -    0   0  0 [           0:           0 ] unused      
3: 00    0   0  0 -    0   0  0 [           0:           0 ] unused      

Bu örnekte birinci SCSI disk sürücüsünün fdisk çıktısını görüntülüyoruz. OpenBSD bölümünü (A6) ve boyutunu görebiliyoruz. * bize OpenBSD bölümünün önyüklemeli (bootable) bir bölüm olduğunu gösterir.

Bir önceki örnekte, sadece durum bilgilerini görüntüledik. Eğer disk bölüm tablosunu düzenlemek isteseydik, ne yapacaktık? Bunu yapmak için -e bayrağını kullanmak zorundayız. Bu fdisk ile etkileşim için bir komut satırı oluşturur.

  1. fdisk -e wd0

Enter 'help' for information fdisk: 1> help

       help            Command help list
       manual          Show entire OpenBSD man page for fdisk
       reinit          Re-initialize loaded MBR (to defaults)
       setpid          Set the identifier of a given table entry
       disk            Edit current drive stats
       edit            Edit given table entry
       flag            Flag given table entry as bootable
       update          Update machine code in loaded MBR
       select          Select extended partition table entry MBR
       swap            Swap two partition entries
       print           Print loaded MBR partition table
       write           Write loaded MBR to disk
       exit            Exit edit of current MBR, without saving changes
       quit            Quit edit of current MBR, saving current changes
       abort           Abort program without saving current changes

fdisk: 1>

Aşağıda -e bayrağı ile kullanabileceğiniz komutların bir dökümünü bulabilirsiniz: • help Etkileşimli düzenleme modunda fdisk’in anlayacağı komutların listesini gösterir. • reinit Seçilmiş önyükleme (boot) bloğunun bellekteki kopyasını başlangıç durumuna getirir. Bu bir "tam disk" OpenBSD bölümünün oluşturulması, önyükleme kodunun güncelleştirilmesi ve genelde, sisteminizi OpenBSD’ye hazır hale getirmenin (sadece OpenBSD) en kolay yoludur. • disk Fdisk’in sezdiği disk sürücü geometrisini gösterir. İstediğiniz takdirde düzenleme şansına sahipsiniz. • setpid Tablodaki bir disk bölümü için, bölümü tanıtıcı numarayı değiştirmenizi sağlar. Bu komut önceden oluşturulmuş bir bölümü OpenBSD’ye taşımada çok kullanışlıdır. • edit Önyükleme bloğunun belleğindeki bir tablo girişini düzenler. İsterseniz BIOS geometri modunu, isterseniz sektör offset değerini veya boyutunu düzenleyebilirsiniz. • flag İstenen bir bölümü önyüklemeli (bootable) yapar. Sadece bir giriş önyüklemeli olarak işaretlenebilir. Eğer bir uzatılmış bölümden önyükleme yapmak istiyorsanız, tablodaki girişin uzatılmış disk bölümünü önyüklemeli olarak işaretlemeniz gerekir. • update Önyükleme bloğunda seçilen bellek kopyasının makine kodlarını günceller. • select Uzatılmış bölüm tablo girişinin işaret ettiği önyükleme bloğunu seçer, önceki önyükleme bloğunun belleğine yükler. • swap İki MBR girişini takas eder, böylece MBR’leri sıralamanıza izin verir. • print Önyükleme bloğunda seçilen bellek kopyasını ve ona ait MBR tablosunu terminale yazdırır. • write Önyükleme bloğunda seçilen bellek kopyasını diske yazar. Bu işlemin yapılması için sizden doğrulama beklenir. • exit Fdisk’in o anki seviyesinden çıkar. Bu ya bir önce seçilmiş önyükleme bloğu kopyasına geri dönüş ya da eğer bir öncesi yoksa programdan tamamen çıkmaktır. • quit Fdisk’in o anki seviyesinden çıkar. Bu ya bir önce seçilmiş önyükleme bloğu kopyasına geri dönüş ya da eğer bir öncesi yoksa programdan tamamen çıkmaktır. Exit komutundan farklı olarak değişiklikleri diske kaydeder. • abort Değişiklikleri kaydetmeden programdan çıkar. fdisk tavsiyeleri ve püf noktaları • fdisk(8) bölümleri hem ham sektörler olarak hem de Silindir/Baş/Sektör formatında düzenlemenize olanak verir. Her iki seçenekte belli bir sebepten sunulur -- Bazı işlemlerin bir seçeneği kullanarak yapılması daha kolaydır, bazılarının diğer seçenekle. Kendinizi sadece bir seçenekle kısıtlamayın. • Tamamen boş bir diskte önyükleme yapabilmek için ana önyükleme kaydının (MBR) önyükleme kodlarının olması gerekir. Bunun için "reinit" ve "update" komutlarını kullanabilirsiniz. Bunu yapamıyorsanız, fdisk ile geçerli bir bölüm tablosu yazabilirsiniz ama önyüklemeli bir disk elde etmezsiniz. Nasıl oluştuğunu bilmediğiniz bir önyükleme kodunu zaten güncellemek istersiniz. • Eğer sisteminizin "bakım" veya "teşhis" bölümü varsa, onu olduğu yerde bırakmanız veya OpenBSD’den ÖNCE yüklemeniz önerilir. • Geçmişle alakalı sebeplerden, "q" değişiklikleri kaydeder ve prgramdan çıkar ama "x" kaydetmeden çıkar. Bu pek çok kişinin alıştığı uygulamalardakinin tam tersidir. Değişikleri kaydetmeden önce fdisk(8) sizi uyarmaz, bu yüzden dikkatli kullanın.

OpenBSD’ye fazladan disk eklemek

Diskinizi DÜZGÜNCE sisteminize ekledikten sonra diskin kurulumu için OpenBSD’de sadece fdisk(8) (sadece i386) ve disklabel(8) kullanmanız yeterlidir. i386 kullanıcıları fdisk ile işe başlayın. Diğer donanım mimarileri için bu kısım es geçilebilir. Aşağıdaki örnekte sisteme üçüncü bir SCSI disk sürücü ekliyoruz.

  1. fdisk -i sd2

Bu diskin "gerçek" bölüm tablosunu OpenBSD’ye özel kullanılacak şekilde hazırlar. Sonra buna bir disklabel oluşturmanız gerekir. Bu biraz kafa karıştırıcı görünebilir:

  1. disklabel -e sd2

(ekran temizlenit, sizin $EDITOR’ünüz belirir) type: SCSI ...bla... sectors/track: 63 total sectors: 6185088 ...bla... 16 partitions:

  1. size offset fstype [fsize bsize cpg]
 c:  6185088        0    unused        0     0         # (Cyl.    0 - 6135)
 d:  1405080       63    4.2BSD     1024  8192    16   # (Cyl.    0*- 1393*)
 e:  4779945  1405143    4.2BSD     1024  8192    16   # (Cyl. 1393*- 6135)

Önce 'c' bölümünü göz ardı edin, o disklabel gibi programların kullanması için her zaman oradadır! OpenBSD’nin fstype’ı 4.2BSD’dir. Toplam sektörler diskin toplam boyutuna eşittir. 3 GB diyelim. Disk üreticileri için üç GB 3000 MB’tır. Yani, 6185088/3000 işlemini yapın (bc(1) kullanın). 2061’yı elde edersiniz. Devamında, a, d, e, f, g, ... bölümlerinin boyutları için X*2061 işlemiyle o bölümün X MB boyutunu elde edersiniz. İlk yeni bölümünüzün offset değeri disklabel’de daha önce belirtilen "sektör/kayıt" ile aynı olmalıdır. Bizim için bu 63’tür. Bundan sonra her bölüm için offset değeri, her bölümün boyutu ve ofset değerinin kombinasyonu olmalıdır. ('c' bölümü hariç, çünkü onun bu denklemde bir rolu yoktur.) Veya, diskinizde sadece bir bölüm olmasını isteyebilirsiniz, tüm kapasiteyi ağ depolaması veya home dizini gibi tüm diski kullanacak bir şeye ayırabilirsiniz. Bu durumda tüm boyuttan kayıt başına sektör değerini çıkarın. 6185088-63 = 6185025. Bölümünüz:

   d:  6185025       63    4.2BSD     1024  8192    16

Eğer bunların hepsi fazlasıyla karışık geliyorsa, sadece disklabel -E kullanarak yükleme diskinizdeki bölümlemenin aynısını elde edebilirsiniz! Burada yapmanız gereken "96 megabayt" için "96M" yazmaktır. (Ya da, eğer diskiniz yeterince büyükse, 96 gigabayt için 96G!) Ancak, -E modu gerçek disk geometrisi yerine genellikle birbirinden farklı olan BIOS disk geometrisini kullanır. Bu sınırlamadan kurtulmak için, 'disk geometrisi' için 'g u' yazın. (Diğer seçenekler 'bios geometrisi' için 'g b' ve kullanıcı geometrisi için 'g u', veya basitçe, değişikliği yapan sadece disklabelden önce gelen etikettir.)

Bu kadarı fazlaydı. Ama işiniz daha bitmedi. Son olarak, newfs(8) kullanarak disk üzerinde bir dosya sistemi oluşturmanız gerekiyor.

  1. newfs sd2a

Veya OpenBSD disk numaralama şemasında sizin diskiniz hangi numaraya sahipse onu yazın. (dmesg(8) komutunun çıktısından disk numarasını öğrenebilirsiniz)

Şimdi yeni oluşturduğunuz bu bölümü nereye yapıştıracağınıza karar verin. Diyelim ki, bunu /u dizinine bağlamak istiyorsunuz. Önce /u dizinini oluşturun. Sonra bağlayın.

  1. mount /dev/sd2a /u

Son olarak, bunu /etc/fstab(5)’a ekleyin. /dev/sd2a /u ffs rw 1 1

Eğer var olan /usr/local gibi bir dizine geçmek isteseydiniz ne yapacaksınız? Bu durumda, yeni sürücüyü /mnt dizinine bağlamalı ve cpio -pdum kullanarak /usr/local dizinini /mnt dizinine kopyalamalısınız. /etc/fstab(5) dosyasını /usr/local’ın /dev/sda2 bölümü olduğunu gösterecek şekilde düzenlemelisiniz. (Yeni biçimlendirdiğiniz bölüm.) Örnek:

/dev/sd2a /usr/local ffs rw 1 1

boot -s kullanarak tek kullanıcılı modda bilgisayarınızı yeniden başlatın, var olan /usr/local dizinini /usr/local-backup’a taşıyın (Eğer şanslı hissediyorsanız silebilirsiniz.) ve boş bir /usr/local dizini oluşturun. Sisteminizi yeniden başlatın ve evet, dosyalar artık orada!

Bir dosya nasıl takas edilir?

(Not: Eğer "sanal bellek eksikliği" hataları aldığınız için dosya takas etmek istiyorsanız, önce csh’da unlimit(1) ya da sh'da ulimit(1) ile işlem başına düşen limitleri artırmayı deneyin.) Yapılabilir olsa bile, dosya takası özel yapılandırılmış bir çekirdeğe ihtiyaç duymaz. Bu sss size iki türlü de nasıl takas alanı oluşturulduğunu gösterecektir. Bir dosyayı takas etmek. Bir dosyayı takas etmek, takas alan kurulumunun en kolay ve hızlı yoludur. Dosya SoftUpdates’i aktif olan bir dosya sisteminde yer almamalıdır (Öntanımlı olarak aktif değildir). Başlangıç için, ne kadar takas alanına sahip olduğunuzu ve ne kadarını kullandığınızı swapctl(8) kullanarak öğrenebilirsiniz. Bunu aşağıdaki komutla yapabilirsiniz: $ swapctl -l Device 512-blocks Used Avail Capacity Priority swap_device 65520 8 65512 0% 0 Bu o anda takas için kullanılan cihazlar ve onların istatistiklerini gösterir. Yukarıdaki örnekte adı "swap_device" olan, sadece bir cihaz var. Bu disk üzerinde takas için önceden tanımlanmış bir alandır. (Disk etiketlerinde b olarak gösterilir.) Sizinde yukarıdaki örnekte görebileceğiniz gibi, cihaz o anda fazla kullanılmıyor. Fakat bu dokümanın amacı doğrultusunda, fazladan 32M alan gerekli olduğu varsayılacaktır. Bir dosyayı takas cihazı olarak kurmanın ilk adımı, o dosyayı oluşturmaktır. Bunun en iyi yolu dd(1) kullanmaktır. Örnek olarak, 32M boyutundaki /var/swap dosyasını oluşturacağız. $ sudo dd if=/dev/zero of=/var/swap bs=1k count=32768 32768+0 records in 32768+0 records out 33554432 bytes transferred in 20 secs (1677721 bytes/sec) Bu bir kez yapıldıktan sonra, o cihazda takas işlemini aktif etmek ile işleme devam edebiliriz. Aşağıdaki komutu kullanarak cihazda takası aktif edin: $ sudo chmod 600 /var/swap $ sudo swapctl -a /var/swap Şimdi o cihazın düzgün olarak takas cihazları listesine eklenip eklenmediğini denetleyelim. $ swapctl -l Device 512-blocks Used Avail Capacity Priority swap_device 65520 8 65512 0% 0 /var/swap 65536 0 65536 0% 0 Total 131056 8 131048 0% Dosya kurulumu ve takaslama bittiğine göre, /etc/fstab dosyasına değişikliğin her (boot) önyüklemede aktif olması için bir satır eklemeniz gerekir. Eğer satır eklenmezse, bu takas cihazını ayarlamış olmazsınız. $ cat /etc/fstab /dev/wd0a / ffs rw 1 1 /var/swap /var/swap swap sw 0 0

Vnode cihazı ile takaslama işlemi Bu takas alanı ekleme sorunu için daha kalıcı bir çözümdür. Bir dosyayı kalıcı olarak takas alanı olarak kullanmak için önce, vnd0c’si swap olan bir çekirdek derleyin. Eğer wd0a sizin root dosya sisteminiz ve wd0b önceki takas alanı ise, aşağıdaki satırı çekirdek konfigürasyonu için kullanabilirsiniz.(Eğer tereddütleriniz varsa, çekirdek derlemeyi referans alın.) config bsd root on wd0a swap on wd0b and vnd0c dumps on wd0b Bu yapıldıktan sonra, takas alanı olarak kullanılacak dosya oluşturulmalıdır. Bunu yukarıda anlatılan örneklerdeki komutlar ile yapabilirsiniz. $ sudo dd if=/dev/zero of=/var/swap bs=1k count=32768 32768+0 records in 32768+0 records out 33554432 bytes transferred in 20 secs (1677721 bytes/sec) Şimdi dosyanız oluştu, artık dosyayı /etc/fstab dosyasına eklemeniz gerekiyor. Burada oluşturduğunuz cihazın takas cihazı olarak çalışmasını sağlayan örnek satırları bulabilirsiniz. $ cat /etc/fstab /dev/wd0a / ffs rw 1 1 /dev/vnd0c none swap sw 0 0 Bu noktada, çekirdek değişikliklerinin aktif olabilmeleri için bilgisayarınız yeniden başlatılmalıdır. Bu yapıldıktan sonra artık cihazı takas alanı olarak ayarlanmaya geçebiliriz. Bu işlemi vnconfig(8) kullanarak yapacağız. $ sudo vnconfig -c -v vnd0 /var/swap vnd0: 33554432 bytes on /var/swap Son adım olarak oluşturduğumuz cihazda takaslama işlemine izin vereceğiz. Bunu yukarıdaki örneklerde olduğu gibi swapctl(8) kullanarak yapacağız. Daha sonra cihazımızın takas cihaz listesine düzgünce yazılıp yazılmadığını kontrol edeceğiz: $ sudo swapctl -a /dev/vnd0c $ swapctl -l Device 512-blocks Used Avail Capacity Priority swap_device 65520 8 65512 0% 0 /dev/vnd0c 65536 0 65536 0% 0 Total 131056 8 131048 0%

Soft Updates

14.5 - Soft Updates Soft Updates Greg Ganger ve Yale Patt tarafından ortaya konmuş bir fikire dayanan ve Kirk McKusick tarafından FreeBSD için geliştirilmiş bir projedir. SoftUpdates önbellek işlemleri sırasında dizin girişlerinin senkron olarak yazılması zorunluluğunun FFS kodundan çıkmasına izin veren kısmi bir düzen oluşturur. Böylece, diske yazılım performansında büyük bir artış görülür. Soft Updates’i bir bağlama-zaman seçeneği ile aktif etmek gerekir. Bir disk bölümünü mount(8) ile bağlarken, soft updates özelliğinin bu bölümde aktif olmasını belirtebilirsiniz. Aşağıda, sd0a olarak tek bölümü olan sistemde soft updates’i aktif etmek için örnek bir /etc/fstab(5) girişi bulacaksınız. /dev/sd0a / ffs rw,softdep 1 1 Sparc kullanıcıları için not: sun4 veya sun4c makinelerinde Soft Updates’i aktif yapmayın. Bu mimariler çok kısıtlı miktarda çekirdek belleği desteklediğinden bu özelliği kullanamazlar. Ancak, sun4m makinelerinde sorun yoktur.

OpenBSD/i386 nasıl önyüklenir (boot olur)?

OpenBSD/i386 önyükleme (boot) işlemi önemsiz değildir ve nasıl işlediğini öğrenmek ileride oluşacak sorunların çözümünde faydalı olabilir. Önyükleme işleminin dört anahtar bölümü vardır: 1. Master Boot Record (MBR): Ana önyükleme kaydı diskteki ilk fiziksel sektördür (512 bayt). Birincil disk bölüm tablosunu ve bölüm önyükleme kaydını (PBR) yüklemeyi sağlayan ufak bir programı içerir. Bazı donanımlar için, "MBR"nin diskteki ilk bloğun tamamı aksine sadece kod kısmı olarak bilindiğine dikkat ediniz. (disk bölüm tablosu dahil). "MBR’ı ilk durumuna getir." cümlesini anlamak çok önemlidir -- OpenBSD terminolojisinde, bu bazı sistemlerdeki gibi sadece kodu değil, tüm MBR sektörünün tekrar yazılmasını içerir. Bunu yapmayı nadiren isteyeceksiniz. Yerine, fdisk(8)'in "-u" komut satırı seçeneğini kullanın. ("fdisk -u wd0"). OpenBSD, bir MBR içerdiği halde onu kullanmak zorunda değilsiniz çünkü sanal olarak her MBR OpenBSD’yi önyükleyebilir. MBR hem disk bölüm tablosunu düzenlemek, hem de MBR kodu yüklemek için kullanılan fdisk(8) programı ile idare edilir. OpenBSD'nin MBR’i kendini şu mesajla bildirir:

   Using drive 0, partition 3.

Diski ve PBR’ı yüklemeye başlayacağı disk bölümünü gösterir. Açıkça görüldüğü gibi, ek olarak makinenin önyükleme için LBA çevirisi kullanabilme yeteneği olduğunu belirten bir takip periyodunu (".") gösterir. Eğer sistem LBA çevirisi yeteneği olmasaydı, yukarıdaki periyot CHS çevirisini belirten bir noktalı virgül (";") ile yer değiştirir:

   Using Drive 0, Partition 3;

OpenBSD 3.5 ile birlikte, takip periyodu veya noktalı virgülün "yeni" bir OpenBSD MBR’ının belirteci olabileceğine dikkat ediniz. 2. Partition Boot Record (PBR): PBR veya biosboot(8) (kodu taşıyan dosyanın isminden sonra) da denilen, bölüm önyükleme kaydı diskteki OpenBSD bölümünün ilk fiziksel sektörüdür. PBR, OpenBSD’nin "ilk-aşama boot yükleyicisi"’dir. PBR, MBR kodu tarafından yüklenir ve OpenBSD’nin ikinci-aşama boot yükleyicisi boot(8)’i yükleme işini yapar. MBR gibi PBR da toplam 512 baytlık çok küçük bir kod parçasıdır. Bu tam olarak dosya sistemi tanıyan bir uygulama için yeterli değildir. Bu yüzden PBR’nin /boot’u diskte konumlaması yerine, /boot’un BIOS’tan erişilebilen konumu fiziksel olarak yükleme sırasında PBR’a işlenir. PBR bu dökümanın ilerleyen kısımlarında anlatılan installboot tarafından yüklenir. PBR kendini şu mesajla bildirir:

   Loading...

Yüklemeyi her denediği sistem bloğu için bir nokta yazar. Tekrar, PBR yükleme sırasında LBA veya CHS kullandığını belirtir. Eğer CHS kullanıyorsa, mesajda bir noktalı virgül oluşur:

   Loading;... 

Eski (v3.5 öncesi) biosboot(8) şu mesajı gösterirdi: "reading boot...".

3. İkinci Aşama Boot Yükleyicisi, /boot: /boot, PBR tarafından yüklenir ve makinenin BIOS’uyla OpenBSD dosya sistemine erişme ile asıl çekirdeği konumlama ve yükleme görevlerini yapar. boot(8) ayrıca birçok seçeneği ve bilgiyi çekirdeğe aktarır. boot(8) bir etkileşimli programdır. Yüklendikten sonra /etc/boot.conf dosyasını konumlamaya çalışır, eğer dosya bulunuyorsa okur (öntanımlı yüklemede bu dosya yoktur) ve içindeki tüm komutları çalıştırır. Eğer /etc/boot.conf dosyasında aksine bir değişiklik yapılmadıysa, kullanıcıya bir komut satırı açar:

    probing: pc0 com0 com1 apm mem[636k 190M a20=on]
    disk: fd0 hd0+
    >> OpenBSD/i386 BOOT 2.10
    boot>

Kullanıcıya (öntanımlı olarak) diğer işlemleri başlatmak için 5 saniye verir, ama eğer süre sonunda bir komut verilmediyse, öntanımlı olarak işine devam eder: çekirdeği, bsd, birinci disk sürücüsünün root bölümünden yükler. İkinci-aşama boot yükleyici sizin sistem donanımınızı BIOS vasıtasıyla (OpenBSD çekirdeği daha yüklenmiş olmadığından) araştırır (inceler). Yukarıda, bunun hakkında birkaç şey gördünüz ve bunlar: o pc0 – i386 sistemi için standart klavye ve video görüntüleyicisi. o com0, com1 - İki seri port. o apm - İleri Güç Yönetimi BIOS fonksiyonları. o 636k 190M - Bulunan normal (1M’nin altında) ve uzatılmış (1M’nin üstünde) bellek miktarları. o fd0 hd0+ - Bulunan BIOS disk cihazları, bu durum için bir floppy ve ve bir disk sürücüsü. "hd0"’den sonraki '+' karakteri, BIOS’un /boot‘a bu diske LBA çevirisi ile erişilebileceğini belirtir. İlk defa yükleme yapıyorsanız, bir sabit disk sürücüsünden sonra '*' görebilirsiniz -- bu disk üzerinde geçerli bir OpenBSD etiketi olmadığını belirtir. 4. Çekirdek: /bsd: Bu önyükleme (boot) işleminin hedefi, OpenBSD çekirdeğinin RAM’e yüklenmesini ve düzgünce çalıştırılmasını sağlamaktır. Çekirdek yüklendikten sonra, OpenBSD donanıma BIOS yardımı olmadan, doğrudan ulaşır. Bu durumda, önyükleme (boot) işleminin başlangıcı şöyle olmalıdır: Using drive 0, partition 3. <- MBR Loading.... <- PBR probing: pc0 com0 com1 apm mem[636k 190M a20=on] <- /boot disk: fd0 hd0+ >> OpenBSD/i386 BOOT 2.10 boot> booting hd0a:/bsd 4464500+838332 [58+204240+181750]=0x56cfd0 entry point at 0x100120

[ using 386464 bytes of bsd ELF symbol table ] Copyright (c) 1982, 1986, 1989, 1991, 1993 <- Çekirdek

       The Regents of the University of California.  All rights reserved.

Copyright (c) 1995-2005 OpenBSD. All rights reserved. http://www.OpenBSD.org

OpenBSD 3.8 (GENERIC) #138: Sat Sep 10 15:41:37 MDT 2005

  ...

Ne gibi hatalar olabilir • Kötü/geçersiz/uyumsuz MBR: Genellikle, kullanılmış bir sabit disk sürücüsü bazı MBR kodlarını barındırır. Ama eğer disk yeniyse veya başka bir donanımdan çıkarılmışsa VE yükleme işlemi sırasında "Diskin tamamını kullan" sorusuna "Evet" cevabını vermezseniz; geçerli bir MBR’ı olmayan bir disk elde edebilirsiniz ve bu yüzden geçerli bir disk bölüm tablosu içerse bile önyükleme (boot) yapamazsınız. Sabit disk sürücünüze OpenBSD MBR’ı yüklemek için fdisk programını kullanabilirsiniz. Yükleme ortamınızdan boot olun ve komut satırı için "Shell" seçeneğini seçin:

   # fdisk -u wd0

Ayrıca, belli bir MBR’ı fdisk kullanarak diskinize yükleyebilirsiniz.

   # fdisk -u -f /usr/mdec/mbr wd0

Yukarıdaki komut, /usr/mdec/mbr dosyasını sizin sisteminizin MBR’ı yapat. Bu yukarıdaki gibi standart bir dosya olabileceği ve fdisk ile oluşturulabileceği gibi, herhangi bir MBR da olabilir. • PBR’da geçersiz /boot konumu yüklenmesi: installboot(8) bölüm önyükleme kaydını (PBR) yüklediği sırada, blok numarasını ve /boot'un inode offset değerini PBR’ın içine yazar. Bu yüzden, installboot(8) tekrar çalıştırmadan /boot’u silmek ya da değiştirmek sisteminizi önyükleme yapamaz hale getirebilir, çünkü PBR inode içerisinde işaret edilen yerde ne varsa onu yükleyecek ve büyük olasılıkla bu artık istenen ikinci-aşama boot yükleyicisi olmayacaktır! /boot BIOS çağrıları ile okunduğu için, PBR’ın eski sürümleri BIOS disk çevirilerine çok duyarlıdır. Eğer disk sürücüsünün geometrisini değiştirdiyseniz (örneğin, CHS çevirisi kullanan bir bilgisayardan alıp ve LBA çevirisi kullanan bir bilgisayara taşıdıysanız veya BIOS çeviri seçeneği değiştirdiyseniz), bu BIOS’ta değişik bir yerde görünmesine sebep olur (veriye ulaşmak için başka bir nümerik bloğa erişmek gerekir), sistemi yeniden başlatmadan önce installboot(8)’u çalıştırmış olmanız gerekir. Yeni (OpenBSD 3.5 ve sonrası için) PBR çevirideki değişimler için çok daha toleranslıdır. PBR çok küçük olduğundan, hata mesajlarının çeşidi de epey az veya şifrelidir. Büyük ihtimalle mesajlar şu şekildedir: • ERR R -- BIOS diskten bir blok okumaya çalışırken hata geri döndürmüştür. Genellikle söylediği şeyi anlatır: Diskiniz okunabilir değildir. • ERR M -- İkinci-aşama boot yükleyicisinin başlığında geçersiz bir magic(5) numarası okunmuştur. Bu genellikle okunan şey ne ise /boot olmadığını söyler ve çoğu zaman installboot(8)’un düzgün olarak çalıştırılmadığını, /boot dosyasının değiştirildiğini veya BIOS’un sizinki gibi büyük diski okuma yeteneği olmadığını belirtir. Diğer hata mesajları detaylı olarak biosboot(8) man sayfalarında işlenir. i386 sisteminin önyükleme (boot) işlemi hakkında daha fazla bilgi için • boot_i386(8) • http://www.ata-atapi.com/hiw.htm Hale Landis'in "How it Works" dökümanları

OpenBSD’de büyük boyuttaki diskler hakkındaki sorunlar nelerdir?

OpenBSD, 231-1, yani 2,147,483,647 sektöre kadar bir dosya sistemini destekler. Bir sektör 512 bayt olduğundan bu ufak rakam 1T’den az bir boyuttur. Ayrıca, *bazı* durumlarda 2T’ye kadar sorun olmayacağı ama bu garanti edilemeyeceği gibi fiziksel bir disk için 1T’lik bir boyut sınırı vardır. Tabii ki, dosya sisteminin yeteneği ve herhangi bir donanımın yeteneği farklı şeylerdir. Yeni bir 250G IDE sabit diski eski arayüzler için çalışmayacaktır (137G standartlarından önce), bazı çok eski SCSI adaptörlerinin modern sürücülerle bazı problem yaşadıkları ve bazı eski sürüm BIOS’ların bazı modern boyuttaki sabit disklerle karşılaştıklarında takıldıkları görülmüştür. Kendi donanımızın yeteneğine saygı duymalısınız elbette. Disk bölüm boyutları ve konum sınırlamaları

Maalesef, bir işletim sistemi belleğe aktarılmadan ÖNCE tüm yeteneklerini kullanmak imkansızdır. Boot işlemi, sistemin boot ROM’unu kullanmaktadır (yani sınırlamaktadır).

Bu yüzden, tüm /bsd dosyası (çekirdek) diskte ROM’un adresleme alanına uygun bir konumda bulunmalıdır. Yani, bazı eski i386 sistemlerinde root bölümünün ilk 504M’lık bölümde olması gereklidir, ama yenilerinde bu sınır 2G, 8G, 32G, 128G veya daha fazladır. Yeni sayılan ve 128G ‘tan büyük sabit diskleri destekleyen birçok bilgisayar aslında sadece ilk 128G’lık kısımdan önyükleme yapabilme gibi BIOS kısıtlamaları içerir. Bu sistemleri büyük disklerle kullanabilirsiniz, ama root bölümünün ilk 128G’lık kısımda olması gerekir.

Eski bir 486 sisteme 40G’lık bir sürücü yükleyebilir ve üzerinde kocaman bir bölüme OpenBSD kurabilirsiniz ve yukarıdaki kuralı çiğnediğinizi düşünebilirsiniz. Fakat, bu sizi çok kötü yolla avlayacak bir duruma dönüşebilir: • 40G’lık bölüme ‘/’ ‘yı kurarsınız. Bu çalışır, çünkü temel işletim sistemi ve tüm dosyalar (/bsd dahil) ilk 504M’lık kısım içindedir. • Sistemi kullanırsınız ve toplam boyutu 504M’yı geçen dosyalar ile karşılaşırsınız. • Çekirdeğinizi günceller veya kendi çekirdeğinizi oluşturur, her neyse, yeni /bsd’yi eskisinin üzerine kopyalarsınız. • Sistemi yeniden başlatırsınız. • Önyükleme işlemi sırasında "ERR M" tarzı bir hata mesajı alırsınız. Neden? Çünkü yeni /bsd dosyasını eskisinin "üzerine" kopyaladığınızda, eskisinin üzerine yeniden yazmak yerine disk üzerinde yeni bir konum belirlemiştir ve büyük ihtimalde bu BIOS’un desteklediği 504M menzili dışında bir yerdir. Boot yükleyicisi /bsd dosyasını almak işini yapamaz ve sistem takılır. OpenBSD’yi önyüklemek için, boot yükleyicileri (i386 için biosboot(8) ve /boot) ve çekirdek (/bsd) ROM’un desteklediği adresleme sınırları, kendi yetenek sınırları dahilinde olmalıdır. Güvenli oynamak için, kural basittir: tüm root disk bülümü bilgisayarın BIOS’unun (veya boot ROM’unun) adresleme alanı içinde yer almalıdır. i386 olmayan bazı sistem kullanıcıları bu kuraldan muaf olduklarını düşünebilirler, fakat birçok donanım benzer şekilde disk boyutunda önyükleme (boot) ROM’u sınırlamasına sahiptir. Limitin ne olduğunu bulmak, gerçekten zor bir iştir. Bu sizin büyük bölümler kullanmak yerine sabit diskinizi bölümlemeniz için iyi bir sebeptir. fsck(8) zaman ve bellek gereksinimleri Büyük boyutlu dosya sistemleri için diğer bir konu, çöküş veya güç kesilmesinden sonra kullanılan dosya sisteminde fsck(8) kullanmak için gereken zaman ve bellek gereksinimidir. Hiç kimse 120G bir dosya sistemini 32M’lık bir RAM ile çalıştırıp, fsck(8)’nın bir çöküşten sonra düzgün çalışmasını bekleyemez. Kabaca bir tavsiye olarak, fsck’nin diskte düzgünce çalışması için sistemin her 1G dosya sistemi için 1M’lık belleğe sahip olması gerekir. Sürücüde fsck’nın çalışması için gereken zaman dosya sistemi genişledikçe de problem olabilir.

Önyükleyici öbeklerinin kurulması –i386 özel

MS-DOS un eski versiyonları sadece 1024 silindir veya altındaki disk geometrileri ile ilgili idi. Hemen hemen 1024 silindirden daha büyük bütün modern bütün diskler SCSI BIOS chipler (SCSI kontrol kartlarla) ve IDE BIOS (PC BIOS'ların kısmı destek verdiği) MS-DOS'un yeterliliğine uyacak bir disk geometrisine "dönüştürmek" için bir seçim şansları vardı(kimi zaman ön tanımlı gelirdi). Aslında bütün BIOS chipler geometriyi aynı yöntem ile değiştirmezler. Eğer BIOS’unuzu yenisi değişik bir disk geometri kullanan bir BIOS ile değiştirirseniz(yeni bir anakart veya yeni bir SCSI kontroller kart ile) ikinci aşama ön yükleyici yükleyemeyeceksinizdir(ve böylece kernel(çekirdek) de yüklenmeyecektir). birinci aşama önyükleyiciler orijinal deyimi ile "dönüştürülmüş" geometri yükleyici(boot) ve/veya bloklar içeren listelerle oluşundan kaynaklanır.

Eğer bir IDE disk kullanıyorsanız, BIOS ayarlarınızı değiştirdiğinizde, haberiniz dahi olmadan taşıma bile yapabilirsiniz (ki pek çok IDE BIOS' da 3 değişik taşıma seçeneği vardır). Normal açılış yapabilmek üzere önyükleyici bloklarını sabitlemek için sadece önyükleyici disketini yerleştirin(veya önyüklenebilir CD-ROM) ve öncelikle hard disk sürücünden başlatmak için(disket sürücüden değil) önyükleme komut satırında "b hd0a:/bsd" yazın. Şimdi yeni disk geometrisini görebilmek için birincil durum önyükleyiciyi güncellemeniz gerekiyor(ki buna göre önyükleyici bloklarını bu duruma göre yeniden yazacaktır).

Bizim örneğimizde önyükleyici diskiniz sd0 olarak ifade edilecektir.(ancak IDE icin wd0 vs olmalı)

  1. cd /usr/mdec; ./installboot /boot biosboot sd0

Eğer önyükleyici blok'un en yeni sürümü gerekiyor ise, bu derlemeleri kendi başınıza yapmanız gerekecektir. Basitçe yapabilmek için:

  1. cd /sys/arch/i386/stand/
  2. make && make install
  3. cd /usr/mdec; cp ./boot /boot
  4. ./installboot /boot biosboot sd0 (yada hard disk sürücünüz her ne ise)

Felakete hazırlık: Teyp yedek alma ve yedekten geri yükleme

Giriş:

Eğer üretim sunucusunda çalışıyorsanız, disk sürücülerinizden birinin arızalanması durumuna hazırlık için bir yedeğinizin olması tavsiye edilir.

Bir bilgiler size OPENBSD tarafından sağlanan standart dump(8)/restore(8) kullanımlarında yol göstericilik yapacaktır. "Amanda" adı verilen çok daha gelişmiş yedekleme işlemi packages içerisinden tek bir teyp ile birden fazla sunucuyu yedekleme olanağı tanır. Pek çok ortamda dump(8)/restore(8) yeterlidir. Ancak eğer pek çok makinenin yedeğini almanız gerekiyor ise Amanda kayda değer bir araştırma olacaktır.


Bu dokümanda, yapılandırmada kullanılacak örnek aygıtlar SCSI diskler ve teyp olacaktır. Kötü disk(bad block) bloklarını kullanmaları nedeni ile üretim ortamlarında IDE disk yerine SCSI disk tavsiye edilmektedir. Eğer IDE disk veya SCSI olmayan tiplerdeki typeler kullanmakta iseniz bu bilgileri işinize yaramaz değildir sizin aygıt biraz farklıdır. Örneğin SCSI da sd0 olan disk IDE tabanlı sistemlerde dw0 olmalı.


Teyp’e yedek alma:

Teyp’e yedek alma işlemi dosya sisteminin bağlandığı yer bilgilerine sahip olmanızı gerektirir. Kabuk komut sisteminde (shell promt) mount(8) komutu ile dosya sisteminizin nereye bağlandığını tespit edebilirsiniz. Aşağıdaki gibi bir çıktı elde edersiniz.

  1. mount

/dev/sd0a on / type ffs (local)

/dev/sd0h on /usr type ffs (local)


Bu örnekte the root (/) dosya sistem fiziksel olarak SCSI de disk, 0 bölüt (partition) olarak ifade edilen sd0a yerleşiktir. /usr dosya sistemi SCSI sabit disk 0, bölüt h olan sd0h da yerleşiktir.

Bir başka çok daha gelişmiş bağlama tablosu şöyle olmalı:

  1. mount

/dev/sd0a on / type ffs (local)

/dev/sd0d on /var type ffs (local)

/dev/sd0e on /home type ffs (local)

/dev/sd0h on /usr type ffs (local)


Bu çok daha gelişmiş örnekte, root(/) dosya sistemi fiziksel olarak sd0a da yerleşiktir. /var dosya sistemi sd0d de yerleşiktir, /home dosya sistemi sd0e ve son olarak /usr sd0h da yerleşiktir.

Bu çok gelişmiş örnekte, root(/) dosya sistemi fiziksel olarak sd0a da yerleşiktir. /var dosya sistemi sd0d de, /home dosya sistemi sd0e de ve son olarak /usr sd0h da yerleşiktir. Makinenizin yedeğini almak için, sabitlenmiş her bir disk bölütlerinin isimlerinin dökümlerinin kaydedilmesine ihtiyacınız olacaktır.


  1. /sbin/dump -0au -f /dev/nrst0 /dev/rsd0a
  2. /sbin/dump -0au -f /dev/nrst0 /dev/rsd0h
  3. mt -f /dev/rst0 rewind

Çok gelişmiş bağlama tablosu aşağıdaki örnekteki gibidir.

  1. /sbin/dump -0au -f /dev/nrst0 /dev/rsd0a
  2. /sbin/dump -0au -f /dev/nrst0 /dev/rsd0d
  3. /sbin/dump -0au -f /dev/nrst0 /dev/rsd0e
  4. /sbin/dump -0au -f /dev/nrst0 /dev/rsd0h
  5. mt -f /dev/rst0 rewind

You can review the dump(8) man page to learn exactly what each command line switch does. Here is a brief description of the parameters used above:

Her bir komut satırı ne işe yarar tam anlamı ile öğreninceye dek dump(8) el kitaplarını(manuellerini) yeninden gözden geçirebilirsiniz. Yukarıda kullanılan parametreleri kısa tanımlar buradadır.

• 0 - 0 düzey dump hemen her şeyin yedeğini alır. • a – type ortam (bant/kaset) uzunluğunu otomatik olarak belirlemeye çalışır. • u – Son yedek kayıt bilgilerinin tutulduğu /etc/dumpdates dosyasını güncellerler • f – Hangi teyp cihazı kullanıldı onu belirler ( bu durumda /dev/nrst0 )

Son olarak hangi bölütün yedeği alınacak (/dev/rsd0a, etc) mt(1) komutu sürücüyü başa sarmak için kullanılır. Daha fazla seçenek için (mesela eject komutu) mt el kitaplarını (manuel) tekrardan gözden geçirin.

Eğer teyp sürücü isminden emin değilseniz yerini saptamak için dmesg komutunu kullanın.

st0 at scsibus0 targ 5 lun 0: <ARCHIVE, Python 28388-XXX, 5.28>


Yedek alırken erişim yaptığınız aygıt adı dmesg de görüldüğü gibi "st0" yerine "nrst0" olmasına dikkat edin. nrst0 yerine st0’ a erişim yapınca, fiziksel olarak aynı teyp cihazına erişim yapmış olursunuz fakat iş bitiminde teypin başa sarmadığını görünce teyp’e ham (raw) moda erişim yaparsınız. Çoklu sistemi tek bir teypde yedekleyebilmek için, geri sarmayan (non-rewind) cihaz kullandığınızdan emin olun. Eğer çoklu sistem yedeği almak için bir geri saran (rewind) cihaz (rst0) kullanırsanız, bir sonraki yedek için önceki yedeğin üstüne yazmayı deneyecektir. Dump el kitaplarında değişik sürücü araçlarını için çok daha ayrıntılı tanımlar bulabilirsiniz.

Eğer “backup” ismi verilen küçük bir betik yazmak isterseniz, böyle bir şey olabilir. echo " Starting Full Backup..." /sbin/dump -0au -f /dev/nrst0 /dev/rsd0a /sbin/dump -0au -f /dev/nrst0 /dev/rsd0d /sbin/dump -0au -f /dev/nrst0 /dev/rsd0e /sbin/dump -0au -f /dev/nrst0 /dev/rsd0h echo echo -n " Rewinding Drive, Please wait..." mt -f /dev/rst0 rewind echo "Done." echo

Eğer programlanmış gece yedeği tercih edilirse cron(8) sizin yedek betiğinizi düzenli ve otomatik olarak çalıştıracaktır. Her bir dosya sisteminin ne kadar büyük olduğu bilgilerine erişim konusunda(yayımlanan makalede=on a scrap of paper) makale yardımcı olacaktır. Bölütlerin ne kadar alan kullandıkları bilgisini "df -h" komutu ile öğrenebilirsiniz. Sürücü arızalandığında yeni bir sürücüde bölüt tablolarını yeniden yaratmakta yardımcı olacaktır.

Verilerin geri alınması (restore) parçalanmayı(fragmentation) azaltmaya yardımcı olacaktır. Tüm Verilerinizi yedeklediğinizden emin olun, yedek almanın en iyi yolu sistemi tek kullanıcılı moda açmaktır. Dosya sisteminin bağlanmaya değil yedeklenmeye gereksinimi vardır. Tek kullanıcılı modda açılış yaptıktan sonra veya dumpdate i yazarken yedeğiniz hata verdiğinde root(/) dizinini r/w modda bağlamayı unutmayın. Tek kullanıcı modunda iken boot> komut satırında "bsd -s" yazın.


Dump type içeriğinin görülmesi: Sisteminizin yedeğini ilk defa aldığınızda teypi test etmek ve verilerin yedeklerde olduğundan emin olmak iyi fikir. Dump teypdeki dosyaların kataloğunu aşağıdaki örneği kullanarak gözden geçirebilirsiniz.

  1. /sbin/restore -tvs 1 -f /dev/rst0


This will cause a list of files that exist on the 1st partition of the dump tape to be listed. Following along from the above examples, 1 would be your root (/) file system.

Bu, komut dump teypde listelenen ilk bölütde yer alan dosyaların listelenmesini sağlar. Yukarıdaki örnekte olduğu gibi 1 root(/) dosya sistemi olmalı. Teypin ikinci bölütte yerleşik olanların çıktı olarak listelenmesi için benzeri bir komut kullanmalısınız:

  1. /sbin/restore -tvs 2 -f /dev/rst0 > /home/me/list.txt

Şayet çok basit bir bağlama tablonuz var ise. 2 /usr olmalıdır. Eğer sizinki çok daha gelişmiş bir bağlama tablosu ise 2 /var olmalı ya da diğer fs. Sıra numarası teypdeki yazılı sistemdeki sıra ile kıyaslanır.

Teypden verileri geri almak: Eğer sabit diskiniz tamamı ile arızalandı ise aşağıda listelenen örnek senaryolar sizin için çok yararlı olacaktır. Birinci olayda teypden sadece bir dosyayı geri almak istediğinizde, etkileşimli açıklama notlarına dikkat ederek, geri alma el kitabını dikkatlice tekrar gözden geçirin. Eğer doğru yerleştirilmiş uygun düzenlenmiş bir diskiniz varsa, verilerinizi teybe çok hızlı yedekleyebilirsiniz. OpenBSD standart yükleme/kurma disketi, tıpkı bölütler için gereken ikililer (binaries) gibi, geri alma (restore) işlemlerini içerir ve yeni sürücünüzü yüklenebilir yapın. Pek çok durumda bu disket ve en güncel dump teyip, yedek almak ve çalışmak için ihtiyacınız olacak tek şeydir. Sorunlu disk sürücüsünü fiziki olarak yerleştirdikten sonra, aşağıdaki adımları takiben verileri geri almak basit aşamadır.

• OpenBSD yükleme/önyükleme disketini ile önyükleme yapın. Menü kısmından Shell(Kabuk) u seçin. Yazma korumalı(write-protected) en son yedeğin bulunduğu teyp kasedi sürücüye yerleştirin. • fdisk(8) komutunu kullanarak yeni yüklenen sürücüde birincil OpenBSD kısmını yaratın Örnek:

  1. fdisk -e sd0

daha fazla bilgi için fdisk FAQ (fdisk SSS) • fdisk ile yarattığınız birincil OpenBSD bölütünde OpenBSD bölüt tablosunu disk isimlenme komutları ile yeninde yaratın. Örnek:

  1. disklabel -E sd0

(swap ı unutmayın, daha fazla bilgi için disklabel FAQ (disklabel SSS) • newfs komutu yukarıdaki adımda yarattığınız her bölütteki temiz dosya sistemini yapılandırır. Örnek:

  1. newfs /dev/rsd0a
  2. newfs /dev/rsd0h

• Yeni kurduğunuz root (/) dosya sistemini /mnt a bağlayın. Örnek: • # mount /dev/sd0a /mnt • Geri alma işlemini başlatmak için bağlanmış root dosya sistemine değiştirin Örnek:

  1. cd /mnt
  2. restore -rs 1 -f /dev/rst0

• Yeni diskinizin önyüklenebilir olmasını isteyeceksiniz, diskinizdeki yeni MBR yi yazmak için aşağıdaki komutları kullanın. Örnek:

  1. fdisk -i sd0

• Ek olarak, sürücüye yeni MBR yazarak, önyükleyebilmesi(boot) için önyükleyici bloğunu yüklemeye ihtiyacınız olacak. Aşağıdaki kısa bir örnektir.

  1. cp /usr/mdec/boot /mnt/boot
  2. /usr/mdec/installboot -v /mnt/boot /usr/mdec/biosboot sd0

• Sabit diskinizdeki yeni root dosya sisteminiz yeterince hazır olmalı, önyükleyebilirsiniz. İşletim sisteminiz henüz tamamlanmamış olduğu için tek kullanıcılı modda açarak önyükleyici yedeğini aldığınızdan emin olun. Kabuk komut satırında sistemi bağlanma durumunda çıkarıp(unmount) kapatmak için aşağıdaki komutlar ise yarayacaktır.

  1. umount /mnt
  2. halt

• Sürücüden yükleme/önyükleme disketini çıkarın ve sisteminizi yeninden açın. OpenBSD boot> satırında aşağıdaki komut ile sonuçlanır: boot> bsd -s

bsd -s sadece root(/) dosya sisteminin gerektiği tek kullanıcılı modda başlatılırken çekirdeğin (kernel) başlatılmasına neden olacaktır. • Yukarıdaki tüm adımları doğru yaptığınızı farz edersek ve hiçbir hata mesajı almadan kabuk yolunu (shell path) seçin veya enter tuşuna basın uyarısı ile sonuna dek gelmiş olmalısınız. sh a geçmek için enterlayın. Sonra read only durumda olan root’ u r/w(read-write) modda yeniden bağlamak(mount) isteyeceksiniz. Aşağıdaki komu ile yapabilirsiniz.

  1. mount -u -w /

• Bir çırpıda r/w modda yeninden bağladınız diğer dosya sistemlerinizin yedeğini alarak devam edebilirsiniz. Örnek: (basit bağlama tablosu)

  1. mount /dev/sd0h /usr; cd /usr; restore -rs 2 -f /dev/rst0

(gelişmiş bağlama dosyası)

  1. mount /dev/sd0d /var; cd /var; restore -rs 2 -f /dev/rst0
  2. mount /dev/sd0e /home; cd /home; restore -rs 3 -f /dev/rst0
  3. mount /dev/sd0h /usr; cd /usr; restore -rs 4 -f /dev/rst0

dump sette özetlenmiş nesnelerin isimlerini görmek için sadece rsf yerine "restore rvsf" komutunu kullanabilirsiniz. • Sonuç olarak diskteki diğer dosya sisteminizin yedeklerini almak için çoklu kullanıcı modda (multiuser mod) yeninden başlatın. Eğer sistemdeki her şey planladığınız gibi gitti ise sistem en son yedeğinizdeki gibi eski haline gelecektir.

OpenBSD’ de disk imajın bağlanması

OpenBSD’de imaj diski (dd ile yaratılan ISO imaj disk vs) bağlamak için vnd(4) sürücüyü konfigüre etmelisiniz. Örneğin, /tmp/ISO.image, da bulunan bir ISO imaj diske sahipseniz Aşağıdaki adımdaki gibi imaj diski bağlayabilirsiniz.

  1. vnconfig svnd0 /tmp/ISO.image
  2. mount -t cd9660 /dev/svnd0c /mnt

CD yada DVD lerdeki ISO-9660 imaj olduğuna dikkat edin, bağladığınızda cd9660 tipini tanımlamalısınız. . Tipinin vs nin önemli olmadığı bir gerçektir.. Linux disk imaji bağladığınızda ext2fs yazın. İmaji bağlantısız yapmak için aşağıdaki komutu kullanın

  1. umount /mnt
  2. vnconfig -u svnd0

Daha fazla bilgi için vnconfig(8) el kitabına bakınız.

Yardım! IDE DMA! İle sürekli hata alıyorum

pciide(4) tarafından desteklenen DMA IDE transfer pek çok donanım kombinasyonunda güvenilmez sonuçlar vermektedir. Yakın zamanlara kadar IDE sürücüler ile DMA transferi yaptığını iddia eden pek çok "mainstream" işletim sistemleri güvenilmez donanımlardan dolayı aktif olarak bu ortamlarda özellikleri öntanımlı çalışmamıştı. Şimdi bu makinelerin pek çoğu OpenBSD kullanıyor. OpenBSD düzenlenebilir en yüksek DMA modu kullanmaya hırsla girişti. Bu, kimi düzenlemelerde(configurasyon), eski yongasetlerinden (chipset), eski sürücüler ve/veya kablolardaki gürültülerden dolayı, veri iletimin bozulmasına neden olabilirr. Çok şükür ki Ultra-DMA modlar verilerdeki bozulmaları bulmak için CRC ile veri iletimi yapar. Ultra-DMA CRC bozulursa(fail) OpenBSD, yeninden deneyin hata mesajı verecektir.

wd2a: aborted command, interface CRC error reading fsbn 64 of 64-79 (wd2 bn 127; cn 0 tn 2 sn 1), retrying

Birkaç defa başarısız olduktan sonra, Ultra-DMA modda OpenBSD çöküyomuş gibi yavaşlayacaktır.(daha güvenilir olmasını umuyoruz). Ultra-DMA mode 0 a vurduğunda, daha sonra sürücü PIO mode doğru düşecektir. Sık yaşanan UDMA hataları kaliteyi düşürür veya kablolara zarar verir. Kablo sorunları genellikle ilk şüphe olmalıdır. Çok sayıda DMA hatası alırsanız ya da DMA performansında beklenmeyen düşüşler olursa, hard disk ile aynı kanala CD-ROM koymak pek de iyi bir fikir değildir. Yerleştirilen kablo sorunu çözmezse OpenBSD başarı ile kapanmazsa, ya da işlem makinenizin kilitlenmesine, ya da konsolda ve loglarda aşırı yüklü hata mesajı oluşmasına sebep olursa Sisteminiz ön yüklemeli olarak düşük düzey DMA veya UDMA ile başlatmaya yöneltmek isteyebilirsiniz. Bu durum wd(4) araçlarda bayrakları değiştirmek için UKC yada config(8) kullanınca gerçekleşir

OpenBSD için RAID seçeneği

RAID (Redundant Array of Inexpensive Disks) çoklu sürücülerde, kullanımında tek sürücüye göre daha iyi performans, kapasite ve/veya atıl kalma fırsatı verir. RAID’lerin riskleri ve yararları konusunda süren tartışmalar bu makalenin kapsamında değildir.

Burada iki önemli nokta var:

RAID’in yedek ile yapacağı bir şey yoktur. Tek başına RAID arızalı süreci yok sayamayacaktır.

Bu bilgi sizin için yeni ise RAID in keşfi açısında hiç de iyi bir nokta değildir.

Yazımım Seçenekleri OpenBSD’de, yazılım temelli RAIDFrame vardır. Aşağıdaki yerlerde doküman bulabilirsiniz.

• FAQ 11, RAID • RAIDframe Homepage • man page for raidctl(8) • man page for raid(4) OpenBSD’de RAIDframe otokonfigurasyon "Autoconfiguration" seçeneğini kullanarak root bölütünü doğrudan ikizleme(mirroring) yapılabilir.

OpenBSD 3.7-stable ve sonrası ccd(4) sürücüler gibi ikizleme özelliği taşımaktadır. Bu sistem GENERIC kernel(çekirdek) içerinde yapılandırılır ve bsd.rd çekirdeği böylece çok daha kolay kullanılabilir,sıraların yeninden yapılanmasında sınırlamaları vardır. Bakınız:

• ccd(4) man page • ccdconfig(8) man page

Donanım Seçenekleri Pek çok OpenBSD platforms pek çok RAID donanım için destek içermektedir. Bu seçenek patformlara göre değişir, uygun donanım desteğini içeren sayfaları görün (listed here). Pek çok platform için uygun olan diğer seçenek. Pek çok sürücü tek IDE veya SCSI sürücü gibi davranır ve standart IDE veya SCSI adaptörler ile çalışırlar. Bu aygıtlar IDE veya SCSI destekleyen herhangi bir donanım platformunda sanal çalışabilirler Bu ürünlerin üreticilerinden bazıları: • Arco • Accusys • Maxtronic • Infortrend (Not: bunlar sadece OpenBSD kullanıcılarılarının kullandıklarını rapor ettikleri ürünlerdir-- bu ne bir imza ne de etraflı bir liste değildir)


Non-Options Mail listelerinde sık sorulan sorulardan biri “düşük maliyetli IDE veya SATA RAID kontrol birimleri (örneğin Highpoint, Promise or Adaptec HostRAID yonga) destekleniyor mu? “ Cevap “Hayır” Bu kartlar ve yongalar gerçek RAID kontrol birim donanımları değildir, fakat daha çok yazılım RAID’in önyükleyicisinin desteklediği BIOS tur. Zaten OpenBSD’nin donanımdan bağımsız yöntemler ile yazılım destekli RAID gibi, OpenBSD geliştiriciler arasında bu kartlar için özel bir destek vermeye çok da istek yok. Üzerine yerleşik(on-board) SATA yada IDE “RAID” kontrol birimleri, bu yazılım tabalı biçemlerdir(style) ve nerede ise tamamı IDE sürücüyü(pciide(4) kullanarak tipik SATA veya IDE kontrol birimleri gibi iyi çalışır. Fakat OpenBSD’deki donanım RAID sistemleri gibi çalışmayacaklardır.

Niçin df(1) bana diskimin 100% ünü kullandığımı söyler?

İnsanlar df(1) ile görüldüğü gibi bölütün 100% ünün kullanıldığını görünce veya eksi(negative) disk alanı bulunca şaşırıyorlar.

newfs(8), ile bölüt yaratıldığında uygun alanın birazı normal kullanıcılara rezerve edilir. Bu durum kazara diski doldurduğunuzda hatanın sınırı olmasını sağlar, ve disk parçalanmasını minimumda tutar. Bu öntanımlı olarak disk kapasitesinin 5% idir, böylece kök (root) kullanıcısı dikkatsizce diski doldurmuş ise, siz kapasitenin 105% inin kullanıldığını görebilirsiniz.

5% değer sizin için uygun değilse tunefs(8) komutu ile değiştirebilirsiniz.

Disk etiketinin(disk label) silinişinden sonra bölütlerin geri kurtarılması

Eğer bölüt tablosuna zarar verdiyseniz geri kurtarmak için pek çok değişik yöntem vardır. Birincisi, paniklemeyin. Genelde hemen durumda panikliyorsunuz, Sadece, ahmakça bir şey yapmayın. Paniklediğinizde makineden uzaklaşın. Ardından sakinleşin ve aşağıdaki adımlar size yardımcı olamıyorsa durumu kabul edin. Günlük sistem bakımının bir parçası olarak her disk için disk etiketinin kopyası /var/backup altına saklanır. Hala var bölütüne sahip olduğunuzu varsayalım, çıktıları basitçe okuyabilir ve yeniden disk etiketine yerleştirebilirsiniz. Sonuçta bu bölütte sizin fazla göreceğiniz bir şey yok, sadece iki seçenek vardır. Diski tamamen bağlar böylece diski görebilirsiniz ya da tamamen bağlar böylece verileri kaybersiniz. Duruma bağlı olarak biri diğerine göre tercih edilebilir(diskiniz ölürken öncelikle verilerinizi istersiniz, özensiz, dikkatsiz parmak hareketleri ile verilerinize değil de sadece etiketlerinize sahip olabilirsiniz.) İlk araç scan_ffs(8) (alt çizgiye dikkat edin scanffs değildir.) scan_ffs(8) diski gözden geçirir ve bölütleri bulmaya çalışır ve bulduğu bilgileri bize iletir. Disk etiketinizi yeniden yaratmak için bu bilgileri kullanabilirsiniz. Sadece /var bölütünü geri istiyorsanız, /var bölütünü yeniden yaratabilirsiniz, ardından etiket bilgilerinize ulaşır yedeklerden kurtarırsınız artık dinlenme zamanıdır. disklabel(8) çekirdeğin anladığı disk bölütünü ve bu bölüt bilgilerini diske yazma işlemini güncelleyecektir. Hatta, bundan dolayı, diskteki disk etiketleri ulaşılamaz ise dahi sistemi yeniden başlatıncaya kadar mount(8) komutunu kullanabilirsiniz.

FFS(Berkeley Fast File System (FFS) ) den başka dosya sistemindeki veriye erişebilirmiyim?

Evet diğer desteklenen dosya sistemlerinde: ext2 (Linux), ISO9660 ve UDF (CD-ROM, DVD media) FAT (MS-DOS ve Windows), NFS, NTFS (Windows), AmigaDOS. Bunlardan kimileri sınırlıdır, örneğin: sadece okuma(read-only) destekler. Dikkat FreeBSD nin UFS2 dosya sistemi desteklemez.

Biz burada genel bir bakış olarak OpenBSD de bu dosya sistemlerinden biri nasıl çalışır onu sunacağız. Kullanabileceğiniz dosya sistemi bağlanmış(mount) olmalıdır. Daha detay ve bağlama seçenekleri ve bağlayacağınız dosya sistemi için bağlama komutları için lütfen mount(8) elkitabına başvurunuz. Örneğin: mount_msdos, mount_ext2fs, …. İlk olarak, dosya sisteminiz hangi araçta bulunmakta onu bilmelisiniz. Bu sizin ilk sabit diskinizi basitleştirir, wd0 veya sd0, fakat bu daha az belirginleştirebilir. Sisteminizdeki tüm tanımlanmış ve ayarlanmış araçlar dmesg(1) komutu ile ekran çıktısında ifade edilirler: araç ismi ve alt satırda tanımı bulunur. Örneğin benim birincil CD-ROM sürücüm aşağıdaki gibi tanımlanır:

cd0 at scsibus0 targ 0 lun 0: <COMPAQ, DVD-ROM LTD163, GQH3> SCSI0 5/cdrom removable

var olan disk kısımlarının çok daha kısa listesi için sysctl(8) komutunu kullanabilirsiniz.

  1. sysctl hw.disknames

Komutu sisteminizdeki bilinen tüm diskleri gösterecektir. Örneğin:

hw.disknames=cd0,cd1,wd0,fd0,cd2 Bu noktada aygıtınızda hangi bölütler var ve dosya sisteminde yerleşik geçerli bölütler hangisi bunları bulup çıkarmak zamanıdır. Bundan dolayı disklabel(8) komutu ile aygıtı gözden geçirelim. Disklabel maksimum 16 adet bölüt listesi içerir. Her zaman diskin tamamnı c bölütü olarak gösterilir. a-b ve d-p bölütleri OpenBSD tarafından kullanılır. i-p bölütleri diğer işletim sistemlerinde otomatik olarak dosya sistemine adanabilirler. Size benim diskimdeki değişik dosya sistemleri sayısını içeren disk etiketini göstereceğim. NOT: Bir diğer işletim sistemi ardından diske OpenBSD yüklendi ve yükleme esnasında disk etiketi OpenBSD nin özgün bölütlerini içeriyordu. OpenBSD üzerine başka bir işletim sistemi yüklense idi yine de ekleme veya uyarlama ihtiyacı hissedecektiniz. Bu durum this subsection da anlatılacaktır.

  1. disklabel wd0
  1. using MBR partition 2: type A6 off 20338290 (0x1365672) size 29318625 (0x1bf5de1)
  2. /dev/rwd0c:

type: ESDI disk: ESDI/IDE disk label: ST340016A flags: bytes/sector: 512 sectors/track: 63 tracks/cylinder: 16 sectors/cylinder: 1008 cylinders: 16383 total sectors: 78165360 rpm: 3600 interleave: 1 trackskew: 0 cylinderskew: 0 headswitch: 0 # microseconds track-to-track seek: 0 # microseconds drivedata: 0

16 partitions:

  1. size offset fstype [fsize bsize cpg]
 a:        408366      20338290  4.2BSD   2048 16384   16 # Cyl 20176*- 20581 
 b:       1638000      20746656    swap                   # Cyl 20582 - 22206 
 c:      78165360             0  unused      0     0      # Cyl     0 - 77544 
 d:       4194288      22384656  4.2BSD   2048 16384   16 # Cyl 22207 - 26367 
 e:        409248      26578944  4.2BSD   2048 16384   16 # Cyl 26368 - 26773 
 f:      10486224      26988192  4.2BSD   2048 16384   16 # Cyl 26774 - 37176 
 g:      12182499      37474416  4.2BSD   2048 16384   16 # Cyl 37177 - 49262*
 i:         64197            63 unknown                   # Cyl     0*-    63*
 j:      20274030         64260 unknown                   # Cyl    63*- 20176*
 k:       1975932      49656978   MSDOS                   # Cyl 49262*- 51223*
 l:       3919797      51632973 unknown                   # Cyl 51223*- 55111*
 m:       2939832      55552833  ext2fs                   # Cyl 55111*- 58028*
 n:       5879727      58492728  ext2fs                   # Cyl 58028*- 63861*
 o:      13783707      64372518  ext2fs                   # Cyl 63861*- 77535*


Yukarıdaki çıktıda görüleceği üzere ilk olarak OpenBSD bölütü listelendi. Ardıdan ext2 bölütleri ve MSDOS bölütleri birkaç “unknown” bölütleri gibi. i386 larda ve amd64 sistemlerde fdisk(8) kullanımı ile genellikle budan çok daha fazlasını elde edebilirsiniz. Meraklı okuyucular için satıcılar tarafından yaratılan bölüt i bir bakım bölütüdür, l bölütü ise NTFS bölütüdür ve l bölütü Linux swap bölütüdür.

Önce hangi bölütü kullanacağınızı belirlediniz, son adıma geçebilirsiniz: içinde bulunduğu dosya sistemini bağladınız. Çoğu dosya sistemleri GENERIC çekirdekte desteklenir: sadece çekirdek yapılandırma dosyasına bir göz attığınızda, /usr/src/sys/arch/<arch>/conf dizininde görürsünüz. Bununla beraber kimileri NTFS desteği deneyseldir ve bundan dolayı GENERIC çekirdekte yer almaz. GENERIC tarafından desteklenmeyen bir dosya sistemini kullanmak istediğinizde, build a custom kernel ‘ -size özel çekirdek derlemeye- ye ihtiyacınız olacaktır. Yukarıda bahsettiğimiz bilgilere sahip olduğunuzda, dosya sistemini bağlamanın zamanıdır. Geçerli dosya sistemini bağlayacak, bağlama noktası olarak kullanacağımız /mnt/otherfs dizininin var olduğunu farz edelim. Örnekte m bölütü:

  1. mount -t ext2fs /dev/wd0m /mnt/otherfs

Düzenli olarak bu dosya sistemini kullanmayı planlıyorsanız /etc/fstab içerisine yazacağınız bir satır ardından dosyayı saklayabilirsiniz Aşağıdaki örnekteki gibi

/dev/wd0m /mnt/otherfs ext2fs rw,noauto,nodev,nosuid 0 0

Beşinci ve altıncı alandaki 0 değerilerine dikkat edin. Bu fsck kullanarak dosya sisteminin temizlenmesi (dump) veya kontrolüne gerek duymadığımız anlamına gelir. Genellikle, yapmak istediğiniz her şey özgün işletim sisteminin dosya sistemi ile birleştirilerek ele alınmıştır.

14.16.1 – Bölütler benim disk etiketimde yok! Ne yapmam gerek? Sisteminize yabancı bir dosya sistemi yüklediğinizde (yeni bir işletim sistemi yüklendiğinde sıklıkla karşılaşılır) OpenBSD yükledikten sonra bir disk etiketi zaten var olacaktır, yeni yabacı dosya sistemi ile otomatik yenilenmeyecektir. Onları kullanmak istediğinizde disklabel(8) kullanarak el ile (manuel) bunları eklemek veya uyarlamaya ihtiyaç duyacaksınız.

Örnekte olduğu gibi benim var olan ext2 bölütlerimi Linux’un fdisk programını kullanarak uyarladım. ‘o’ bölütünün büyüklüğünü 1 GB’a yükselttim(yukarıdaki disk etiket çıktısına bakınız). Başlangıç noktası(offset: 64372518) ve büyüklüğünden (13783707) kolaylıkla tanımlayabiliriz. Bu değerlerin sektör sayıları olduğuna dikkat ediniz ve bu bilgilerin okunması için en güvenilir ve kesin yol sektör sayısı kullanmaktır (megabytes veya başka bir ölçü değildir). Değişimden önce, bölüt OpenBSD’ nin fdisk(8) kullanımına benziyor:

  1. fdisk wd0

. . . Offset: 64372455 Signature: 0xAA55

        Starting       Ending       LBA Info:
#: id    C   H  S -    C   H  S [       start:      size   ]

0: 83 4007   1  1 - 4864 254 63 [    64372518:    13783707 ] Linux files*

. . . Gördüğünüz gibi, başlangıç noktası ve büyüklüğü başlangıçta disklabel(8) tarafından tam olarak rapor edildi. ("Offset" tarafından gösterilen değere itiraz etmeyin: ext2 bölütündeki genişletilmiş bölütün başlama noktasını gösterir )

Linux ‘ un büyüklüğünü değiştirince, aşağıdakine benzer:

  1. fdisk wd0

. . . Offset: 64372455 Signature: 0xAA55

        Starting       Ending       LBA Info:
#: id    C   H  S -    C   H  S [       start:      size   ]

0: 83 4007   1  1 - 4137 254 63 [    64372518:     2104452 ] Linux files*


Şimdi disklabel(8)in değiştirilmesi gerekir. Örneğin EDITOR çevre değişkeni (öntanımlı vi dir) ile belirlenmiş editöre başvuracak disklabel –e wd0 sonuçlarını duyurabilirsiniz. Editörde disk etiketinin son satırını yeni büyüklüğe değiştirin:

o: 2104452 64372518 ext2fs

Bittiğinde disk etiketini diske saklayın. Şimdi disk etiketi yeninden güncel oldu, bölütünüzü yukarıdaki istediğiniz gibi bağlamamış olmanız gerekir

Yeni bir bölüt eklemek için çok basit bir yöntem izleyebilirsiniz.

OpenBSD de flash bellek kullanabilirmiyim?

Normalde makinenizin portuna taktığınızda (plugin) bellek cihazı tanımlanmış olmalıdır. Kısaca diske taktığınızda, çekirdek konsol ekranına birkaç mesaj yazar. Örneğin USB flash bellek cihazını taktığımda, aşağıdakiler konsol ekranıma geliyor.

umass0 at uhub1 port 1 configuration 1 interface 0 umass0: LEXR PLUG DRIVE LEXR PLUG DRIVE, rev 1.10/0.01, addr 2 umass0: using SCSI over Bulk-Only scsibus2 at umass0: 2 targets sd0 at scsibus2 targ 1 lun 0: <LEXAR, DIGITAL FILM, /W1.> SCSI2 0/direct removable sd0: 123MB, 123 cyl, 64 head, 32 sec, 512 bytes/sec, 251904 sec total

Bu satırlar umass(4) (USB mass storage) bellek araçlarının eklendiğini ve SCSI sistem kullandığını gösterir, Son iki satır çok önemli satırlardır: eklenen bellek aracının hangi araç düğümü olduğunu ve saklama kapasitesinin ne kadar olduğunu söyler. Bu satırlarda birşey kaçırırsanız, dmesg(1) komutu ile hala görme şansınız vardır. Rapor edilen CHS geometriler hayalilere göre daha flash bellek diğer düzenli SCSI diskler gibi işlem görürler


Aşağıdaki iki senaroyu tartışacağız.

Araç new/empty ve sadece OpenBSD de kullanmak istiyorsunuz.

Disketiketini başlatmanız ve en az bir bölüt yaramanız gerekecektir. Lütfen Using OpenBSD's disklabel ve disklabel(8) el kitaplarını detaylı okuyunuz.

Bu örnekte FFS dosya sistemine yerleştirdiğim sadece bir bölüt a yarattım:

Warning: inode blocks/cyl group (125) >= data blocks (62) in last

   cylinder group. This implies 1984 sector(s) cannot be allocated.

/dev/rsd0a: 249856 sectors in 122 cylinders of 64 tracks, 32 sectors

       122.0MB in 1 cyl groups (122 c/g, 122.00MB/g, 15488 i/g)

super-block backups (for fsck -b #) at:

32,

A bölütünde yarattığımız a dosya sistemini /mnt/flashmem de bağlayalım. İlk olarak eğer yok ise bağlama noktası yaratalım.

  1. mkdir /mnt/flashmem
  2. mount /dev/sd0a /mnt/flashmem

Veri değişimi yapmak isteyen birinden bellek aygıtı aldınız! Dosya sisteminizde OpenBSD kullanmayan biri ile ciddiye alınacak bir farklılık vardır, yani bellek aygıtınızda yabancı bir dosya sistemi bulunmaktadır. Bu yüzden ilk olarak aygıt üzerinde hani bölütlerin bulunduğunu tespit etmemiz gerek FAQ 14 - Foreign Filesystems de tanımlandığı gibi.

  1. disklabel sd0
  1. /dev/rsd0c:

type: SCSI disk: SCSI disk label: DIGITAL FILM flags: bytes/sector: 512 sectors/track: 32 tracks/cylinder: 64 sectors/cylinder: 2048 cylinders: 123 total sectors: 251904 rpm: 3600 interleave: 1 trackskew: 0 cylinderskew: 0 headswitch: 0 # microseconds track-to-track seek: 0 # microseconds drivedata: 0

16 partitions:

  1. size offset fstype [fsize bsize cpg]
 c:        251904             0  unused      0     0      # Cyl     0 -   122 
 i:        250592            32   MSDOS                   # Cyl     0*-   122*


Yukarıdaki çıktıda olduğu gibi disk etiketinde, sadece bir Windows makine tarafından yaratılan FAT dosya sisteminden bölüt i var. Genellikle c bölütü diskin tamamını gösterir.

Şimdi gelin /mnt/flashmem üzerindeki i bölütünü dosya sistemine bağlayalım.

  1. mount -t msdos /dev/sd0i /mnt/flashmem


Şimdi, sanki başka bir disk gibi onu kullanarak başlayabilirsiniz.

DİKKAT: Önce bellek aygıtının daima bağlantısını kaldırın(unmount) sonra çıkarın(unplugging). Eğer bağlanmayı kaldırmazsanız dosya sisteminde veri bozulması sonucunda uyuşmaz bir durum oluşur.

Bellek aygıtının makinenizden sökülmesine bağlı olarak çekirdek konsol ekranınıza aşağıdaki göreceğiniz satırları yazacaktır:

umass0: at uhub1 port 1 (addr 2) disconnected sd0 detached scsibus2 detached umass0 detached

Bölütler benim disk etiketimde yok! Ne yapmam gerek

Sisteminize yabancı bir dosya sistemi yüklediğinizde (yeni bir işletim sistemi yüklendiğinde sıklıkla karşılaşılır) OpenBSD yükledikten sonra bir disk etiketi zaten var olacaktır, yeni yabacı dosya sistemi ile otomatik yenilenmeyecektir. Onları kullanmak istediğinizde disklabel(8) kullanarak el ile (manuel) bunları eklemek veya uyarlamaya ihtiyaç duyacaksınız.

Örnekte olduğu gibi benim var olan ext2 bölütlerimi Linux’un fdisk programını kullanarak uyarladım. ‘o’ bölütünün büyüklüğünü 1 GB’a yükselttim(yukarıdaki disk etiket çıktısına bakınız). Başlangıç noktası(offset: 64372518) ve büyüklüğünden (13783707) kolaylıkla tanımlayabiliriz. Bu değerlerin sektör sayıları olduğuna dikkat ediniz ve bu bilgilerin okunması için en güvenilir ve kesin yol sektör sayısı kullanmaktır (megabytes veya başka bir ölçü değildir). Değişimden önce, bölüt OpenBSD’ nin fdisk(8) kullanımına benziyor:

  1. fdisk wd0

. . . Offset: 64372455 Signature: 0xAA55

        Starting       Ending       LBA Info:
#: id    C   H  S -    C   H  S [       start:      size   ]

0: 83 4007   1  1 - 4864 254 63 [    64372518:    13783707 ] Linux files*

. . . Gördüğünüz gibi, başlangıç noktası ve büyüklüğü başlangıçta disklabel(8) tarafından tam olarak rapor edildi. ("Offset" tarafından gösterilen değere itiraz etmeyin: ext2 bölütündeki genişletilmiş bölütün başlama noktasını gösterir )

Linux ‘ un büyüklüğünü değiştirince, aşağıdakine benzer:

  1. fdisk wd0

. . . Offset: 64372455 Signature: 0xAA55

        Starting       Ending       LBA Info:
#: id    C   H  S -    C   H  S [       start:      size   ]

0: 83 4007   1  1 - 4137 254 63 [    64372518:     2104452 ] Linux files*


Şimdi disklabel(8)in değiştirilmesi gerekir. Örneğin EDITOR çevre değişkeni (öntanımlı vi dir) ile belirlenmiş editöre başvuracak disklabel –e wd0 sonuçlarını duyurabilirsiniz. Editörde disk etiketinin son satırını yeni büyüklüğe değiştirin:

o: 2104452 64372518 ext2fs

Bittiğinde disk etiketini diske saklayın. Şimdi disk etiketi yeninden güncel oldu, bölütünüzü yukarıdaki istediğiniz gibi bağlamamış olmanız gerekir

Yeni bir bölüt eklemek için çok basit bir yöntem izleyebilirsiniz