30.7.2004

BADBLOCKS A INSTALACE FREEBSD KROK ZA KROKEM

Filed under: FreeBSD — nax @ 21:39

P??edevč?rem se mi n?jak sesypal disk. Prost? jsem cht?l nainstalovat zdroj??ky BSD podle n??vodu na instalaci FreeBSD sekce H, dal jsem po p???slu??n? ??prav?:

cvsup /usr/standard-supfile

no a zrovna kdy? jsem na druh? konzole m?nil CFLAGS v make.conf na n?co p??esn? pro Crusoe, tak kouk??m ?e n?jak moc hrabe disk. P??epnul jsem se na prvn? disk (tam se ty zdroj??ky u? stahovali minim??ln? p??l hodiny) a j??dro tam vypisovalo n?jak? errory o disku (moc jsem to nezkoumal, ale nevypadalo to zrovna na nedostatek m?sta na disku). Kdy? jsem zm??čkl Ctrl+C tak to skončilo s kernel panic. Po rebootu to v?dy vyhodilo po p??ipojen? partitions kernel panic a ??lo to do rebootu a jedin? kdy to neud?lalo, kdy? jsem dal boot do jednou?ivatelsk?ho re?imu.

fsck -y

sem d??t musel, proto?e to h??zelo opravdu tuny chyb a j?? sem p??i tom zač?nal tu??it ?e s touhle instalac? se m???u rozloučit. Sice jsem zkusil nabootovat po tom co to opravilo v??echny nesrovnalosti, ale potvrdili se moje nejhor??? obavy: nedalo se ani p??ihl??sit (psalo to ?e chyb? n?jak?? d??le?it?? knihovna).

M?l jsem strach, ?e v tom notebooku je ??patn?? disk a tak jsem se odhodlal otestovat z??pisov??m testem ten disk. Na??el jsem k tomu hezk?? n??vod Testing your hard drive in Linux. Nabootoval jsem tedy z v??born?ho hypermini CD (velikosti vizitky) distribuce BBC LNX a pou?il jsem tohle:

badblocks -b 4096 -p 3 -c 8000 -w -s /dev/hda1

POZOR! Tohle je destruktivn? test, kdy se na disk zapisuje a pak se z n?ho čte a zji????uje se jestli je to to co se tam zapsalo. Jak jsem dosp?l k hodnot? parametru c? Inu pomoc? free jsem si zjistil ?e m??m voln??ch zhruba 70MB RAM, a vypoč?tal jsem to n??sledovn?:
70M /( 2 * 4096 )
V podstat? je ???douc? aby to č?slo bylo co nejvy????? aby test trval co nejkrat??? dobu. Na tom m?m notebooku to trvalo ????dov? hodiny, s t?m ?e ten test prob?hl celkem asi 12x.

No a p??ed chv?l? jsem se pustil do instalace nov?ho FreeBSD a napadlo m?, ?e si krok za krokem zaznamen??m sv??j postup:

* boot 5.2.1-RELEASE-i386-miniinst.iso CD a pak vynd??n? PCMCIA CD-ROM a m?sto n? do d??t wifi s???ovku (jen p??ipom?n??m, ?e m??m jen jeden PCMCIA slot). FreeBSD kernel se s ztr??tou jednoho ??adiče a objeven? se onov? karty vyrovn?? ??pln? uk??zkov? – jen na druh? konzoly vyp???e informaci co se stalo a co je to za kartu) je pot??eba v Options na volb? Re-scan Devices stisknout mezern?k, aby o nov? kart? v?d?lo nejen j??dro, ale i ten instalačn? program b???c? v userspace.

* Volba Expres setup a na cel? prvn? polovin? disku vytvo??it BSD slice (od 63 do 11791583 bloku) celkem 11791521 bloku velkou a typu 165 (ob? ty volby mi samoz??ejm? nab?dlo proto?e jsem na zač??tku druh? poloviny disku m?l ji? vytvo??enou partition pro hibernaci typu 160 – thinkpad hibernation partition).

* Zvolil jsem u v??b?ru co s MBR volbu Standard (druh?? v po??ad?) aby jen čist? bootoval BSD (na druh? p??lce disku chci nainstalovat časem Gentoo a fin??ln? se bude o MBR starat lilo). P??i prvn? instalaci jsem zvolil BootMgr (prvn? volbu) ale to m?? za n??sledek, ?e tem boot manager v??m na zač??tku nab?dne boot ze v??ech primary partitions (tak?e je tam vid?t i ta hibernačn?, ale bootovat z n? nejde).

* Tu p??lku disku (tedy asi 6GB) sem rozd?lil n??sledovn?:
ad0s1a / 500M
ad0s1b swap 250M (m??m 128MB RAM, ale 20 z toho zabere procesor pro sw emulaci i386)
ad0s1d /var 200M
ad0s1e /usr zbytek

* Zvolil jsem Minimal a v Custom pak je??t? man a info (krom? toho co u? bylo vybr??no)

* N??sledoval v??b?r m?dia. Proto?e jsem doma za firewallem (a n?jak jsem se je??t? po????d nedostal k tomu, abych na serveru rozb?hal modul do j??dra umo???uj?c? i p??es to pou??vat aktivn? re?im ftp) zvolil jsem FTP passive. Z nab?dnut??ch server?? jsem vybral ftp.cz.freebsd.org (3xPgDown) a jeliko? jsem ud?lal po vlo?en? karty ten Re-scan v Options, tak z nab?dnut??ch interfac?? vyberu wi0 (btw jako s???ov?? interface je tu i firewire – ??koda ?e nem??m v n?jak?m poč?tači druh?? takov?? port). Pak stačilo donastavit jm?no a dom?nu stroje a u? se to instalovalo.

* Po st??hnut? a rozbalen? bal?k?? (prob?h?? automaticky) jsem dal rovnou reboot. N?jak dlouho to vyselo na ??vodn? obrazovce (bios se z??ejm? se ztr??tou ??adiče nevyrovnal tak hladce jako freebsd) tak jsem to vypnul a znovu zapnul tlač?tkem power. Teď u? nab?hlo samotn? freebsd.

* P??ihl??sil jsem se (p??i prvotn?m nastaven? syst?mu root nemus? zadat heslo) a hned jsem podle čl??nku na rootu zm?nil v /etc/login.conf hodnotu :passwd_format na blf. Podle autora čl??nku je to nejsiln?j??? ??ifrov??n?. Zbytek jsem nechal tak jak je a nastavil jsem heslo roota:
passwd root

* Nainstaloval jsem bash, openssh, screen, wget a cvsup-without-gui
pkg_add -r bash openssh screen cvsup-without-gui

* Zm?nil jsem default shell roota na sv??j obl?ben?? bash a pro jistotu taky sm?nil shell druh?ho roota s n??zvem toor na /bin/csh (proto?e bash je jako program extern? nainstalovan?? v /usr/local/bin/ tak aby se alespo?? jeden root mohl p??ihl??sit kdyby se z n?jak?ho d??vodu nenamountil svazek /usr)
pw user mod root -s /usr/local/bin/bash
pw user mod toor -s /bin/csh
passwd toor

* P??idal jsem obyčejn?ho u?ivatele nax pat???c?ho do skupiny wheel (proto?e jen u?ivatel? z t?to skupiny mohou ud?lat su – a t?m se pov????it na roota). Stač? adduser a pak se v??s to postupn? zept?? na v??e pot??ebn?.

* Do souboru /etc/rc.conf jsem p??idal ????dky:
sshd_program=”/usr/local/sbin/sshd”
sshd_enable=”YES”
a pustil /etc/rc.d/sshd start

* Podle ji? jednou zm?n?n?ho čl??nku na rootu jsem vytvo??il v??e pot??ebn? na sledov??n? zm?n v konfiguračn?ch souborech:

# mkdir /etc/RCS
# ci /etc/rc.conf
/etc/RCS/rc.conf,v < -- /etc/rc.conf enter description, terminated with single '.' or end of file: NOTE: This is NOT the log message! >> defaultni /etc/rc.conf s pridanymi vlastnostmi na start sshd
>> .
initial revision: 1.1
done
# co /etc/rc.conf
/etc/RCS/rc.conf,v –> /etc/rc.conf
revision 1.1
done

* Ud?lal jsem dal??? ??pravy do rc.conf ale nejd???v ho vyt??hnu ze spr??vy RCS:
# co -l /etc/rc.conf
font8x14=”iso02-8×14″
font8x16=”iso02-8×16″
font8x8=”iso02-8×8″
nfs_server_enable=”NO”
sendmail_enable=”NO”
syslogd_enable=”YES” # Run syslog daemon (or NO).
syslogd_flags=”-ss” # Syslogd flags to not bind an inet socket
clear_tmp_enable=”YES” # Clear /tmp at startup.
moused_enable=”YES”

a po zm?n? tyto zase commitnou:
# ci /etc/rc.conf
Kdy? bych cht?l pak n?kdy obnovit stav p??ed zm?nou, tak nap???u:
# co -u /etc/rc.conf

* Vytvo??il jsem nov?? soubor /etc/sysctl.conf s t?mto obsahem:
hw.acpi.power_button_state=S5
hw.acpi.sleep_button_state=S4
hw.acpi.lid_switch_state=S4
hw.acpi.standby_state=S4
hw.acpi.suspend_state=S3

* Do souboru /etc/profile jsem si nastavil PS1 (aneb jak bude vypadat v??zva bashe (m??m pravidlo, ?e na ka?d?m poč?tači kter?? spravuji mus? vypadat v?dy v??zva shellu jinak – z bezpečnostn?ch d??vod??: ono zahaltovat ??patnou ma??inu nen? v?dy OK)

* Podle MadPenguin FreeBSD Install Guide jdu na kompilaci world:
# cp /usr/share/examples/etc/make.conf /etc/make.conf
# cp /usr/share/examples/cvsup/standard-supfile /usr
# cp /usr/share/examples/cvsup/ports-supfile /usr
# chmod u+w /etc/make.conf /usr/standard-supfile /usrrts-supfile
Pak jsem nastavil v souboru /etc/make.conf
CPUTYPE=i686
CFLAGS= -Wall -pipe -mpreferred-stack-boundary=2 -falign-functions=0 -falign-jumps=0 -falign-loops=0 -O2 -fomit-frame-pointer
Zhruba s t?mahle CFLAGS se toti? kompiluje linuxov?? kernel, kdy? je za??krtnut? aby byl optimalizov??n pro procesor Transmeta Crusoe. No a vzhledem k tomu, ?e Linus Tornvalds, kter?? je otcem a hlavn?m v??voj????em j??dra doned??vna pracoval pr??v? pro Transmetu mysl?m, ?e nen? lep???ho m?sta ne? pr??v? tady pro z?sk??n? optim??ln?ho CFLAGS. Jen jsem musel odendat volby:
-msoft-float -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common
proto?e zp??sobovali p??d u n?kter??ch aplikac? z buildworld.

Comments are closed.

Powered by WordPress