OpenBSD kurulumuna Dair kısa açıklanma

OpenBSD Kurulumuna Kısa Bakış

Bu SSS OpenBSD 3.8 kurulumu için gerekli bilgileri vermektedir. Tabi unutmamak gerekir ki, 3.8 versiyonu ve daha önceki versiyonlar arasında kurulum farklılıkları olabilir. OpenBSD, metin tabanlı sağlam bir kuruluma sahiptir. (Dikkat: ncurses tabanlı dahi değil, metin tabanlı. Redhat ailesinin yükleyicisi olan Anaconda; yada Suse dagitiminin yükleyicisi olan Yast gibi değil.) OpenBSD kurulumu kullanıcının karşılaşabileceği her türlü güçlük düşünülerek hazırlanmıştır. Sağlamlığına nazaran, tüm kurulum tek bir floppy disket aracılığıyla yapılabilmektedir. Kurulum süreci işlemci mimarileri arasında pek değişmemektedir, fakat az da olsa farklılıklar vardır. Kurulum sırasında değişik araçlara ihtiyaç duyulabilir. Aşağıda bu farklılıklar ve ihtiyaç duyulan araçlar anlatılmıştır.

OpenBSD Tarafından Desteklenen Mimariler

OpenBSD 3.8 tarafından desteklenenen mimariler aşağıdaki gibidir.

   * alpha: Floppy, CD-ROM, writing a floppy image to hard disk.
* amd64: Floppy, CD-ROM, network.
* cats: CD-ROM.
* hp300: CD-ROM, network.
* hppa: Network.
* i386: Floppy, CD, network.
* mac68k: Booted using utilities running on Mac OS. See INSTALL.mac68k for details.
* macppc: CD-ROM, network.
* mvme68k: Network, bootable tape.
* mvme88k: Network, bootable tape.
* sparc: Floppy, CD-ROM, network, writing image to existing swap partition, bootable tape.
* sparc64: Floppy (U1/U2 only), CD-ROM, network, writing image to existing partition.
* vax: Floppy, network.

Desteklenen Kurulum ortamları.

OpenBSD kurulumu çoklu ortamları (media) destekler. En çok tercih edilen, mimariden bağımsız seçenekler aşağıdaki gibidir. Bu seçenekler kurulumu CD'den yada disketten yaptiktan sonra kullanılabilir. Daha fazla bilgi için OpenBSD kurulum disketi oluşturma kısmına bakabilirsiniz . CD-ROM CD-ROM ile kuruluma başlamak için ya Resmi OpenBSD CD-ROM 'unu satınalmış olmanız, ya da kendi CD'nizi oluşturmanız gerekir.
NOT: OpenBSD resmi olarak ISO formatında dosyalar yayınlamaz!!!!!
FTP: Bu kurulum seçeneği gerçek zamanlı olarak paketleri indirerek sistemi kurmanızı sağlar. Bu seçenek ile statik IP kullanabilir, yada DHCP yöntemi ile IP'nizi dinamik olarak alabilirsiniz.
Lokal Dosya Sistemi: Bu seçenek size daha önceden var olan dosya sistemi üzerinden kurulum yapmanızı sağlar. Kurulum disketi tarafından desteklenen dosya sistemleri DOS, EXT2FS ve FFS (OpsnBSD dosya sistemi A6 etiketlidir. FREEBSD'den farklı olarak A6 etiketi alır. FREEBSD A5 etiketini alir.)

OpenBSD kurulum disketlerini yaratmak

Kurulum disketi oluşturmak için ilk önce herhangi bir OpenBSD sitesinden sizin ihtiyaç duyduğunuz boot disketi imajını indirmelisiniz. FTP serverlarının bir listesini OpenBSD FTP sayfasından bulabilirsiniz. i386 mimarisi dışında diğer tüm mimarilerin bir adet kurulum disketi vardir. i386 mimarisi için 3 adet kurulum disketi imajı bulunmaktadır. İhtiyac duyulan kurulum imajları floppy38.fs şeklindedir.

NOT: cdrom38.fs imajı boot edilebilir bir kurulum CD-ROM'u yapmak için kullanılır..
İhtiyacınız olan floppy imajını seçtikten sonra temiz bir diskete ihtiyacınız olacak. Daha önceki Linux tecrübelerinizden yararlanarak disktenizin temiz (bad sector içermeyen) olduğundan emin olabilirsiniz. Bir disketi formatlamak ve bad sector taraması yapmak için fdformat(1) komutunu kullanabilirsiniz. Dikkat ettiyseniz daha imajimizi diskete yazmadık, sadece disketi formatladık..

# fdformat /dev/fd0a
Format 1440K floppy `/dev/fd0a'? (y/n): y
Processing VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV done.
Yukarıdaki gibi disketinizi OpenBSD'de formatlayabilirsiniz. Aslında bu kısım biraz gereksiz. Çünkü bu dökumanı ilk kez okuyan biri eminim OpenBSD'nin fdformat'ını o ana kadar kullanmamıştır. Bu nedenle imdadımıza DOS'un format komutu yetişiyor. Disketimizi format komutuyla formatlıyalım.

Disketi formatladıkan sonra imajimızı diskete yazabiliriz. Eğer bu işlemi OpenBSD yada UNIX benzeri bir işletim sisteminde yapacaksak dd(1) komutunu kulllanabiliriz. dd komutunun dos versiyonuda mevcuttur. Örnek olarak.:

 # dd if=floppy38.fs of=/dev/rfd0c bs=126b 

İmaj yazıldıktan sonra yazdığımız imajla disketin aynı olup olmadığını kontrol etmek için aşağıdaki komut kullanılabilir. Tabi bu *NIX ler için geçerli.

 # cmp /dev/rfd0c floppy38.fs    

Eğer imajı Windows/DOS'ta yaratıyorsanız ftp yansılarında tools dizinine girebilir yada CD1 den 2.8/tools dizini altındaki programlarından birini kullanabilirsiniz. Windows kullanıcıları için rawrite yeterli olacaktır.

rawrite  komutunun kullanımına örnek : 
 C:\> rawrite
RaWrite 1.2 - Write disk file to raw floppy diskette

Enter source file name: floppy38.fs
Enter destination drive: a
Please insert a formatted diskette into drive A: and press -ENTER- : >Enter<

Eğer NT kullanıyorsanız rawrite komutu çalışmayacaktır. Ama fdimage komutunu yada ntrw komutunu disket imajini diskete yazmak için kullanabilirsiniz. Bu araçlarda CD1 de yada ftp'de tools dizininde bulunabilir. Her bir programın kullanımına örnek aşağıdaki gibidir. fdimage 'ın kullanımı

 C:\> fdimage -q floppy38.fs a: 

ntrw kullanımı :
C:\> ntrw floppy38.fs a:
3.5", 1.44MB, 512 bytes/sector
bufsize is 9216
1474560 bytes written

OpenBSD kurulum imajını boot etmek

Bu kısım daha önceden de bahsedildiği gibi mimariye bağımlı değişiklikler kısmına girmektedir. En çok kullanılan iki mimariye ornek aşağıdaki gibidir.

i386 sistemlerde boot :
Artık Windows kullanıcılarının bile bildiği bir şekilde, disket yuvasına takılır ve sistem açılır yada sistemde CD-ROM'dan boot etme desteği varsa sistemin bios ayarlarında gerekli değişiklik yapılarak sistemin ilk başta CD-ROM'dan açılması sağlanabilir.

sparc sistemlerde boot :

Disketten boot etmek için disketi yuvasına yerleştirin ve aşağıdaki komutu kullanın. ok boot floppy CD-ROM'dan boot etmek için OpenBSD CD-ROM'unu yerine yerleştirin ve boot kısmında 'boot cdrom' komutunu verin. ok boot cdrom Tabi bu sadece yeni komut modunda(command mode) geçerlidir. Eski komut modunda iseniz ( <--- ) n tuşunu kullanarak yeni komut moduna geçebilirsiniz. Eğer kullandığınız sistem pre-sun4c olan eski bir Sparc sistem ise yeni komut moduna geçemezsiniz.Bu durumda biraz tecrübeye ihtiyacınız olacak. Eğer sisteminizde birden çok CD-ROM varsa yeni komut modunda probe-scsi komutunu kullanarak doğru CD-ROM'dan boot etmelisiniz. ok probe-scsi Target 0 Unit 0 Disk QUANTUM LIGHTNING 365S Target 1 Unit 0 Removable Disk QUANTUM EMPIRE_1080S Target 3 Unit 0 Removable Disk Joe's CD ROMs İstediğiniz CD-ROM'u seçin ve şu komutu kullanın:. ok boot /sbus/esp/sd@X,0 Şimdi sıra sistemi boot etmeye geldi. Disketle yada CD-ROM'la sistemi boot edince kernel ve kurulum için ihtiyaç duyulan tüm programlar hafızaya yüklenir. Eğer bir sorun olursa büyük ihtimalle disketiniz arızalıdır.!!! Boot prosedürü başarılı bir şekilde gerçekleşince ekranda akan bir sürü mavi çizgiler üzerinde yazılar göreceksiniz. Burada kernel sisteminizde bulduğu donanımları size gösteririr.

Daha sonra aşağıdaki gibi bir mesajla karşılaşırsınız.

rootdev=0x1100 rrootdev=0x2f00 rawdev=0x2f02
erase ^?, werase ^W, kill ^U, intr ^C, status ^T
(I)nstall, (U)pgrade or (S)hell? i

 Welcome to the OpenBSD/i386 3.8 install program.

This program will help you install OpenBSD in a simple and rational way. At
any prompt except password prompts you can run a shell command by typing
'!foo', or escape to a shell by typing '!'. Default answers are shown in []'s
and are selected by pressing RETURN. At any time you can exit this program by
pressing Control-C and then RETURN, but quitting during an install can leave
your system in an inconsistent state.

Specify terminal type: [vt220] Enter
kbd(8) mapping? ('?' for list) [none] Enter

Kullandığınız mimariye göre terminal tipiniz değişecektrir. Örnek olarak OpenBSD/sparc sistemleri "sun" terminalini kullanır. Default terminal tipini enter tuşuna basarak geçebilirsiniz.

Kurulum sırasında harddiskleri tanımlamak

OpenBSD'de harddisk tanımlamak oldukça basittir. i386 disk tanımlamaları iki bölümde yapılır. Biri fdisk(8) ve diğeri disklabel(8). İkisinide kullanmak zorundasınız. Klasik bir kullanıcı için fdisk ve disklabel kavramı biraz karmaşık gelebilir. Şöyle açıklayalım: Normalde Linux yada Windows'ta fdisk programı ile sisteminize birden cok kısım (partition) yaratırsınız. Ama OpenBSD (daha doğrusu *BSD sistemlerde) ilk başta fdisk ile bir kısım yaratırsınız. Daha sonra bu yaratılan kısmı kendi içinde disklabel(8) komutu ile bölümlere ayırırsınız. Sitelerinde söylendiğine göre bu sistem performansını teker teker fdisk ile kısımlara ayırmaktan daha çok artırıyormuş.


Cool!  Let's get to it...

You will now initialize the disk(s) that OpenBSD will use. To enable all
available security features you should configure the disk(s) to allow the
creation of separate filesystems for /, /tmp, /var, /usr, and /home.

Available disks are: wd0.
Which one is the root disk? (or done) [wd0] Enter

You will now create a single MBR partition to contain your OpenBSD data. This
partition must have an id of 'A6'; must *NOT* overlap other partitions; and
must be marked as the only active partition.

The 'manual' command describes all the fdisk commands in detail.

Disk: wd0 geometry: 2586/240/63 [39100320 Sectors]
Offset: 0 Signature: 0xAA55
Starting Ending LBA Info:
#: id C H S - C H S [ start: size ]
------------------------------------------------------------------------
*0: 0B 0 1 1 - 202 239 63 [ 63: 3069297 ] Win95 FAT-32
1: 00 0 0 0 - 0 0 0 [ 0: 0 ] unused
2: 00 0 0 0 - 0 0 0 [ 0: 0 ] unused
3: 00 0 0 0 - 0 0 0 [ 0: 0 ] unused
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>

Bu kısım sisteminizi kuracağınız root diski belirtmekte kullanlır. Root diskiniz / kısmının ve swap kısmının bulunacağı disktir. wd0 IDE diskleri, sd0 ise SCSI diskleri temsil eder.(Aslında wd0 sisteminizde bulunan ilk IDE harddisktir.Yani primary master) Sisteminizde bulunan her bir disk için bir bilgi OpenBSD sisteminde bulunmalıdır.(Sisteminizde ikinci bir harddisk varsa ve buna OpenBSD kurmasanız bile onu sisteme tanıtmalısınız. Yapacağınız (örnek olarak içinde sadece Windows bulunan bir hdd için ""wd1 <ENTER>"") bu diski sisteme tanıtmaktır. Eğer tüm diski kullanmasını istersek OpenBSD diski sizin için kısımlara ayıracaktır. Eğer bunu istemiyorsak fdisk(8). komutunu kullanmalısınız. fdisk(8) hakkında daha fazla bilgi için FAQ. a bakabilirsiniz

 > p m
device: /dev/rwd0c
type: ESDI
disk: ESDI/IDE disk
label: ST320011A
bytes/sector: 512
sectors/track: 63
tracks/cylinder: 16
sectors/cylinder: 1008
cylinders: 16383
total sectors: 39102336
free sectors: 36030960
rpm: 3600

16 partitions:
# size offset fstype [fsize bsize cpg]
a: 17593.2M 1498.7M unused 0 0
c: 19092.9M 0.0M unused 0 0
i: 1498.7M 0.0M MSDOS
> d a
> a a
offset: [3069360] Enter
size: [36030960] 150m
Rounding to nearest cylinder: 307440
FS type: [4.2BSD] Enter
mount point: [none] /
> a b
offset: [3376800] Enter
size: [35723520] 300m
Rounding to nearest cylinder: 614880
FS type: [swap] Enter
> a d
offset: [3991680] Enter
size: [35108640] 120m
Rounding to nearest cylinder: 245952
FS type: [4.2BSD] Enter
mount point: [none] /tmp
> a e
offset: [4237632] Enter
size: [34862688] 80m
Rounding to nearest cylinder: 164304
FS type: [4.2BSD] Enter
mount point: [none] /var
> a g
offset: [4401936] Enter
size: [34698384] 3g
Rounding to nearest cylinder: 6291936
FS type: [4.2BSD] Enter
mount point: [none] /usr
> a h
offset: [10693872] Enter
size: [28406448] 4g
Rounding to nearest cylinder: 8388576
FS type: [4.2BSD] Enter
mount point: [none] /home
> p m
device: /dev/rwd0c
type: ESDI
disk: ESDI/IDE disk
label: ST320011A
bytes/sector: 512
sectors/track: 63
tracks/cylinder: 16
sectors/cylinder: 1008
cylinders: 16383
total sectors: 39102336
free sectors: 22115520
rpm: 3600

16 partitions:
# size offset fstype [fsize bsize cpg]
a: 150.1M 1498.7M 4.2BSD 2048 16384 16 # /
b: 300.2M 1648.8M swap
c: 19092.9M 0.0M unused 0 0
d: 120.1M 1949.1M 4.2BSD 2048 16384 16 # /tmp
e: 80.2M 2069.2M 4.2BSD 2048 16384 16 # /var
g: 2048.0M 2149.4M 4.2BSD 2048 16384 16 # /usr
h: 4096.0M 4197.4M 4.2BSD 2048 16384 16 # /home
i: 1498.7M 0.0M MSDOS
> q
Write new label?: [y] Enter

Üstteki resimde fdisk ile yaratılmış bir kısmın (partititon), disklabel komutu ile nasıl daha ufak parçalara ayrıldığı gösterilmiştir. Kurulum sırasında fdisk ile kısmın (partition) yaratılmasından sonra disklabel kısmına geçilir. Bu bir kurulum prosedüdür ve yapılması ZORUNLUDUR. Swap partitionu disklabel ile tanımlanır ve etiketi "b" dir. Root partitionunuz "/" disklabel'da "a" ile tanımlanır. Daha sonraki partitionlar "d" etiketinden(label)den sonra başlar. "c" etiketi fdisk ile ayrilan bütün kısmı simgeler ve silinemez.


Fdisk ile partition tanımladıktan sonra etiketler şu şekilde tanımlanır : (ASLINDA DISKLABEL'IN PROMPTU " > " şeklindedir. Fakat burada karmaşa olmasın diye " disklabel> " şeklinde göstereceğim. disklabel >  ? (Bu size disklabel'da kullanılabilecek parametreleri gösterir.) disklabel > a x (Mevcut fdisk partitionuna yeni bir label eklemek için. Bu örnekte x labeli yaratılır) disklabel > d x (Herhangi bir disklabel'ı silmek için. Bu örnekte x labeli silinir) disklabel >p (Oluşturulan labelları gösterir) disklabel >w (Labeller'ı sisteme yaz) disklabel >q (Disklabel'dan çık) NOT: Sisteminizde en az "a" ( / ) ve "b" (swap) label'ı olmak zorundadır. Böylece bir fdisk kısmında (partition) en az "a" , "b" , "c" labelları oluşturmuş olduk. Disklabel komutunda label tanımlarken CHS (cylindir-head-sector) yerine size: [80041185] 80m kısmında megabyte yada gigabyte belirtilebilir. Üsteki tabloda / , swap , / tmp , /usr ve /var label'ları tanımladık. Ek olarak /home da tanımlanabilirdi.

Bağlama noktalarının ayarlanması ve dosya sisteminin formatlanması

There are four main reasons for using separate filesystems, instead of shoving everything into one or two filesystems: o Güvenlik: Bazı dosya sistemlerini s 'nosuid', 'nodev', 'noexec', 'readonly' şeklinde bağlayabilirsiniz.Ufak bir örnek vermek gerekirse /tmp mutlaka 'nosuid' şeklinde bağlanmalıdır (mount edilmelidir). o Stabilite : Bir kullanıcı tarafından bilerek ya da bilmeyerek yanlış ayarlanmış bir program sisteminizin çalışmasını engelleyerek yerel DoS ataklarına sebebiyet verebilir. o Hız: Üzerine sürekli bilgi yazılan bir dosya sistemi fragmente(parçalama) olabilir. ( OpenBSD nin kullandığı ffs ağır fragmentelere karşı bağımlıdır). o Bütünlük (Integrity) : Eğer herhangi bir sebebten ötürü bir dosya sistemi çökerse diğer dosya sistemleri hala çalışır durumda kalır. Bağlama noktalarının ( mountpoints ) ayarlanması şu şekildedir. Dosya sisteminizi disklabel ile ayarladıktan sonra aşağıdaki gibi bir metin görürüz. Eğer disklabel'da bağlama noktalarını belirtmişseniz sadece 'done' yazmanız yeterli olacaktır. Bu opsiyon size bağlama noktalarını düzenlemek için ikinci bir şans verir. Ama eğer disklabelda bağlama noktalarını ayarlamadıysanız burada mutlaka yapmalısınız .

 Mount point for wd0d (size=122976k)? (or 'none' or 'done') [/tmp] Enter
Mount point for wd0e (size=82152k)? (or 'none' or 'done') [/var] Enter
Mount point for wd0g (size=3145968k)? (or 'none' or 'done') [/usr] Enter
Mount point for wd0h (size=4194288k)? (or 'none' or 'done') [/home] Enter
Mount point for wd0d (size=122976k)? (or 'none' or 'done') [/tmp] done
No more disks to initialize.

OpenBSD filesystems:
wd0a /
wd0d /tmp
wd0e /var
wd0g /usr
wd0h /home

The next step *DESTROYS* all existing data on these partitions!
Are you really sure that you're ready to proceed? [no] y
/dev/rwd0a: 307440 sectors in 305 cylinders of 16 tracks, 63 sectors
150.1MB in 1 cyl groups (306 c/g, 150.61MB/g, 19328 i/g)
/dev/rwd0d: 245952 sectors in 244 cylinders of 16 tracks, 63 sectors
120.1MB in 1 cyl groups (244 c/g, 120.09MB/g, 15360 i/g)
/dev/rwd0e: 164304 sectors in 163 cylinders of 16 tracks, 63 sectors
80.2MB in 1 cyl groups (164 c/g, 80.72MB/g, 10368 i/g)
/dev/rwd0g: 6291936 sectors in 6242 cylinders of 16 tracks, 63 sectors
3072.2MB in 20 cyl groups (328 c/g, 161.44MB/g, 20608 i/g)
/dev/rwd0h: 8388576 sectors in 8322 cylinders of 16 tracks, 63 sectors
4096.0MB in 26 cyl groups (328 c/g, 161.44MB/g, 20608 i/g)
/dev/wd0a on /mnt type ffs (rw, asynchronous, local, ctime=Thu Oct 20 00:03:14 2
005)
/dev/wd0h on /mnt/home type ffs (rw, asynchronous, local, nodev, nosuid, ctime=T
hu Oct 20 00:03:14 2005)
/dev/wd0d on /mnt/tmp type ffs (rw, asynchronous, local, nodev, nosuid, ctime=Th
u Oct 20 00:03:15 2005)
/dev/wd0g on /mnt/usr type ffs (rw, asynchronous, local, nodev, ctime=Thu Oct 20
00:03:15 2005)
/dev/wd0e on /mnt/var type ffs (rw, asynchronous, local, nodev, nosuid, ctime=Th
u Oct 20 00:03:15 2005)

Üsteki tablonun basindaki " Are you really sure that you're ready to proceed? [n] y" sorusuna “yes” ve ardindan “done” derseniz dosya sistemleri formatlanmaya başlar. Yada başka bir ifade ile dosya sistemi yaratılmaya başlar. Bu işlem azda olsa biraz zaman alır.

Network ayarlarının düzenlenmesi

Şimdi sıra network konfigurasyonunun ayarlanmasına geldi. Aşağıda adım adım konfigurasyon anlatılmıştır. Burada statik IP kullanıyoruz. Ama DHCP de kullanılabilirdi. Bu durumda bütün bilgiler DHCP sunucudan alınacaktı. Size tavsiyem eğer makinayı deneme amaçlı kullanacaksanız DEFAULT ROUTE kısmını BOŞ bırakın. Bu size ppp bağlantılarda avantaj sağlayacaktır.

  Enter system hostname (short form, e.g. 'foo'): enderunix
Configure the network? [yes] Enter
Available interfaces are: fxp0.
Which one do you wish to initialize? (or 'done') [fxp0] Enter
Symbolic (host) name for fxp0? [puffy] Enter
The default media for fxp0 is
media: Ethernet autoselect (100baseTX full-duplex)
Do you want to change the default media? [no] Enter
IP address for fxp0? (or 'dhcp') 199.185.137.55
Netmask? [255.255.255.0] Enter
IPv6 address for fxp0? (or 'rtsol' or 'none') [none]
No more interfaces to initialize.
DNS domain name? (e.g. 'bar.com') [my.domain] example.com
DNS nameserver? (IP address or 'none') [none] 199.185.137.1
Use the nameserver now? [yes] Enter
Default route? (IP address, 'dhcp' or 'none') 199.185.137.128
add net default: gateway 199.185.137.128
Edit hosts with ed? [no] Enter
Do you want to do any manual network configuration? [no] Enter

Now, we set the password for the root account:

Password for root account? (will not echo) pAssWOrd
Password for root account? (again) pAssWOrd

Kurulum ortamlarının seçilmesi

Ağ ayarlarının yapılmasından sonra kurulum scripti (Burada hata yaptığım zannedilebilir, fakat doğru bir kullanımdır. OpenBSD'nin yükleme programı sadece bir shell scriptinden ibarettir.) size ağ ayarlarınızı değiştirmek için son bir seçenek verecektir. Bu daha çok kurulum scriptinin bir hata vermesinden dolayı yapılır. Daha sonra dosya sistemleri bağlanır (bütün partition'lar aynı anda mount -a -F ile bağlanır ) ve root şifresi sorulur. Artık yerel dosya sisteminiz tamamen hazırdır. Yerel dosya sisteminiz hazır olduğuna göre kurulum ortamının yeri sorulur. Daha önceden söylediğimiz gibi bu bir disk olabilir, bir CD-ROM olabilir, yada herhangi bir ftp adresi olabilir. Bu arada sisteminizde X kullanıp kullanmayacağınızda sorulur. Şu ana kadar ben X'i hep kullandım. Bu sorunun amacı sanırım kurulum paketlerinden X ile alakalı olanların olup olmayacağı ile alakalıdır. Ya da şu an aklıma gelen ikinci bir şık da şudur. Normalde OpenBSD gibi güvenli bir sistemde X gibi direk güvenlik açığı teşkil edecek bir sistemin kurulması düşünülemez. Buna bağlı olarak sistemde X'i direk açamazsınız. Bunun için /etc/sysctl.conf dosyasına bir ek yapmak zorudasiniz. SYSCTL opsiyonu sisteminize on-the-fly (havada) değişikilik yapmanızı sağlar. Bu opsiyon machdep.allowaperture=1 dir. Bu arada sisteme on-the-fly değişiklikler (yani sistemi reboot etmeden değişilik yapmak ) Linux'tan çok önceleri *BSD'lerde vardı.

 Let's install the sets!
Location of sets? (cd disk ftp http or 'done') [cd] Enter
Available CD-ROMs are: cd0.
Available CD-ROMs are: cd0.
Which one contains the install media? (or 'done') [cd0] Enter
Pathname to the sets? (or 'done') [3.8/i386] Enter


Bu örnekte sisteme CD-ROM kurulumu yapacağız. Burada gördüğünüz gibi 'tape', 'ftp', 'http' ya da 'local' diskten kurulum seçenekleri de mevcut. Biz CD-ROM seçtikten sonra sisteminizdeki CD-ROM sayısına göre hangi cdromu seçmek istediğimiz sorulur ve verdiğimiz cevaba göre CD-ROM sisteme bağlanır. Kurulum dosyalarının sorulduğu dizin de girildikten sonra kurulmasını istediğiniz paketler sorulur. B

Kurulum paketlerinin seçilmesi ve kurulumun sonlandırılması

sonlandırılması : Kurulum paketlerini seçme işlemi burada yapılır. Kurulum scriptinin bulduğu dosyalar gösterilecektir. Varsayılan olarak 4 paket seçilidir. Bunlar mutlaka kurulmalıdır. Bunlar 'base38.tar.gz', 'etc38.tar.gz', 'man38.tar.gz' ve 'bsd'. Burada 'bsd' sisteminizin kernel'ıdır. Hepsini seçmek için ALL yada * kullanılır. Seçili paketi kurmamak için ' - paket adı ' kullanılır ( Eksi işareti ve paketin tüm adı. Mesela -comp38.tgz ) Yada aşagıda olduğu gibi wild karakterler kullanılabilir. Sisteminize kuracağınız paketleri seçtikten sonra bu paketleri açmak isteyip istemediğiniz size sorulur ve paketler aşağıdaki gibi açılmaya başlar. Durum çubuğu ve zaman göstergesi size paketlerin kurulumu hakkında bilgi verir.

Select sets by entering a set name, a file name pattern or 'all'. De-select
sets by prepending a '-' to the set name, file name pattern or 'all'. Selected
sets are labeled '[x]'.

[X] bsd
[X] bsd.rd
[ ] bsd.mp
[X] base38.tgz
[X] etc38.tgz
[X] misc38.tgz
[X] comp38.tgz
[X] man38.tgz
[X] game38.tgz
[ ] xbase38.tgz
[ ] xetc38.tgz
[ ] xshare38.tgz
[ ] xfont38.tgz
[ ] xserv38.tgz
File Name? (or 'done') [bsd.mp] all

[X] bsd
[X] bsd.rd
[X] bsd.mp
[X] base38.tgz
[X] etc38.tgz
[X] misc38.tgz
[X] comp38.tgz
[X] man38.tgz
[X] game38.tgz
[X] xbase38.tgz
[X] xetc38.tgz
[X] xshare38.tgz
[X] xfont38.tgz
[X] xserv38.tgz

Artık yolu neredeyse bitirdik.

  Start sshd(8) by default? [yes] y


  Start ntpd(8) by default? [no] y
  Do you expect to run the X Window System? [yes] n
  Change the default console to com0? [no] Enter
Saving configuration files......done.
Generating initial host.random file ......done.
What timezone are you in? ('?' for list) [Canada/Mountain] ?
Africa/ Chile/ GB-Eire Israel NZ-CHAT Turkey
America/ Cuba GMT Jamaica Navajo UCT
Antarctica/ EET GMT+0 Japan PRC US/
Arctic/ EST GMT-0 Kwajalein PST8PDT UTC
Asia/ EST5EDT GMT0 Libya Pacific/ Universal
Atlantic/ Egypt Greenwich MET Poland W-SU
Australia/ Eire HST MST Portugal WET
Brazil/ Etc/ Hongkong MST7MDT ROC Zulu
CET Europe/ Iceland Mexico/ ROK posix/
CST6CDT Factory Indian/ Mideast/ Singapore posixrules
Canada/ GB Iran NZ SystemV/ right/
What timezone are you in? ('?' for list) [Canada/Mountain] US
What sub-timezone of 'US' are you in? ('?' for list) ?
Alaska Central Hawaii Mountain Samoa
Aleutian East-Indiana Indiana-Starke Pacific
Arizona Eastern Michigan Pacific-New
Select a sub-timezone of 'US' ('?' for list): Eastern
Setting local timezone to 'US/Eastern'...done.
Making all device nodes...done.
Installing boot block...
boot: /mnt/boot
proto: /usr/mdec/biosboot
device: /dev/rwd0c
/usr/mdec/biosboot: entry point 0
proto bootblock size 512
/mnt/boot is 3 blocks x 16384 bytes
fs block shift 2; part offset 3069360; inode block 152, offset 4136
using MBR partition 1: type 166 (0xa6) offset 3069360 (0x2ed5b0)
done.

CONGRATULATIONS! Your OpenBSD install has been successfully completed!
To boot the new system, enter halt at the command prompt. Once the
system has halted, reset the machine and boot from the disk.
# halt
syncing disks... done

The operating system has halted.
Please press any key to reboot.

Reboot'tan sonra yapılacak işlemler

Sisteminizi reboot ettikten sonra yapılacak en güzel şey afterboot(8) manuel sayfasını okumak olacaktır. Burada size ön düzeyde bilgi verilecektir. afterboot(8) man sayfası 2.6 versiyonu ile tanıtıldı. Gerçi afterboot manuel sayfası size(yani root'a) mail olarak gelecektir. Ek olarak, sistemizideki mail sistemini kurduktan sonra mutlaka ' dmesg | mail dmesg@openbsd.org ' komutu ile kernel mesajınızı openbsd'ye gönderiniz. Bu OBSD core takımı için ve dolayısıyla OBSD kullanıcıları için çok yararlı olacaktır. NOTLütfen sadece GENERIC kernel dmesg çıktısını gönderin. Sonradan derlenmiş kernel'lar çok yararlı olmamaktadır

Diğer Kaynaklar ve popüler sorular

Soru: - OpenBSD internetten indirmek için ISO imajı sağlıyormu?
Cevap: - HAYIR. Geliştiricilerin tercihi bu yönde olduğu için yapacak birşey yok. Fakat internette biraz araştırarak elbette bulabilirsiniz.

Kurulum için hangi dosyalara ihtiyaç var?

OpenBSD binary dosyalarını içeren paketler aşağıdaki gibidir. Bunlardan hangileri gerekli?

OpenBSD kurulumu için ne kadar yere ihtiyacım var?

Aşağıdaki dizinler tam kurulum için önerilen harddisk alanıdır. Bu size evden internete bağlanabilmek için gerekli olan yeterli alanı belirtmektedir. Doğal olarak sunucular için bu büyüklükler değiştirilmelidir. o Çok kullanıcılı sistemler için aşağıdaki değerlerin 3 katı ya da daha fazlası gerekebilir. o Eğer sisteminize üçüncü parti yazılımlar kuracaksanız kesinlikle /usr kısmını en azından 3 kat arttırın.! o For a system that handles lots of email or web pages (stored, respectively, in /var/mail and /var/www) you will want to make your /var partition significantly larger. o Çok fazla log dosyası oluşturan çok kullancılı sistem için /var kısmını daha büyük yapmalısınız.( /var/log ). Dikkat edilmesi gereken diğer bir noktada /usr ve /usr/X11R6 kısmının aynı dosya sisteminde bulunmasıdır.Bunların ayrı dosya sistemlerinde bulunmasının size herhangi bir getirisi olmayacaktır. Ama tabi herşey size bağlı !!!

SYSTEM          /       /usr    /var    /usr/X11R6
alpha 56M 540M 27M 161M
amiga 45M 399M 24M 36M
hp300 31M 234M 24M 47M
i386 35M 229M 24M 72M
mac68k 29M 232M 24M 36M
mvme68k 29M 232M 24M - (Xserver yok)
pmax 50M 355M 24M 60M
sparc 40M 259M 24M 49M

Disklabel editörünü kullanırken 'a' etiketli kısmın / (kök dizin)'u ifade ettiğini daha önceden belirtmiştik. Swap'te 'b' etiketi ile ifade edilir. Eğer sisteminizi bu şekilde kuracaksanız yukarıdaki grafikten /usr , /var , / 'ın toplamını almak zorundasınız. Swap kısmını en az 32 mb yapın ama daha iyisi 64 mb yapmaktır. Sunucu sistemler için bu değeri arttırabilirsiniz. Daha önceden belirtmiştik. Fdisk ile ayırdığınız kısmı çoklu label'lı hale getirmenin şu gibi faydaları vardır.

OpenBSD'de çoklu açılış (Multi Booting)

OpenBSD & NT OpenBSD ve NT sistemlerini beraber kullanmak için NTloader'ı kullanabilirsiniz. NT'de çoklu açılış için OpenBSD pbr dosyasına ihtiyacınız var. Installboot'u çalıştırdıktan sonra pbr dosyasını şu şekilde oluşturabilirsiniz:

# dd if=/dev/rsd0c of=openbsd.pbr bs=512 count=1

Daha sonra OpenBSD pbr dosyasını NT'yi boot ettikten sonra c:\boot.ini dosyasının sonuna şu satırları ekleyerek gösterebilirsiniz.

c:\openbsd.pbr="OpenBSD"

Daha sonra sistemi tekrar açtığınızda NTloader menüsünden OpenBSD'yi açabilirsiniz. Bu konuda daha fazla bilgi almak için NTLDR Hacking Guide. sayfasından yararlanabilirsiniz.

OpenBSD & Windows yada DOS (i386) OpenBSD'yi Windows 3.1, Windows95, yada DOS ile beraber kullanabilmek için bir bootloader programına ihtiyacınız var. Bunlara örnek vermek gerekirse :osbs20b8.zip ya da The Ranish Partition Manager. Her iki programda OpenBSD kısmlarını boot etme yeteneğine sahiptir. OpenBSD & Linux (i386) Bunun için INSTALL.linux, dosyasını okuyabilirsiniz.

Kernel'in çıktısını OpenBSD'ye göndermek

Bunu sadece OBSD core takımı için değil kendiniz içinde yapin. Bu çok önemli. OBSD ile gelen GENERIC kernelın mümkün olduğunca fazla donanımı desteklemesi gerekir.

/usr/src/etc/root/root.mail'den bir alıntı (Bütünlüğün bozulmaması için bu mesajı aynen yayınlıyorum). 

If you wish to ensure that OpenBSD runs better on your machines, please do us a favor (after you have your mail system setup!) and type

        dmesg | mail dmesg@openbsd.org

so that we can see what kinds of configurations people are running. We will use this information to improve device driver support in future releases. (We would be much happier if this information was for the supplied GENERIC kernel; not for a custom compiled kernel). The device driver information we get from this helps us fix existing drivers. Ayrıca section 14.7 kontrol edin. Kernel mesajınızı göndermek için kullanığınız email mutlaka geçerli bir mail olmalıdır. Bu emaili ilk başta başka bir makinaya yada başka bir hesaba gönderin daha sonra bu mesajı dmesg@openbsd.org adresine gönderin. Böylece OBSD core takımı size herhangi bir durumda geri dönebilsin. Ör:

dmesg | mail ofsen@enderunix.org ile mesajı geçerli bir accounta gönderin

daha sonra aldığınız bu mesajı

dmesg@openbsd.org adresine forward edin.

NOT: Lütfen sadece GENERIC kernel dmesg'ını gonderin. Sonradan derlenmiş kernel çıktıları çok yararlı olmamaktadır.

Çeşitli meseleler

Bu bölümde sizler için yararlı olacağına inandığım, kendimin de karşılaştığı bir kaç problemden bahsetmek istiyorum. <p> A-) İlk olarak PCIBIOS hatasından bahsedeceğim. Normalde disketle sistemi açtıktan sonra PCIBIOS hatası alırsanız UKM (User Kernel Manager) a girmelisiniz. Peki bunu nasıl yapacaksınız? Disketle yada CD-ROM ile sistemi OpenBSD kurmak için açtığınızda Kernel sisteminize yüklenir fakat açılmaz.

BOOT> diye bir prompt gelir. Burada direk <ENTER> tuşuna basmayın. boot -c komutunu girin ve UKM moduna girin. Bu bir nevi MgckSysRq özelliği gibi birsey; kernel'a mudahele etmenizi sağlar. Burada disable pcibios ve daha sonrada quit yazın, böylece kernelda bu desteği iptal etmiş olacaksınız. Daha sonra sistemi kurmak için bu dökumanda anlatılan gerekli aşamaları uygulayabilirsiniz.

B-) Aslında bundan bahsetmesemde olur. OBSD (OpenBSD) de shell olarak bash gelmez. Daha sonra kendiniz yüklemek zorundasınız. Bash kabuğunun meziyetlerinden bahsetmeme gerek yok herhalde. Otamatik tamamlama (tab tuşu ile) komutların gösterimi, renklendirme vs... Sonuç olarak sizin bash'e ihtiyacınız var.
Peki bunu nerden temin edeceksiniz. Bunun için iki yol var: ya herhangi bir OpenBSD FTP sitesinden paket olarak hazır derlenmiş halini indireceksiniz ya da ports.tar.gz yi indireceksiniz ve bunu /usr/ dizininde açacaksınız. Daha sonra shell den bash kabuğu dizinine gireceksiniz ve kendiniz derleyeceksiniz. OpenBSD FREEBSD'den ödünç aldığı !!!! (bu harf hatasını bile bile yaptım) portları kullanır. Peki ama nedir bu port kavramı? Linux'tan FreeBSD'ye geçerken en çok zorlandığım şeylerden biri de bu kavramı anlamak olmuştu. Normalde yazılan yazılımlar direk FreeBSD de çalışmaz (yada OBSD'de).

Bu yazılımların FBSD yada OBSD de çalışması için kodlarında oynama yapılmadır. Az önce açtığınız ports.tar.gz (/usr altında açıyoruz) gerekli olan patchleri bulundurur. Bakın sadece patchleri başka birşey değil. Mesela /usr/ports/shell/bash e girdik. Burada make install dersek (DIKKAT bunun için internete bağlı olmak zorunluluğu var !!!) Makefile içinde bulunan ftp sitelerine bağlanılır ve gerekli kaynak kodları indirilir. Eğer bu portun ihtiyaç duyduğu bir başka port varsa o indirilir ve derlenir. Daha sonra /usr/ports/shell/bash-2.04/patches dizininde bulunan patcheri bash kaynak koduna uygulanır. Uygulanılan yamadan sonra bash derlenir. En son olarakta bu derlenmiş bir paket olarak /usr/ports/packages/i386/All dizini altına kopyalanır. Bu artık port değil bir pakettir(package). Yani birinci seçenek haline gelir. Ve bütün portların kurulduğu /usr/local dizinine kurulur. Bundan sonra yapılacak iş basit. /etc/shells dosyasında oluğundan emin olun, ve chfn ile Charli Root'un shellini /usr/local/bin/bash olarak değiştirin. Size tavsiyem ilk başta bu konsaldan (console) çıkmayın. Başka bir konsoldan root olarak login olun, yani deneyin. Başıma geldi, sisteme root olarak login olamadım. Gerçi bununda çözümü var. Ama bu madde çok uzadı, bu kadarı yeterli.

C-) Başka neye ihtiyacımız var arkadaslar? Komut promtunda bash-2.04 görmek pek hoş olmasa gerek değil mi? En azından benim hoşuma gitmiyor. Bunu nasıl çözebileceğimize gelelim şimdi. Gerçi OBSD ilgilenen biri bunun cevabını kesin bilir, PS1 değişkeni ile oynayacağız. Bash kabuğunda isek export PS1='xxx' diyeceğiz. Burada sakın xxx demeyin. PS1 değerleri çeşitli işletim sistemleri için farklıdır. Hatta Linux dağıtımları arasında bile farklılıklar vardır.

Mesela slackware PS1 değerini şu şekilde export eder:

export PS1="\h:\w\\$ " 
Redhat ailesi ise
export PS1="[\u@\h:\w]\\$ " kullanır.


Bu promptu korumak için /.profile dosyasında aynen dediğim şekilde yazmanız gerekir. Sizin kullandığınız/alıştığınız sistemdeki PS1 değerini öğrenmek için

echo $PS1 

komutunu yazın. Ayrıca kullanıcılarınız için /home/user/.profile dosyasında aynı işlemi tekrarlayabilir, ya da kullanıcı eklerken bunun otomatik olması için /etc/skel'deki .profile dosyası ile oynayın.

D-) İhtiyaç duyacağınız bir diğer olayda klavye kontrölüdür. Bunun icin kcon -r 0 -d 0 komutu ile klavyenizi hızlandırabilirsiniz. Bunuda /etc/rc.local 'e yazın. Varsayılan değerler gerçekten çok yavaş. Daha fazla bilgi için kcon ve scon komutlarının manuel sayfalarına bakabilirsiniz.