Hlavní navigace

Ako si spraviť bootovateľné FreeBSD USB

Juraj Šípoš

V tomto článku čitateľ dostane návod, ako si spraviť bootovateľné USB s FreeBSD – ale s užívateľským systémom z pevného disku, teda so všetkým, čo normálne treba k práci. Najprv si však stručne predstavíme BSD, aby sa čitateľ, ak je trochu viac vzdialený od BSD, dostal do obrazu a mohol sa zorientovať.

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/loa­der.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.symbol­s 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ť!

Odkazy

Domovské stránky FreeBSD

Stránky o vytvorení bootovateľného FreeBSD USB kľúča, ale na celkom inom princípe, ako popisuje tento článok

O FreeBSD na Slovensku

Našli jste v článku chybu?

7. 10. 2011 15:57

jam (neregistrovaný)

kern.cam.boot_de­lay=10000

7. 10. 2011 13:20

jam (neregistrovaný)

bezne pouzivam ruzne implementace read only systemu zalozenych na FreeBSD, kdy bootuju primo z CF/SD (bez mfs, mfs je pouzito jen na /tmp a /var) nebo jineho podobneho media, ale u USB memsticku jsem narazil na problem, ze USB disk je rozpoznan o zlomek vteriny pozdeji nez kdy z neho chce system bootovat. takze mi vyskoci hlaska ze / (root) nebylo mozne primountovat, ale kdyz opisu to co sam zkousel (napr. ufs:/dev/da0a) tak pokracuje v bootu a system v pohode pokracuje.

nevedel by autor, nebo …

Měšec.cz: Zdravotní a sociální pojištění 2017: Připlatíte

Zdravotní a sociální pojištění 2017: Připlatíte

Lupa.cz: Teletext je „internetem hipsterů“

Teletext je „internetem hipsterů“

DigiZone.cz: „Black Friday 2016“: závěrečné zhodnocení

„Black Friday 2016“: závěrečné zhodnocení

Podnikatel.cz: Přehledná titulka, průvodci, responzivita

Přehledná titulka, průvodci, responzivita

DigiZone.cz: Flix TV startuje i na Slovensku

Flix TV startuje i na Slovensku

DigiZone.cz: Recenze Westworld: zavraždit a...

Recenze Westworld: zavraždit a...

Měšec.cz: Kdy vám stát dá na stěhování 50 000 Kč?

Kdy vám stát dá na stěhování 50 000 Kč?

Lupa.cz: Proč firmy málo chrání data? Chovají se logicky

Proč firmy málo chrání data? Chovají se logicky

Měšec.cz: Air Bank zruší TOP3 garanci a zdražuje kurzy

Air Bank zruší TOP3 garanci a zdražuje kurzy

Podnikatel.cz: Podnikatelům dorazí varování od BSA

Podnikatelům dorazí varování od BSA

Podnikatel.cz: EET: Totálně nezvládli metodologii projektu

EET: Totálně nezvládli metodologii projektu

Vitalia.cz: Mondelez stahuje rizikovou čokoládu Milka

Mondelez stahuje rizikovou čokoládu Milka

Vitalia.cz: Jmenuje se Janina a žije bez cukru

Jmenuje se Janina a žije bez cukru

Vitalia.cz: Spor o mortadelu: podle Lidlu falšovaná nebyla

Spor o mortadelu: podle Lidlu falšovaná nebyla

120na80.cz: Pánové, pečujte o svoje přirození a prostatu

Pánové, pečujte o svoje přirození a prostatu

Vitalia.cz: Proč vás každý zubař posílá na dentální hygienu

Proč vás každý zubař posílá na dentální hygienu

Podnikatel.cz: Chaos u EET pokračuje. Jsou tu další návrhy

Chaos u EET pokračuje. Jsou tu další návrhy

Vitalia.cz: Když přijdete o oko, přijdete na rok o řidičák

Když přijdete o oko, přijdete na rok o řidičák

Měšec.cz: U levneELEKTRO.cz už reklamaci nevyřídíte

U levneELEKTRO.cz už reklamaci nevyřídíte

Podnikatel.cz: Zavře krám u #EET Malá pokladna a Teeta?

Zavře krám u #EET Malá pokladna a Teeta?