Nejprve se ujistěte, že jste si přečetli manuálovou stránku disklabel(8)
Disklabely jsou vytvářeny k tomu, aby existovalo rozhraní mezi diskem a diskovými drivery obsaženými v kernelu. Labely drží určitou informaci o vašem disku , např. geometrii disku a informaci o filesytémech. To je využito bootstrap programem k inicializaci disku a k tomu aby se vědělo kde je který filesystém v rámci disku. Labely jsou navíc využívány ve spojení se filesystémy k vytvoření efektivnějšího prosředí. Detailnější informace o diklabelu jsou obsaženy v manuálové stránce disklabel(5)
Disklabel umožňuje navíc překonat omezení diskových oddílů dané architekturou. Například na i386 můžete mít pouze 4 primární diskové oddíly (partitons). (Diskové oddíly které jsou vidět na ostatních systémech jako např. na WindowsNT nebo DOS) s disklabel(8), můžete využít jeden z těchto primárních oddílů k uložení *všech* oddílů OpenBSD. (např. 'swap', '/', '/usr' and '/var'). A stále vám zůstávají 3 oddíly pro jiné operační systémy!
Jedna z hlavních částí instalace OpenBSD je vytvoření labelů. To následuje (pro architekturu i386) hned po použití programu fdisk(1). Během instalace využijete disklabel na vytvoření jednotlivých labelů v rámci jednoho diskového oddílu, která budou obsahovat mimojiné i názvy přípojných bodů. Během instalace můžete nastavit vaše přípojné body v disklabel(8), ale to není úplně nezbytné, protože později budete vyžádáni, abyste potvrdili vaše volby. Přesto to dělá instalační proceduru rychlejší.
První label, který vytvoříte bude 'a'. Tento label by měl být namountován jako /. Doporučené oddíly a jejich velikosti si můžete prohlédnout v FAQ 4, Je potřeba volné místo. Pro servery je doporučené, abyste vytvořili tyto diskové oddíly separátně. Pro běžné uživatele bude stačit vytvoření mounpointu /. Než vytvoříte váš root diskový oddíl, uvědomte si, že budete ještě potřebovat nějaké místo pro label swap. Tím jsme vysvětlili základy diskalbelu a můžeme přistoupit k příkladům během instalace. V prvním příkladu předpokládáme, že OpenBSD bude jediný operační systém na tomto počítači a že budete provádět plnou instalaci.
Pokud je disk sdílen s jinými operačními systémy, měly by tyto mít BIOS oddíl, který rozděluje prostor, který pokrývájí. Pro bezpečnost se přesvědčte, že Oddíl s OpenBSD je v rozmezí offsetů a velikosti daných v 'A6' tabulce BIOSu. (Implicitně se bude disklabel snažit toto vnutit). Pokud si nejste jisti, jak rozdělit korektně několik oddílů, (např. rozdělení /, /usr, /tmp, /var, /usr/local a jiných) jednoduše prozatím rozdělte místo mezi oddíly root a swap.# using MBR partition 3: type A6 off 63 (0x3f) size 4991553 (0x4c2a41) Treating sectors 63-16386300 as the OpenBSD portion of the disk. You can use the 'b' command to change this. Initial label editor (enter '?' for help at any prompt) > d a > a a offset: [63] <Enter> size: [16386237] 64M Rounding to nearest cylinder: 131040 FS type: [4.2BSD] <Enter> mount point: [none] / fragment size: [1024] <Enter> block size: [8192] <Enter> cpg: [16] <Enter> > a b offset: [131103] <Enter> size: [16255197] 64M Rounding to nearest cylinder: 131040 FS type: [swap] <Enter>
V této chvíli jsme vytvořili 64M root diskový oddíl na /, a 64Megový oddíl pro swap. Všimněte si, že offset začíná na sektoru 63. To je přesně to co chcete. Disklabel ukazuje velikost v sektorech, nicméně nemusíte vkládat velikosti pouze v sektorech. Jako v příkladu výše můžete vkládat velikosti např. jako 64 Megabytes = 64M a 2 Gigabytes = 2G. Disklabel toto zaokrouhlí na nebližší cylindr. V příkladu výše můžete také zaznamenat, že disklabel předpokládá, že label 'b' bude oddíl pro swap. To je správný předpoklad a jádro GENERIC je nastaveno aby se dívalo po swapu v labelu 'b' a vy bystě měli použít 'b' jako label pro swap standartně.
Další příklad vás provede vytvořením dalších dvou labelů. To znamená, že to není kompletní instalace, protože velikost těchto labelů by nestačila na plnou instalaci OpenBSD.
> a d offset: [262143] <Enter> size: [16124157] 64M Rounding to nearest cylinder: 131040 FS type: [4.2BSD] <Enter> mount point: [none] /tmp fragment size: [1024] <Enter> block size: [8192] <Enter> cpg: [16] <Enter> > a e offset: [393183] <Enter> size: [15993117] 64M Rounding to nearest cylinder: 131040 FS type: [4.2BSD] <Enter> mount point: [none] /var fragment size: [1024] <Enter> block size: [8192] <Enter> cpg: [16] <Enter>
V příkladě uvedeném výše byste si měli všimnout dvou věcí. Jedna z nich je fakt, že offset se počítá automaticky, tak aby byl další v pořadí. Pokud budete provádět instalaci tohoto typu, vůbec se nebudete muset s offsety zabývat. Další rozdíl, kterého si můžete všimnout je, že label 'c' byl přeskočen. To bylo provedeno z toho důvodu, že label 'c' representuje celý disk, takže s labelem 'c' byste neměli operovat.
Pokud jste vytvořili všechny labely, které jste chtěli, je čas zapsat tyto informace na disk a pokračovat v instalačním procesu. Abyste zapsali všechno na disk a ukončili disklabel (a pokračovali s instalací) udělejte:
> w > q
*POZOR!* - Pro uživatele s velkými disky: Pokud váš bios nemumí rozpoznat správnout velikost vašeho disku, OpenBSD to nebude umět taky. V opačném případě si OpenBSD poradí s diskem normálně. Pokud jste v situaci, kdy váš bios nepodporuje váš disk, zkuste produkty typu Maxtor EZ-Drive.
Pokud je váš systém nainstalován, němeli byste používat disklabel moc často. Budete ho ale potřeba v případě, že budete chtít přidat, odebrat nebo restruktorovat vaše disky. Jedna z prvních věcí které budete potřebovat udělat je vypsat si stávající disklabel, jednoduše napište:
# disklabel wd0 >----- Podle toho jaký device si budete # chtít prohlédnout # using MBR partition 3: type A6 off 64 (0x40) size 16777152 (0xffffc0) # /dev/rwd0c: type: ESDI disk: label: TOSHIBA MK2720FC flags: bytes/sector: 512 sectors/track: 63 tracks/cylinder: 16 sectors/cylinder: 1008 cylinders: 2633 total sectors: 2654064 rpm: 3600 interleave: 1 trackskew: 0 cylinderskew: 0 headswitch: 0 # millisekundy track-to-track seek: 0 # millisekundy drivedata: 0 16 partitions: # size offset fstype [fsize bsize cpg] a: 2071440 65583 4.2BSD 1024 8192 16 # (Cyl. 65*- 2120) b: 65520 63 swap # (Cyl. 0*- 65) c: 2654064 0 unused 0 0 # (Cyl. 0 - 2632) j: 512001 2137023 4.2BSD 1024 8192 16 # (Cyl. 2120*- 2627*)
Výše uvedený příkaz vám jednoduše dovolí vypsat stávající disklabel a ujistit se, že nic nepokazíte. (Což všichni někdy potřebujeme.) Abyste byli schopni udělat změny, musíte disklabel vyvolat s opšnou -E.
# disklabel -E wd0
To vám hodí prompt, ten samý jaký jste používali při instalaci OpenBSD. NEjdůležitější příkaz na tomto promptu je asi '?'. To vám vylistuje všechny možnosti. Dokonce se můžete podívat na kompletní manuálovou stránku disklabel(8) pomocí příkazu 'M'. Z toho promptu budete dělat věci jako přidávat, mazat nebo měnit diskové oddíly. Pro více informací si přečtěte manuálovou stránku disklabel(8).
Nejprve se ujistěte, že jste si přečetli hlavní manuálovou stránku fdisku fdisk(8).
Fdisk je program, který má pomáhat s údržbou vašich diskových oddílů. Tento program je použit při instalaci k nastavení vašeho diskového oddílu s OpenBSD. (tento dikový oddíl může obsahovat několik labelů, každý s filesystémem/swapem/atd.). Může rozdělit prostor na vašich discích a nastavit jeden aktivní. Tento program je obvykle používán v Single Boot Módu ( boot -s ). Fdisk dále nastavuje MBR na vašich různých discích.
Pro potřeby instalce budete potřebovat pouze JEDEN diskový oddíl s OpenBSD a pak použijete disklabel abyste na něm nastavili prostor pro swap a filesystem.
Abyste si prohlédli tabulku vašich diskových oddílů:
# fdisk fd0
Což vám dá výstup podobný tomuto:
Disk: fd0 geometry: 80/2/18 [2880 sectors]
Offset: 0 Signatures: 0xAA55,0x0
Starting Ending
#: id cyl hd sec - cyl hd sec [ start - size]
----------------------------------------------------------------------
*0: A6 0 0 1 - 79 1 18 [ 0 - 2880] OpenBSD
1: 00 0 0 0 - 0 0 0 [ 0 - 0] unused
2: A7 0 0 2 - 79 1 18 [ 1 - 2879] NEXTSTEP
3: 00 0 0 0 - 0 0 0 [ 0 - 0] unused
V tomto příkladě ukazujeme výstup fdisku bez floppy drajvu. Můžeme nastavit diskový oddíl OpenBSD (A6) a jeho velikost. * nám ríká, že diskový oddíl s OpenBSD je bootovatelný.
V předchozí ukázce jsem jenom vypisovali informaci. Co když budeme chtít editovat tabulku našich diskových oddílů? Abysme tak mohli učinit, budeme potřebovat použít -e flag. To nás dostane do promptu pro interakci s fdiskem.
# 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
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>
Je naprosto bezpečné podívat se a prozkoumat co vás zajímá, jenom se ujistěte, že odpovíte N na dotaz o ukládání změn a *NEPOUŽÍVEJTE* příkaz write.
Zde je přehled příkazů které můžete použít s volbou -e.
Jakmile jste instalovali váš disk SPRÁVNĚ budete potřebovat použít fdisk(8) (pouze pro i386) a disklabel(8) k nastavení vašeho disku v OpenBSD.
Lidi s i386 by měli začít s fdiskem. Další architektury toto mohou ignorovat.
# fdisk -i sd2Toto nainicializuje "skutečnou" tabulku diskových oddílů pro exkluzivní použití OpenBSD. Pak pro ni budete potřebovat vytvořit disklabel. To se může zdát zmatené.
# disklabel -e sd2 (obrazovka bude prázdná, spustí se váš $EDITOR) type: SCSI ...bla... sectors/track: 63 total sectors: 6185088 ...bla... 16 partitions: # 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)Nejdříve, ignorujte diskový oddíl 'c', ten je obsažen vždy a existuje proto aby programy jako disklabel vůbec mohly fungovat! Pro normální použití by měla být fsize vždy 1024, bsize 8192 a cpg 16. Fstype je 4.2BSD. Total sectors je celková velikost disku. Toto je disk o velikosti 3 gigabyty. Tři gigabyty je v termínech výrobce 3000 megabytů. Takže vydělte 6185088/3000 (použijte bc(1))). Dostanete 2061. Takže abyste vytvořili velikost diskosti diskových oddílů pro a, d, e, f, g, ... jednoduše vynásobte X*2061 abyste dostali X megabytů místa na daném diskovém oddílu. Ofset pro váš první diskoý oddíl bude ten samý jako "sectors/track" vypsaný ve výstupu disklabelu výše. Pro nás je to 63. Ofset pro každý další diskový oddíl by měl být kombinace velikosti každého diskového oddílu a ofsetu každého diskového oddílu. (Kromě diskového oddílu 'c', ten v této rovnici nehraje žádnou roli.)
Jiná možnost je ta, že budete chtít jeden diskové oddíl na disku, řekněme že budete používat celý disk pro web nebo jako adresář home nebo tak něco, pak vezměte celkovou velikost disku a odečtěte od ní počet sektorů na stopu. 6185088-63 = 6185025. Váš diskový oddíl je
d: 6185025 63 4.2BSD 1024 8192 16
Pokud se vám toto vše zdá zbytečně složité, můžete použít disklabel -E abyste dostali ten samý mód diskového oddílu, který jste dostali na instalačním disku! Můžete zadat "96M" abyste řekli "96 megabytů". (Nebo pokud máte tak velký disk, tak 96G pro 96 giga!) Naneštěstí mód -E používá diskovou geonetrii z BIOSu a ne tu reálnou a často se tyto dvě liší. Abyste toto omezení obešli, napište 'g d' pro 'geometry disk'. (Jiné možnosti jsou 'g b' pro 'geometry bios' a 'g u' pro geometry user, nebo jednoduše pro to, co label říkal předtím než disklabel uložil změny.)
To je docela dost, ale ještě nejsme u konce. Nakonec budete potřebovat vytvořit filesystem na disku tím, že použijete newfs(8).
# newfs wd1a
Podle toho jak byl váš disk pojmenován v rámci schematu OpenBSD. (Podívejte se na výstup z dmesg(8) abyste viděli jak byl váš disk pojmenován.)
Ted zjistěte kam budete tento právě vytvořený diskový oddíl montovat. Řekněme, že ho budete chtít montovat pod /u. Nejprve vytvořte adresář /u. Pak jej namontujte.
# mount /dev/wd1a /u
Nakonec ho přidejte do /etc/fstab(5)
/dev/wd1a /u ffs rw 1 1
Co když budete přemístit již existující adresář jako např. /usr/local? Měli byste namontovat nový disk do /mnt a pak použít cpio -pdum abyste nakopírovali /usr/local do adresáře v /mnt. Zeditujte soubor /etc/fstab(5) aby ukazoval, že diskový oddíl s /usr/local je teď /dev/wd1a (váš nově naformátovaný diskový oddíl.) Příklad:
/dev/wd1a /usr/local ffs rw 1 1
Rebootujte do single módu..boot -s Přemístěte existující /usr/local do /usr/local-backup (nebo ho smažte, jestli se na to cítíte) a vytvořte prázdný adresář /usr/local. Pak rebootujte systém a voila!! soubory jsou tam!
(Poznámka: jestliže chcete swapovat do souboru proto, že dostáváte hlášky jako "virtual memory exhausted" měli byste nejdříve zkusit zvýšit limity na proces pomocí unlimit(1) v csh, nebo ulimit(1) v sh.)
Swapování do souboru nevyžaduje zvláštní konfiguraci kernelu, ačkoliv to klidně můžete udělat, tento faq vám ukáže jak to udělat oběma způsoby.
Swapování do souboru je nejjedodušší a nejrychlejší cesta jak dostat další prostor pro swap. To neplatí pro uživatele, kteří používají Soft Updates. (Není nastaveno jako default). Abyste mohli začít, podívejte se kolik swapu v současné chvíli používáte, tím že se podíváte pomocí utility swapctl(8) To můžete udělat tak, že spustíte:
$ swapctl -l Device 512-blocks Used Avail Capacity Priority swap_device 65520 8 65512 0% 0
To ukazuje zařízení a jejich statistiky které jsou aktuálně používány pro swapování. V příkladu uvedeném výše existuje pouze jedno zařízení pojmenováné "swap_device"."swap_device". To je předdefinovaná oblast na disku která je použita pro swapování. (Ukazuje se jako dikový oddíl b když si prohlížíte disklabely). Jak můžete v příkladu dále vidět, toto zařízení e v současné době moc nepoužívá. Ale pro účely tohoto dokumentu budeme dělat, že potřebujeme dalších 32M.
První krok jak nastavit soubor jako swapovací zařízení je vytvoření souboru. To je nejlepší udělat pomocí utility dd(1) Tady je příklad vytvoření souboru /var/swap který má velikost 32M.
$ 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)
Jakmile je toto hotovo, můžeme zapnout swapování do tohoto zařízení. Použijte následující příkaz k tomu abyste zapnuli swapování na toto zařízení.
$ sudo chmod 600 /var/swap $ sudo swapctl -a /var/swap
Teď budeme potřebovat zjistit, jestli bylo korektně přidáno do seznamu zařízení pro swap.
$ 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%
Teď když jste nastavili a zapnuli swapování do souboru, budete potřebovat přidat řádku do vašeho souboru /etc/fstab aby se konfigurace provedla při každém bootu. Pokud tuto řádku nepřidáte, nebude zařízení zkonfigurováno.
$ cat /etc/fstab /dev/wd0a / ffs rw 1 1 /var/swap /var/swap swap sw 0 0
Toto je více dlouhodobé řešení jak přidat více prostoru pro swap. Abyste swapovali do souboru trvale, nejdříve vytvořte kernel s vnd0c jako swap. Pokud máte wd0a jako root filesystem, wd0b je předchozí swap, použijte tento řádek ve vašem souboru s konfigurací jádra (souvisí s kompilaci jádra):
config bsd root on wd0a swap on wd0b and vnd0c dumps on wd0b
Jakmile je toto hotovo, budete potřebovat vytvořit soubor, který bude používán ke swapování. Měli byste to udělat pomocí toto samého příkazu uvedeného v příkladech výše.
$ 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)
Teď je váš soubor na místě, budete potřebovat přidat tento soubor do /etc/fstab. Zde je příklad jak nabootovat s tímto zařízení jako swapovacím.
$ cat /etc/fstab /dev/wd0a / ffs rw 1 1 /dev/vnd0c none swap sw 0 0
V tomto bodě budete muset rebootovat váš počítač aby se projevily změny v jádře. Jakmile je to hotovo, je čas nakonfigurovat toto zařízení jako swapovací. Abyste to udělali, použijte vnconfig(8).
$ sudo vnconfig -c -v vnd0 /var/swap vnd0: 33554432 bytes on /var/swap
Posledním krok je zapnutí swapování do tohoto zařízení. Uděláme to stejně jako v příkladech uvedených výše, použijeme k tomu swapctl(8). Pak zjistíme jestli bylo korektně přidáno do našeho listu swapovacích zařízení.
$ 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%
Posledních pár let pracoval Kirk McKusick na něčem nazývaném "soft updates".
Celé je to založeno na idei navrhované Greg Gangerem a Yale Pattem kteří
navrhli částečné uspořádání operací v buffer cache, které by dovolilo
odstranění požadavků na synchronní zapisování adresářovách položek z kódu FFS.
Tím se rapidně zvýší rychlost zápisu na disk.
Protože soft updates jsou jako celek stále ve vývoji, je nadále
nutné fsck(8)
v případě, že počítač je náhle vypnut bez správné ukončovací sekvence. Tato
skutečnost bude ale opravena v budoucích verzích.
Více informací a detailů o soft updates lze nalézt v pracích Ganger a Patt a z McKusick.
Pro používání Soft Updates potřebujete mít jádro zkompilované s volbou
FFS_SOFTUPDATES
tato volba se nachází už v jádrech GENERIC.Zapnutí Soft Updates musí být provedeno s opšnou příkazu mount, když montujete partišnu s utilitou mount(8), můžete specifikovat můžete specifikovat, jestli si přejete zapnout soft updaty na této partišně. Níže uvedený je příklad záznamu do /etc/fstab(5), který má jednu partišnu sd0a kterou jsme namontovali se soft updates.
/dev/sd0a / ffs rw,softdep 1 1
Poznámka pro uživatele na platformě sparc. Nezapínejte softupdates na strojích sun4 nebo sun4k. Tyto architektury podporují pouze omezené množství paměti jádra a nemohou používat tuto volbu. Stroje sun4m tímto omezením netrpí.
Toto není vlastně chybová hláška sama o sobě, je to boot loader v MBR, který vám říká, ze kterého disku a z které partition se chystá bootovat. Problém je, že v této chvíli se proces zastavil.
Existují dva běžné důvody, proč se to stalo: nekompatibilita mezi BIOSem a OpenBSD MBR nebo problém s geometrií disku. Příklad špatné geometrie disku by byl pokud byste přesunuli disk z jednoho počítače do druhého, updatovali BIOS nebo změnili nastavení BIOSu, ačkoliv je často hlášeno, že se to může stát z neznámých důvodů během instalace.
Poznámka: Počínaje OpenBSD 3.1, problém s kompatibilitou BIOSu by měl být vyřešen prakticky na všech systémech. Nicméně je pořád možné mít problém s geometrií disku, takže je stále možné, že se systém zastaví na této hlášce.
Abyste opravili problém s kompatibilitou BIOSu, musíte přepsat boot loader nějakým, který je s vaším systémem kompatibilní. Naštěstí je lehké takový získat.
Toto vyžaduje abyste rebootovali váš systém. Protože nemůžeme z pevného disku nabootovat přímo, musíme použít bootovací disketu nebo CD-ROM, abychmo začali bootovací proces. Až se systém dostane k 'boot>' promptu, přesměrujte ho k bootování z pevného disku:
reading boot....... probing pc0 com0 com1 pci mem [639k 79m a20=on] disk hd0 fd0 >> OpenBSD BOOT 1.28 boot> boot hd0a:/bsd
Tento příkaz přesměruje bootovací proces k souboru /bsd na partišně 'a' vašeho prvního pevného disku, a dovolí tak systému nabootovat.
Jakmile systém jednou nabootuje, budete potřebovat instalovat bootloader BootEasy. Soubor samotný můžete nalézt jak na CD-ROM, tak na FTP v adresáři 3.0/tools/booteasy/Boot.bin a může být instalován následujícím fdisk(8) příkazem:
# fdisk -i -f /mnt/3.0/tools/booteasy/Boot.bin wd0
To předpokládá, že máte namontované CD s 3.0 v /mnt a že používáte IDE disk. Můžete to změnit na v závislosti na tom, kde je umístěn Boot.bin a jaký disk máte (SCSI disk bude typicky sd0). Poznámka: Nedělejte to, jestliže OpenBSD partišna nepokrývá celý váš disk! Inicialize MBR touto cestou vytvoří OpenBSD partišnu, která pokrývá celý disk a smaže ostatní partišny, což je zřídkakdy dobré.
BootEasy má další vlastnost, která vás může zajímat, jestliže máte problémy s defaultním bootloaderem: Je schopen vybrat bootovací partišnu při startu -- nechá vás vybrat z které partišny nabootovat a nabootuje z aktivní partišny, pokud nebyl proveden žádný výběr. To může být velmi užitečné pokud máte na vašem disku více operačních systémů. Instalace BootEasy touto cestou je přes MS-DOS pomocí BOOTINST.EXE, který naleznete v adreáři BootEasy na CD-ROM a FTP serverech.
Nabootujte z bootovacího disku Windows 9x nebo DOSu verze 6 s, který obsahuje FDISK.EXE. Jakmile je systém nabootován do MS-DOS promptu, zadejte následující:
A:\>fdisk /mbr
Měli byste vidět krátký přístup k disku a pak by vás příkaz měl vrátit do příkazového řádku bez žádné hlášky. "Bad command or file name" znamená, že disk, který jste použili neobsahuje FDISK.EXE. Pokud to uděláte správně, hláška "Using ..." bude odstraněna, protože se nahradil kód, který ji produkuje. Pokud máte problémy s kompatibilitou BIOSu, budou nyní pryč, rebootujte a začněte instalaci OpenBSD.
Bylo hlášeno, že toto funguje s FreeDOSem.
Další boot loader, OS-BS je na CD-ROM a dostupný z FTP v 2.9/tools/osbs135.exe. OS-BS web stánka je na http://www.prz.tu-berlin.de/~wolf/os-bs.html
Můžete použít také LILO. Pro detaily se podívejte na INSTALL.linux
Relativně málo strojů má problém s kompatibilitou BIOSu, ale jestliže nastavujete stroj, o kterém víte, že má tento problém, můžete se mu snadno vyhnout. OpenBSD bootloader je instalován je pokud odpovíte 'Y' na otázku 'Use entire disk for OpenBSD'. Pokud odpovíte 'N' a ručně vytvoříte OpenBSD partišnu, nebude bootloader přepsán dokud nepouřijete 'reinit' nebo 'update' příkazy fdisku. Toto samozřejmě předpokládá, že váš disk ZAČÍNAL nějakým bootloaderem -- pokud tomu tak není (nový disk, čistý disk vytažený z jiné platformy), budete muset instalovat nějaký bootloader před tím, než sytém nabootuje.
Ideálně byste se tomuto problému vyhnuli, tak, že zachováte tu samou geometrii, ne že ji budete opravovat, ačkoliv někdy se tomu nemůžete vyhnout. Příkladem by mohlo být vytažení velkého disku ze starého počítače, který nepodporuje LBA geometrii do nového stroje, který trvá na použití LBA.
Nastartujte stroj za použití bootovacího disku nebo CD-ROM jak je popsáno výše. NAlogujte se jako root a spusťte následující příkazy:
# cp /usr/mdec/boot /boot # /usr/mdec/installboot -v /boot /usr/mdec/biosboot wd0
Nabootujte, váš systém by měl naběhnout.
installboot(8) nainstaluje a nakonfiguruje boot loader, biosboot(8), kter7 nahraje boot(8). boot(8) je modul, který nahraje kernel do RAM. biosboot(8) má v sobě tabulku, která ukazuje na fyzické umístění (podle vašeho BIOSu) z boot(8). Pokud uděláte něco co změní náhled BIOSu na umístění boot(8), musíte znovu spustit installboot(8) jako výše abyste reinicializovali tabulku ukazující na boot(8).
Podívejte se na Install Boot pro více informací.Nenaštěstí, plná schopnost OS je dostupná až PO nahrátí OS do paměti a poté, co bootovací proces nastaví limity. Bootovací proces musí použít (a tím pádem je jím limitován) systémovou boot ROM. OpenBSD i386 boot loadery (biosboot(8) a boot(8)) mají svoje interní limity 8G ze starého limitu BIOSu.
Z tohoto důvodu musí být celý soubor /bsd (kernel) umístěn na disku v oblasti adresovatelné boot ROM nebo do 8G na disku, cokoliv z toho je menší. To znamená, že na některých starších počítačích i386 musí být root partišna umístěna v prvních 504M, ale pro většinu nových počítačů může být root partišna během prvních 8G.
Je možné instalovat 40G disk na starou 486 a nahrát na něj OpenBSD na jedné velké partišně a myslet si, že jste porušili výše uvedené pravidlo. Nicméně to být nepříjemné v několika ohledech:
Proč ? Protože když zkopírujete "přes" nový /bsd soubor, nepřepíšete ten starý, ale je umístěn na nové místo, pravděpodobně za hranicí prvních 504M. Boot loader nebyl schopen najít soubor /bsd a systém se zaseknul.
Abyste OpenBSD nabootovali, /bsd musí být v rozmezí podporovaném boot ROM. Pravidlo je jednoduché:
Celá root partišna musí být v rozmezí, které je adresovatelné BIOSem (nebo boot ROM) nebo během prvních 8G, cokoliv z toho je menší.
Existuje další důvod k rozdělení disku na partišny, než používat jednu velkou partišnu.
Starší verze MS-DOSu mohou pracovat pouze disky, které mají geometrii 1024
cylinderů nebo méně. Protože všechny nové disky mají více než 1024 cylindrů,
většina SCSI BIOSů (které jsou na SCSI řadiči) a IDE BIOSů (které jsou částí
BIOSU PC) mají volbu (někdy je defaultní) určenou k "překladu" skutečné
geometrie disku do nečeho co je v rámci možností MS-DOSu. Nicméně ne všechny
BIOSy provádějí tento překlad stejně. Pokud změníte váš BIOS (buď s novou
základní deskou nebo SCSI BIOSem) a ten nový používá rozdílný "překlad"
geometrie, nebudete schopni nahrát stage boot loader (tím pádem nebudete
schopni nahrát kernel). (To je proto, že first stage boot loader obsahuje
seznam bloků které skládají /boot v rámci originální "přeložené"
geometrie).
Pokud používáte IDE disky, a provedete změny ve vašem nastavení BIOSu, můžete
nechtěně) změnit také překlady (většina IDE disků nabízí 3 různé překlady.)
Abyste spravili váš boot block abyste mohli nabootovat normálně,
vložte bootovací disketu do drivu (nebo použijte bootovatelný
CD-ROM) a na příkazovém promptu napište "b hd0a:/bsd", čímž
vynutíte boot z prvního hard disku (a ne z floppy). Vaše
mašina by měla naběhnout normálně. Teď budete potřebovat updatovat
first stage boot loader abyste viděli novou geometrii (a znovu
zapsat boot blok podle toho).
Náš příklad bude předpokládat že boot disk je sd0 (ale pro IDE disky to bude
wd0, atd..):
# cd /usr/mdec; ./installboot /boot biosboot sd0
Pokud si installboot stěžuje že nemůže číst geometrii BIOS, v boot> promptu můžete zadat "machine diskinfo" (nebo krátce "ma di") aby se vytiskla požadovaná informace. Vyplňte hodnoty "heads" a "secs" pomocí flagů -h a -s, repsektive modifikujte installboot příkaz tak, aby vypadal následovně:
# cd /usr/mdec; ./installboot -h <heads> -s <secs> /boot biosboot sd0
Pokud ne vyžadovaná nová verze bootblocků, budete potřebovat zkompilovat tyto sami. To uděláte jednoduše:
# cd /sys/arch/i386/stand/ # make && make install # cd /usr/mdec; cp ./boot /boot # ./installboot /boot biosboot sd0 (or whatever device your hard disk is)
Pokud plánujete provozovat něco co se dá nazvat produkční server, je rozumné mít nějakou formu zálohování v případě, že některý z vašich pevných disků padne.
Tato informace vám pomže v používání standartních utilit dump(8)/restore(8) dodávaných s OpenBSD. Lepší utilita nazvaná "Amanda" lze použít pro více serverů sdíljících jednu páskovou jednotku. V většině prostředí je kombinace dump(8)/restore(8) dostačující. Nicméně jestliže potřebujete zálohovat více strojů na jednu pásku, může stát výzkum Amandy za to.
Příklady pro zařízení v tomto dokumentu jsou pro konfiguraci která zahrnuje SCSI disky a pásku. V produčním prostředí jsou SCSI disky doporučovány kvůli způsobů jakým zacházejí se špatnými bloky. Tím nechceme říci, že tyto informace budou zbytečné v případě že použíáte IDE disky, jenom se situace bude mírně lišit. Například sd0a by bylo v IDE systému wd0a.
Zálohování na pásku vyžaduje znalost místa, kde jsou namontovány filesystémy. To můžete zjistit pomocí příkazu mount(8) v shellu. Měli byste dostat výstup podobný tomuto:
# mount /dev/sd0a on / type ffs (local) /dev/sd0h on /usr type ffs (local)
V tomto příkladě je root (/) filesystem umístěn fyzicky na sd0a, což indikuje pevná disk SCSI 0, diskový oddíl a. Filesystém /usr je na sd0h, což je pevný disk SCSI 0, diskový oddíl h.
Další příklad více komplikované tabulky by mohl být:
# 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)
V tomto komplikovanějčím příkladě je root (/) filesystem fyzicky na sd0a. Filesystém /var je na sd0d, /home je na sd0e a konečně /usr je na sd0h.
Abyste zálohovali váš stroj budete potřebovat dodat dumpu jméno každého pevného diskového oddílu. Zde je příklad příkazů potřebných pro jednodušší mount tabulku uvedenou výše:
# /sbin/dump -0au -f /dev/nrst0 /dev/rsd0a # /sbin/dump -0au -f /dev/nrst0 /dev/rsd0h # mt -f /dev/rst0 rewind
Pro složitější tabulku, byste použili nšco jako:
# /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 # mt -f /dev/rst0 rewind
Můžete si přečíst manuálovou stránku abyste se dozvěděli co přesně dělá který přepínač. Zde je krátký popis parametrů popsaných výše:
Nakonec kterýž diskový oddíl chcete zálohovat (/dev/rsd0a, atd.)
Příkaz mt je použit k přetočení pásky. Přečtěte si manuálovou stránku abyste se dozvěděli více options. (jako např. eject).
Pokud si nejste jistí jménem páskového zařízení, použijte dmesg k tomu, abyste jej lokalizovali. Příklad záznamu páskového zařízení v dmesg by vypadal asi takto:
st0 at scsibus0 targ 5 lun 0: <ARCHIVE, Python 28388-XXX, 5.28>
Možná jste zaznamenali, že když zálohujete je k páskovému zařízení přistupováno jako k "nrst0" namísto "st0", což je jméno které je uvedeno v dmesg. Když přistupujete k st0 jako k nrst0, přistupujete k tomu samému fyzickému zařízení, ale říkáte tím, aby se jednotka nepřevinula až dojde na konec a aby se k ní přistupovalo v raw modu. Abyste zálohovali více systémů na jednu pásku, ujistěte se, že používáte non-rewind zařízení, protože kdybyste použili rewind zařízení (rst0) na zálohování více systémů, dopadlo by to tak, že byste si přepsali filesystém s dalším dumpem na pásku. Příslušný popis různých rozhraní k páskovým zařízením můžete najít v manuálové stránce dumpu.
Pkud jste chtěli napsat malý skript nazvaný "backup", mohl by vypadat nějak takto:
echo " Startuji Plnou Zálohu..." /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 " Přetáčím pásku, čekejte prosím..." mt -f /dev/rst0 rewind echo "Hotovo." echo
Pokud požadujete zálohy každou noc, použijte cron(8) pro automatický start zálohovacího skriptu.
Dále vám může pomoci napsat si (na kus papíru) jak velké by měly být jednotlivé filesystémy. Můžete použít df -h na zjištění kolik místa zabírají jednotlivé dikoé oddíly. To bude užitečné když disk spadne a vy budete potřebovat znovuvytvořit tabulku diskových oddílů na novém disku.
Znovuobnovení vašich dat vám pomůže zmenšit fragmentaci. Abyste se ujistili, že dostanete všechny soubory, nejlepší způsob jak zálohovat je rebootovat vás sytem v single módu. File systémy nepotřebují být namontovány k tomu aby mohly být zálohovány. Nezapomeňte namontovat root (/) r/w po rebootu v single modu nebo váš dump spadne když se bude pokoušet zapsat data dumpu. Napište bsd -s v boot> promptu abyste se dostali do single modu.
Poté co jste zálohovali vaše filesystémy poprvé, byl by dobrý nápad otestovat vaši pásku a ujistit se, že na ní jsou data ve stavu v jakém jste očekávali.
Můžete použít následující příklad k tomu abyste si prohlédli seznam souborů na pásce:
# /sbin/restore -tvs 1 -f /dev/rst0
To vylistuje seznam souborů které jsou na prvním diskovém oddílu pásky. S informacemi uvedenými výše můžeme říct, že 1 bude váš root (/) file system.
Abyste si prohlédli co je uloženo na druhém diskovém oddílu, přesměrujte výstup do souboru, použijte něco jako:
# /sbin/restore -tvs 2 -f /dev/rst0 > /home/me/list.txt
Pokud máte mount tabulku podobnou té v jednodušším příkladu, 2ka by byla /usr, pokud je vaše složitější, tak 2ka by mohla být /var nebo jiný fs. Sekvenční čílo se shoduje s pořadím vkterém jsou file systémy azapisovány na pásku.
Příklad scénáře vypsaného dále by mohl být užitečný pokud vám spadl disk kompletně. V případě že budete chtít obnovit pouze jeden soubor, podívejte se na manuálovou stránku a věnujte pozor instrukcím pro interaktvní mod.
Pokud jste se pořádně připravili, výměna disku a obnova dat bude velmi rychlý proces. Standartní instalční/bootovací disketa s OpenBSD už obsahuje požadovanou utilitu restore stejně jako binárky nutné k tomu abyste udělali nový disk bootovatelný. Ve většine případů jsou tato disketa a páska se zálohou vše co potřebujete abyste obnovili data a znovu se rozjeli.
Jakmile jste fyzicky vyměnili disk, základní kroky jak obnovit vaše data by byly:
Nabootujte OpenBSD instalační/bootovací disketu. V selekci menu zvolte Shell.
Ochraňte disketu proti zápisu a vložte vaši poslední pásku se zálohou do
jednotky.
Použijte příkaz fdisk(8) vytvořte priární diskovou oblast pro OpenBSD na tomto nově nainstalovaném disku. Příklad:
# fdisk -e sd0
Více informací je v fdisk FAQ.
Použijte příkaz disklabel, vytvořte znovu tabulku vašch diskových oddílů pro OpenBSD, kterou jste právě vytvořili fdiskem. Příklad:
# disklabel -E sd0
(Nezapomeňte na swap, přečtěte si disklabel FAQ)
Pužijte příkaz newfs pro vytvoření čistého filesystémy na každém diskovém oddílu který jste vytvořili v předchozím kroku. Příklad:
# newfs /dev/rsd0a # newfs /dev/rsd0h
Namontujte váš nově připravený root (/) file system do /mnt. Příklad:
# mount /dev/sd0a /mnt
Přesuňte se do toho namontovaného file systemu a začněte restore proces. Příklad:
# cd /mnt # restore -rs 1 -f /dev/rst0
Budete chtít aby vás disk byl bootovatelný, použijte následující k tomu, abyste zapsali nový MBR na disk. Příklad:
# fdisk -i sd0
Dále budete potřebovat instalovat nové boot bloky k tomu, abyste mohli z tohoto MBR nabootovat. Následující krátký příklad to provede:
# cp /usr/mdec/boot /mnt/boot # /usr/mdec/installboot -v /mnt/boot /usr/mdec/biosboot sd0
Váš nový root file system na pevném disku by měl být dostatečně připraven na to, abyste z něj mohli nabootovat a pokračovat v obnově zbytku vašich file systémů. Protože operační systém není ještě kompletní, ujistěte se, že zpátky nabootujete v single módu. V promto zadejte následující příkazy k tomu abyste odmontovali a haltovali systém:
# umount /mnt # halt
Vyndejte instalační/bootovací disketu z drajvu a rebootujte vás systém. V boot> promptu OpenBSD zadejte následující příkaz:
boot> bsd -s
bsd -s nastartuje systém v single módu, což vyžaduje pouze root (/) file system.
Předpokládejme, že jste provedli všechny kroky uvedené výše správně a nestalo se nic špatně, tj. že jste dostali prompt s tím abyste zadali cestu k shellu a zadali return. Zadejte return a dostanete se do shellu. Dále budete chtít remountovat root v r/w modu, to uděláte následujícím příkazem:
# mount -u -w /
Jakmile jste remountovali v r/w módu, může pokračovat s obnovou vašich filesystémů. Příklad:
(jednoduchá mount table) # mount /dev/sd0h /usr; cd /usr; restore -rs 2 -f /dev/rst0 (složitější mount table) # mount /dev/sd0d /var; cd /var; restore -rs 2 -f /dev/rst0 # mount /dev/sd0e /home; cd /home; restore -rs 3 -f /dev/rst0 # mount /dev/sd0h /usr; cd /usr; restore -rs 4 -f /dev/rst0
mohli byste použít "restore rvsf" namísto pouhého rsf k tomu, abyste viděli obnovování objektů z dumpu.
Nakonec poté co jste dokončili obnovu všech filesystémů na disk, rebotojte do multiuser módu. Pokud šlo všechno tak jak jste plánovali, bude váš systém zpátky ve stavu v jakém byla provedena poslední záloha a bude připraven k dalšímu použití.
Abyste namontovali v OpenBSD disk image (ISO images, diskové images vytvořené pomocí dd, atd.) musíte konfigurovat zařízení vnd(4) Na příklad pokud máte ISO image v /tmp/ISO.image, následující kroky vám tento image namontují.
# vnconfig svnd0 /tmp/ISO.image # mount -t cd9660 /dev/svnd0c /mnt |
Všimněte si, že toto je CD image, takže při montování musíte specifikovat typ cd9660. To platí nezávisle na typu, například musíte zadat typ ffs pokud montujete diskové images.
K tomu abyste odmontovali image, použijte následující príkazy:
# umount /mnt # vnconfig -u svnd0 |
Více informací naleznete v manuálové stránce vnconfig(8) man page.
PCI IDE DMA je nespolehlivá s mnoha kombinacemi hardware. Ještě donedávna se většina "mainstreamových" operačních systémů, které tvrdily, že podporují DMA transfery na IDE discích nedodávala s touto vlastností defaultně zapnutou.
OpenBSD je agresivní a poukouší se použít nejvyšší DMA mód, který může konfigurovat. Tímto ale dochází k narušení přenosů dat u některých nastavení, kvůli chybovému chipsetu zakládní desky, chybovým driverům a/nebo šumu na kabelu. Naštěstí Ultra-DMA mód přidává k datům CRC pro detekci těchto narušení. Pokud Ultra-DMA CRC je chybná, OpenBSD vypíše chybovou hlášku a zkouší transfer provést ještě jednou.
wd2a: aborted command, interface CRC error reading fsbn 64 of 64-79 (wd2 bn 127; cn 0 tn 2 sn 1), retrying
Po několikerém selhání OpenBSD sníží konfiguraci na pomalejší (doufejme, že spolehlivější) Ultra-DMA mód. Pokud je dosaženo Ultra-DMA módu 0, řadič disku downgraduje na PIO mód.
Pokud vaše OpenBSD úspěšně nedowngraduje konfiguraci přenosového módu nebo tento proces způsobí, že stroj natvrdo zatuhne, napište prosím zprávu o chybě.
a name= "IDEDMA">Kódu realizující obsluhu zařízení PCI IDE v jádře nemusí znát chipset vašeho řadiče. Pokud se tak stane, dostanete při startu zprávu jako:
Pokud jste ten případ, můžete se pokusit ještě stále DMA zprovoznit. Provedete to tak, že ve vašem konfiguračním souboru jádra přidáte k záznamu patřícímu pciide řadiči volbu 'flags 0x0001'. Daná řádka v konfiguračním souboru jádra pak bude vypada např. takto:pciide0: DMA, (unused)
S touto úpravou zkusí pciide kód v jádře použít DMA mód bez ohledu na to, jestli ví, jak to udělat u vašeho chipsetu. Pokud se mu to podaří úspěšně a váš systém projde přes fsck a startovací rc skripty, je velmi pravděpodobné, že to bude fungovat trvale. Pokud tento způsob nefunguje a systém vytuhne nebo po nastartování skončí na kernel panic, pak nemůžete použít DMA mód (alespoň do té doby, než je přidána podpora pro váš chipset). Poznamenjme jen, že pokud někde najdete dokumentaci k vašemu chipsetu PCI-IDE řadiče, pak jste na dobré cestě, aby váš chipset byl zcela podporován pod OpenBSD. Můžete zkusit hledat třeba na webové stránce výrobce nebo mu zavolat. Pokud váš PCI-IDE řadiče je součástí základní desky, zjistěte výrobce chipsetu a od něho dokumentaci.pciide* at pci ? dev ? function ? flags 0x0001
To, že DMA podpora u vašeho hardware byla pod OpenBSD zapnuta zjistíte pohledem na dmesg, konkrétně něco jako:
Výše uvedené znamená, že řadič pciide0, kanál 1, zařízení 0 (které se jeví jako ATAPI CD-ROM) používá DMA data transfery.cd0(pciide0:1:0): using PIO mode 3, DMA mode 1
V současné době nemůže být root partišna mirrorovaná pomocí RAIDframe na OpenBSD, to se ale změní s další release OpenBSD. Počínaje OpenBSD 3.1 může být root partišna přímo mirrorována na OpenBSD použitím opšny "Autoconfiguration" v RAIDframe. Předchozí vydání OpenBSD nemohly mít root partišnu takto mirrorovanou.
Mnoho OpenBSD platforem zahrnuje podporu pro různé RAID produkty. Tyto se liší od platformy, podívejte se na příslušnou stránku (zde).
Další možnost, která je dostupná pro mnoho platforem je jeden z mnoha produktů, které zpřístupňují několik disků, tak že se celek chová jako jeden IDE nebo SCSI adaptér. Tyto zařízení mohou pracovat na skoro jakékoliv platformě, která podporuje IDE nebo SCSI.
Někteří výrobci těchto produktů: (Poznámka: tyto jsou pouze produkty, které používají někteří uživatelé OpenBSD -- toto není úplný seznam.)Často jsou kladenou otázkou na mailing listech je "Je podporován Promise nebo HighPoint IDE RAID kontrolér ?". Odpověď je "Ne". Tyto karty a čipy nejsou opravdové RAID kontroléry, ale BIOS asistované bootvání softwrového RAIDu. Protože OpenBSD už podporuje softwarový RAID v hardware nezávislým způsobem, není příliš ochoty mezi OpenBSD developery implementovat speciální podporu pro tyto karty.
[Zpět na Hlavní Index] [Na Sekci 13.0 - IPsec]
www@openbsd.org
Originally [OpenBSD: faq14.html,v 1.71 ]
$Translation: faq14.html,v 1.17 2003/11/02 21:49:27 certik Exp $
$OpenBSD: faq14.html,v 1.17 2003/11/03 14:19:31 horacio Exp $