Instalujeme FreeBSD do UFS mirroru
1. srpna 2019Instalace FreeBSD díky bsdinsallu je jednoduchý proces, kdy během pár minut máte na disku plně funkční operační systém. Pokud ale potřebujete nainstalovat FreeBSD do mirroru (zrcadlení dvou disků) na UFS, potom musíte spustit příkazový řádek a provést některé operace manuálně.
K osvojení této praktiky potřebujete instalační médium s FreeBSD a počítač se dvěma disky. Pojedeme trochu svižněji, ať se u toho moc nezadrbem.
Spuštění instalace
Po naběhnutí instalátoru naskočí uvítací obrazovka. Zvolíme krok pokračovat až do části “Partitioning”, kde vybereme položku “Shell” a spustíme tak příkazový řádek.

Zjištění disků
Seznam všech disků v počítači zjistíme příkazem geom disk list nebo camcontrol devlist.
# camcontrol devlist
<KINGSTON SA400S37120G SBFK59E1> at scbus1 target 0 lun 0 (pass0, ada0)
<KINGSTON SA400S37120G SBFK1BK1> at scbus2 target 0 lun 0 (pass1, ada1)
<AHCI SGPIO Enclosure 1.00 0001> at scbus7 target 0 lun 0 (pass2, ses1)
<USB 2.0 USB Flash Drive 0.00> at scbus8 target 0 lun 0 (pass3, da0)Vymázání původních oddílů
Testovací stroj obsahuje dva SATA disky označené jako ada0 a ada1. Na tyto dva disky budeme instalovat operační systém do mirroru. Pokud
disky obsahují nějaké oddíly, vymažeme je příkazem gpart destroy.
# gpart destroy -F ada0
# gpart destroy -F ada1Takto kompletně smažeme disky s primárním i záložním GPT oddílem. Nyní jsou disky připravené k instalaci.
Vytvoření mirroru
Nyní vytvoříme mirror na dvou discích. K tomu potřebujeme načíst jaderný modul geom_mirror.ko. Dále bude následovat příkaz k vytvoření
mirroru a jeho pojmenování.
# gmirror load
# gmirror label -v gm0 ada0 ada1gm0 je název mirroru. Hned po vytvoření mirroru se objeví nové zařízení v /dev/mirror/. Takto je mirror nakonfigurovaný k automatické
synchronizaci dat. Parametr -n v příkazu výše zakáže automatickou synchronizaci.
Vytvoření mirroru bez autosynchronizace
Spousta administrátorů nechce autosynchronizaci při výměně vadného disku za nový. K tomu slouží stejný příkaz jako výše, akorát připojíme
parametr -n. Tím docílíte, že se disky po výměně nebudou sami synchronizovat.
# gmirror load
# gmirror label -n -v gm0 ada0 ada1Vytvoření oddílů
V tomto příkladu uvedu klasické rozdělení mirroru na oddíly. Všchny oddíly budou zarovnané na 1 MB, což vyhovuje i 4k diskům, a každý bude mít
označení. Poslední oddíl /usr/ vyplňuje zbytek mirroru.
# gpart create -s gpt mirror/gm0
# gpart add -t freebsd-boot -l boot -s 512K mirror/gm0
# gpart add -t freebsd-swap -l swap -s 16g -a 1m mirror/gm0
# gpart add -t freebsd-ufs -l root -s 8g -a 1m mirror/gm0
# gpart add -t freebsd-ufs -l tmp -s 8g -a 1m mirror/gm0
# gpart add -t freebsd-ufs -l var -s 16g -a 1m mirror/gm0
# gpart add -t freebsd-ufs -l usr -a 1m mirror/gm0Soubor fstab
V návaznosti na rozdělení disku na oddíly vytvoříme soubor /tmp/bsdinstall_etc/fstab, kde specifikujeme místo, kam se mají jednotlivé oddíly připojovat.
/dev/gpt/swap none swap sw 0 0
/dev/gpt/root / ufs rw 1 1
/dev/gpt/tmp /tmp ufs rw 2 2
/dev/gpt/var /var ufs rw 2 2
/dev/gpt/usr /usr ufs rw 2 2Boot loader
Nyní máme mirror připravený k použití. Musíme jenom určit, odkud bude operační systém bootovat.
# gpart bootcode -b /boot/pmbr -p /boot/gptboot -i 1 mirror/gm0
partcode written to mirror/gm0p1
bootcode written to mirror/gm0Vytvoření souborového systému
V případě SSD disku použijeme parametr -t kvůli funkci TRIM, u normálních disků parametr -t vynecháme. Parametr -U je pro povolení
soft updates a parametr -L root je pojmenování oddílu.
# newfs -t -U -L root /dev/gpt/root
# newfs -t -U -L tmp /dev/gpt/tmp
# newfs -t -U -L var /dev/gpt/var
# newfs -t -U -L usr /dev/gpt/usrPřipojení souborového systému
Instalátor předpokládá, že se souborový systém nachází v adresáři /mnt. Nejřív musíme připojit root oddíl.
# mount /dev/gpt/root /mntPak vytvoříme jednotlivé adresáře.
# mkdir /mnt/tmp
# mkdir /mnt/var
# mkdir /mnt/usrKteré následně připojíme.
# mount /dev/gpt/tmp /mnt/tmp
# mount /dev/gpt/var /mnt/var
# mount /dev/gpt/usr /mnt/usrNyní máme manuální rozdělení disku pro mirror hotové. Napište do příkazového řádku exit a instalace bude automaticky pokračovat.
Poinstalační nastavení
Pokud proběhla instalace bez potíží, dostanete se na obrazovku s názvem “Manual Configuration”.

Zde odpovíme “Yes” a spustíme opět příkazový řádek. Zajistíme, aby se načítal gmirror modul při nabíhání operačního systému.
# echo 'geom_mirror_load="YES"' >> /boot/loader.confVolitelně můžeme přidat řádek do souboru /etc/periodic.conf, abychom byli informováni emailu o stavu našeho mirroru (musíte mít nastavený
odesílání emailů).
# echo 'daily_status_gmirror_enable="YES"' >> /etc/periodic.confZkontrolujte, zda jsou disky synchronizované. Poté stačí do příkazové řádky napsat exit a následně vyberte z nabídky reboot.
Výměna vadného disku
V tomto příkladu předpokládejme, že vadný disk je ada1 a jméno gmirroru je gm0. Dávejte opravdu dobrý pozor, jaký disk selhal a dvakrát si rozmyslete, než začnete psát následující příkazy.
Vyměňte vadný disk za nový stejné nebo větší velikosti a ujistěte se, že nový disk je prázdný a bez rozdělení na oddíly.
# gpart show ada1V případě potřeby vymažte metadata na disku.
# gpart destroy -F ada1Po vyměnení vadného disku by se měla spustit synchronizace automaticky. Pokuď ne, musíte spustit synchronizaci ručně příkazama:
# gmirror forget gm0
# gmirror insert gm0 ada1Počkejte, až se zesynchronizují oba disky. Stav zjistíte příkazem gmirror status. Po synchronizaci máte opět plně funkční systém.