História
BSD vychádza z Unixu, ktorý začala vyvíjať spoločnosť AT&T Bell Labs už v rokoch 1970. Táto spoločnosť poskytla kód univerzitám za lacný poplatok a tie jej zase výslednú prácu odovzdali späť. Koordináciu zabezpečovala skupina CSRG na Univerzite Berkeley (Computer Science Research Group at the University of Berkeley).
Mnohí ľudia dnes vôbec nevedia, ako píše Petr Topiarz v časopise BSD Magazine (pozri článok BSD FILE SHARING – Part 3. FTP), že FTP protokol vychádza z BSD. A nielen ten, dokonca i celý internet.
Po mnohých rokoch sa kód uvoľnil a začiatkom rokov 1990 vznikli dnes známe – voľne dostupné verzie NetBSD a FreeBSD. Projekt OpenBSD vznikol oveľa neskôr, až v roku 1995, kedy sa jeho zakladateľ, Theo de Raadt, dostal do názorového protiprúdu v tíme NetBSD a rozhodol sa kráčať samostatne.
NetBSD, FreeBSD a OpenBSD – aký je rozdiel?
NetBSD podporuje obrovské množstvo platforiem. FreeBSD podporuje podstatne menej architektúr a OS je zameraný najmä na platformu x86, hoci dnes podporuje už aj iné – amd64, ia64 atď. OpenBSD je OS špeciálne zameraný na bezpečnosť.
Z vyššie uvedeného vyplýva, že pokiaľ používate FreeBSD, nemá veľký zmysel prejsť na NetBSD, čo platí aj naopak. Sú pravdaže rozdiely (medzi NetBSD a FreeBSD), nie však zásadné. Na OpenBSD sa kvôli zásadnému prístupu k bezpečnosti za každú cenu určite oplatí pozrieť, a to aj z pohľadu užívateľov FreeBSD, NetBSD či Linuxu.
BSD a Linux
Pod pojmom „BSD“ sa myslí „rodina operačných systémov“, pretože majú niečo spoločné – históriu, terminológiu, adresárovú štruktúru (napríklad všetko, čo je mimo základného systému, sa inštaluje do adresára /usr/local) a Linux je v zásade iba jeden (jadro). A hoci je pravda, že niečo ako jeden BSD systém naozaj neexistuje, kritikom termínu „BSD systémy“ treba pripomenúť, že tento pojem sa používa, pretože označuje celú BSD rodinu. A ani výraz „BSD systém“ nie je celkom ojedinelý – označuje predovšetkým „nejaký BSD systém“ (napríklad MirBSD) z rodiny BSD a nikdy sa tým nemyslí jeden konkrétny systém. O rodine BSD prevláda názor, že sú to systémy, ktoré fungujú veľmi spoľahlivo v tzv. „hraničných situáciách“ (záťaž). Na stránkach www.rootbsd.net sa napríklad píše, že verejnosť je nedostatočne informovaná – Linux je terminologicky iba jadro a rodina BSD systémov je jadro + základný systém. Na blogu rootbsd.net sa uvádza, že FreeBSD server využíva menej RAM než linuxovský server pri používaní rovnakých aplikácií a sieťový výkon FreeBSD je ďaleko lepší.
FreeBSD USB
Hoci dnes je FreeBSD k dispozícii aj ako inštalačný image obraz pre USB kľúče (súbor s koncovkou memstick.img v FTP archívoch), tento článok dáva návod, ako si spraviť bootovateľné FreeBSD s plnou užívateľskou výbavou – KDE/GNOME, mplayer, OpenOffice, GIMP, čo inštalačný image pre USB neposkytuje, vyžaduje si totiž najskôr inštaláciu – prostredie, do ktorého s týmto USB obrazom (napríklad FreeBSD-8.1-RELEASE-i386-memstick.img) nabehnete, plní iba inštalačný účel.
Aké sú výhody bootovateľého USB oproti Live CD?
Predovšetkým rýchlosť. CD/DVD sú veľmi pomalé. A potom mobilita – USB kľúč sa podstatne ľahšie nosí ako CD. Sú síce i maličké CD, len tie už nepodporujú taký veľký objem dát. Ďalej je to možnosť ľahko na ne zapisovať a ľahučko čokoľvek zmeniť.
Aká veľkosť USB sa doporučuje?
Minimálne 8 GB, ale platí pravidlo – čím viac, tým lepšie. Ak ste šikovní, vystačíte si aj s 2 GB a s kompresiou ešte s menším objemom.
Kroky pre výrobu bootovateľného FreeBSD USB kľúča (platí samozrejme aj pre USB disk)
Vašu užívateľskú inštaláciu FreeBSD prenesiete na USB pomocou týchto krokov:
1) Najprv musíte pripraviť a naformátovať váš USB kľúč:
# fdisk -BI /dev/da0 # bsdlabel -B -w da0s1 # newfs -U -O1 /dev/da0s1a # boot0cfg -v -B da0
2) Potom USB kľúč treba pripojiť: mount /dev/da0s1a /usb
3) Všetko z pevného disku skopírujte na USB kľúč (/usb)
4) Po skopírovaní si upravíte /usb/boot adresár, čo je vysvetlené nižšie
5) Do adresára /boot na USB kľúči musíte ešte skopírovať MFS, ktorý si vyrobíte (popísané nižšie)
6) /etc adresár si treba jemne upraviť, /etc/fstab v MFS musí obsahovať tento riadok: /dev/md0 / ufs rw 0 0
7) Po štarte USB kľúča nabehnete do MFS, odkiaľ si skriptom pripojíte USB pomocou mount_nullfs
(popísané nižšie)
Úprava adresára /boot (na USB kľúči)
V súbore /usb/boot/loader.conf nastavíte niektoré voľby, aby ste vo vašom FreeBSD z USB kľúča po nabootovaní mohli napríklad používať kompresiu (geom_uzip_load) alebo mount_nullfs
, čo je pripájanie podobné linuxovskému mount --bind
, kedy pripojíte napríklad /usb/usr z USB kľúča/disku do minimalistického adresára /usr v MFS. A pravdaže, nesmiete ani zabudnúť na vytvorenie MFS (bod 5) – Memory File System, do ktorého USB nabehne (popísané nižšie).
Súbor loader.conf na USB kľúči v adresári /boot musíte upraviť:
mfsroot_load="YES"
mfsroot_type="mfs_root"
mfsroot_name="/boot/mfsroot"
nullfs_load="YES"
splash_bmp_load="YES"
vesa_load="YES"
geom_uzip_load="YES"
geom_label_load="YES"
bitmap_load="YES"
bitmap_name="/boot/splash.bmp"
snd_driver_load="YES"
kern.maxfiles="25000"
kern.maxusers="64"
vfs.root.mountfrom="/dev/md0"
# Additional filesystem drivers
udf_load="YES"
linux_load="YES"
fuse_load="YES"
ntfs_load="YES"
ext2fs_load="YES"
reiserfs_load="YES"
Vo vyššie uvedenom súbore loader.conf mnohé voľby nie sú tak potrebné, ale niektoré nie je možné aktivovať inak ako pomocou loader.conf. Riadok snd_driver_load="YES"
napríklad znamená, že po nabehnutí budete môcť ihneď používať aj zvuk.
Príprava MFS
Memory File System, ako vyplýva z angličtiny, je v jednoduchých slovách súborový systém v pamäti. FreeBSD (pri bootovaní) ho načíta zo súboru (do pamäti), ktorý je potrebné si vytvoriť: dd if=/dev/zero of=mfsroot bs=1024k count=42
Vytvorí sa súbor mfsroot o veľkosti okolo 40 MB, ktorý treba už len naformátovať a skopírovať tam iba základ – teda všetko to, čo je najpodstatnejšie (adresár /bin, /sbin, /etc, /root atď.):
# mdconfig -a -f mfsroot md0 # newfs /dev/md0 # mount /dev/md0 /mnt3
Po skopírovaní musíte mfsroot odpojiť a zapakovať pomocou gzip: gzip mfsroot
Súbor mfsroot.gz potom skopírujte do /boot adresára na vašom USB kľúči (disku).
Pokiaľ sa vám nechce strácať čas kopírovaním a zisťovaním, ktorý súbor zo základného systému FreeBSD je naozaj dôležitý (myslí sa dôležitosť vzhľadom na funkčnosť – aby MFS nebolo príliš veľké a aby všetko fungovalo tak, ako má), pozrite si tieto stránky, kde sú takéto súborové systémy MFS rovno pripravené k stiahnutiu. Po nabootovaní z USB kľúča (budete iba v prostredí MFS) sa k fyzickému USB kľúču dostanete pomocou:
# /sbin/mount -o ro /dev/da0s1a /usb # /sbin/mount_nullfs /usb/boot /boot # /sbin/mount_nullfs /usb/usr /usr
/usb adresár si v MFS treba pravdaže vytvoriť (aby mount_nullfs
mohol fungovať). Vaše adresáre ako /usr/home, /etc atď. si môžete ešte vopred zapakovať a skopírovať do adresára /mfs na USB kľúči a po nabehnutí (nabootovaní z USB kľúča) do MFS si ich rozbalíte z TGZ do pamäti skriptom:
# mdmfs -M -s 60m md1 /tmp # chmod 777 /tmp # mdmfs -M -s 45m md2 /var # tar -xzpf /usb/mfs/var.tgz -C / # mdmfs -M -s 4m md3 /etc # tar -xzpf /usb/mfs/etc.tgz -C / # mdmfs -M -s 55m md4 /usr/home # tar -xzpf /usb/mfs/home.tgz -C /
Toto nie je ani tak nutné, ale oplatí sa vám na USB kľúči vytvoriť si aj /mfs adresár, kde si uložíte zapakovaný obsah /etc a /home adresárov a pravdaže aj /var, aby ste mohli editovať (či inštalovať), čo treba. Možno sa spýtate, prečo MFS rozširovať pomocou ďalších diskov v pamäti? Odpoveďou je sloboda – s MFS totiž nabootujete vaše FreeBSD aj na počítači s malou RAM (teda takmer všade), čo znamená, že sa vám otvorí väčší priestor možností nabootovať vaše FreeBSD s USB kľúčom. Ak bude mať počítač menšiu RAM, vyššie uvedené príkazy si upravte (60 MB alebo -s 60m
zameňte za -s 40m
). Ale MFS môžete nechať aj tak, ako je. Swap je tiež možné takto vytvoriť (v pamäti), alebo použiť aj ten existujúci (ak pracujete na počítači s FreeBSD).
Na USB kľúč skopírujte všetko z pevného disku, aj /etc a /var adresár. Po nabootovaní do MFS je najvhodnejšie USB kľúč pripojiť ako read-only, pretože pri veľmi častom zapisovaní sa rýchlo opotrebuje (horeuvedený skript toto už takto rieši). Adresáre /etc, /root, /home budú pravdaže zapisovateľné, pretože ich budete mať v pamäti buď v rámci MFS (mfsroot.gz), alebo si ich neskôr rozšírite aj pomocou mdmfs
. Záleží však od vás, či si vystačíte s pôvodnými MFS adresármi – môj /home adresár má vyše 40 MB a nepovažoval by som za vhodné ho celý dávať do MFS pre prípad, aby som svoj USB kľúč mohol použiť i na počítači, ktorý nemá toľko pamäti.
Záver
Tento príklad pre vytvorenie bootovateľného USB s FreeBSD je iba vzorový. Samozrejme, že je možné mnohé veci aj inak kombinovať – môžete chcieť iba minimalistické USB, alebo naopak čosi vlastné. Čo sa týka jadra, v tomto prípade sa načítava z fyzického USB disku hneď pri bootovaní (aj s tým, čo je zadefinované v loader.conf), takže vo svojom MFS mám iba tieto súbory – /boot/kernel: geom_label.ko, geom_uzip.ko, zlib.ko a pravdaže aj s ich debug súbormi (zlib.ko.symbols atď.).
Fantázii však v ceste nič nestojí a tento vzorový príklad funguje. Je autorský (odnikadiaľ neskopírovaný ako celok), ale existujú i iné spôsoby pre tvorbu bootovateľných USB kľúčov so systémom FreeBSD, kde sa napríklad USB delí ešte aj na diskové oddiely (slice). Nech teda každý, kto uzná za vhodné kráčať svojskou cestou, navštívi aj rodinu BSD. Takýchto návodov je veľmi málo a svetu BSD treba pomáhať!