make installworld failure (case study)

7 отговора 286 прегледа
#1

make installworld failure (case study)

Една от най-критичните операции за FreeBSD - make installworld и съответно - една от най-сигурните и въпреки това, ако не спазим някои елементарни условия, може да завърши с неуспех.

Как се възстановява системата след подобен случай? Естествено форматират се дисковете и се преинсталира. Затова не бива да допускаме да се случва. Нека си повторим правилата за лек и безавариен update на системата:
1. sync на source (cvs/cvsup)
2. конфигурация на кернел
3. cd /usr/src, make buildkernel KERNCONF=<IDENT>
4. cd /usr/src, make buildworld
5. mergemaster -p
6. make installkernel KERNCONF=<IDENT>
7. restart, boot -s
8. mount -a
9. cd /usr/src, make installworld
10. mergemaster
11. reboot

Ако спазим тази процедура, имаме гаранцията, че всичко ще мине безпроблемно - до там, докъдето изобщо е възможно да бъде гарантирано (тоест не се гарантира, че ще успее make installworld ако спре тока по средата ..)

Когато обаче работата опре до remote машина, нещата стават меко казано сложни. Например доста пъти досега съм успявал да направя make installkernel и make installworld без рестарт на машина, която обслужва клиенти през това време. Само че снощи не успях. И досега си мисля, че ако бях рестартирал след make installkernel в multiuser mode и бях направил make installworld с новия кернел, нямаше да се счупи. Но не го направих и си представете емоцията да видиш лаконичния надпис Error в този момент.
Защо грешка при make installworld е толкова фатална и отделен въпрос, но както казах - лекарството е да се форматират дисковете и да се преинсталира BSD-то.

Е какво ако не можеш да си го позволиш?
Аз например нямаше как да направя това.
Пиша цялото въведение до тук, за да споделя извода, до който стигнах на края - ако смятате да нарушите която и да е точка от последователността по update на системата (причините да се прави сигурно ще да са сериозни и включват и неприятни ограничения за downtime на машината), не го правете без да имате CD с последния release под ръка.

Това, което също може да се приложи като лекарство, е да се инсталира base дистрибуцията от CD-то (на label от инсталационната програма трябва да се посочи кой partition къде се mount-ва, но без да се форматира), да се зачистят поразиите из source - тоест rm -rf /usr/obj/*, cd /usr/src, make clean, и да се започне отново, този път по-внимателно.
Да, ама ..
1. Имах стар release на CD (5.0) - когато го инсталирах, make buildkernel директно плюеше грешка още в Makefile-a. Наложи се да свалям 5.2.1.iso по спешност. (лирично отклонение: Абе, DarkStar, какво е това шантавото NT ftp дето си пуснал там?? :) Не разбира PASV - трябва да му кажеш PASSIVE и съответно забрави wget да свали нещо оттам .. свалял съм на ръка с ftp клиента и разбира се - свалях два пъти, щото отдавна съм забравил как се прави и го свалих веднъж в text mode)
2. Виждали ли сте ifconfig да dump-ва core? Имам предвид без опции - просто исках да погледна config-а на картата. След като бях инсталирал base дистрибуцията по този начин, тя меко казано се държеше странно и това не е чудно :) Добре поне, че компилираше като хората.
3. Минава се на GENERIC кернел, което в моя случай значеше, че няма MASQUERADE, което пък от своя страна напълно елиминира firewall-а, който ползва divert, който връща пакета обратно след като го divert-не и на това се разчита. Тоест останах без DNS (което беше най-осезаемо) и дълго време се чудех що не работи.

Някой друг да сподели опит в областта? :)

______________

Ако искаш изненада, защо просто не се влюбиш?
Отговор
в отговор на Labrett #2

Re: make installworld failure (case study)

E 4ak do tam ne sym stigal, ama poneje ot skoro imam i FreeBSD, 5.1 i natatyka biah napravil glupostta da si kopiram standard-supfile (poneje si 3nam 4e ne sym na STABLE) 3a kernel source-a. Sled koeto se 4udeh 3ashto sockstat ne ba4ka i drugi interesni raboti se slu4vat ;-)

Mislia kato i3le3e 5 STABLE da si rebuild-na world pre3 ssh, post-vaj kato ra3beresh kyde e bil problema.

Ftp-to v text mode shteshe da stane ako servera ne beshe win, a3 v CVS po4ti godina sym si dyrjal kartinki v ascii mode, 4ak kato probvah ot edin windows da si extract-na neshtata osy3nah kakvo sym napravil.

[линк]
Отговор
в отговор на MartinT #3

Re: make installworld failure (case study)

Ftp-to v text mode shteshe da stane ako servera ne beshe win, a3 v CVS po4ti godina sym si dyrjal kartinki v ascii mode, 4ak kato probvah ot edin windows da si extract-na neshtata osy3nah kakvo sym napravil.

Тъй де - ето още нещо на сметката на DarkStar :))

______________

Ако искаш изненада, защо просто не се влюбиш?
Отговор
в отговор на Labrett #4

Re: make installworld failure (case study)

XEXEXEXE ;))))
Опасни сте ;)))). За съжаление - това е положението. Да се надяваме скоро да се промени. Това което липсва за пълното щастие е една машинка. Лошото е, че така и не мога да я изкрънкам от шефовете .... явно и при нас ще има Марла - само че ще е Марла 2 ;))).
От друга страна в момента съм изключително зает - правя ремонт в апартамента и тъй като изгоних поредният майстор, реших да се захващам сам. Например тази събота и неделя с приятелчетата оправихме ел. инсталацията, а аз започнах да измазвам коридора (можете ли да си представите - оказа се, че ме бива ;)))). Както и да е това трябва да приключи до 2 месеца, защото тогава по план скица жена ми ще ражда. Независимо от това ако излезе възможност за някаква машина - ще спретна mirror-a.

И.

FreeBSD will root jOOr phat anus.
Отговор
в отговор на Labrett #5

Re: make installworld failure (case study)

I3viniavaj moje da e typ vyprosa ama ne sym mnogo navytre s FreeBSD, oba4e sled kato si polu4il toia make error ne e li naj dobria variant da pusnesh sysinstall, eventualno ot options da i3beresh novia release, i da mu dadesh da ti instalira base system pre3 FTP?

Naj malkoto bi triabvalo s GENERIC kernel i star base system da trygne.

[линк]
Отговор
в отговор на MartinT #6

Re: make installworld failure (case study)

То е същото като да го направиш от CD-то, само няколко пъти по-опасно, защото трябва да разчиташ на омазаната си система да свърши работата.
Може и да стане, е реалистичното предвиждане :)
От CD със сигурност става, затова и извода ми - ако ще шмекеруваш, да имаш CD с последния release под ръка.

______________

Ако искаш изненада, защо просто не се влюбиш?
Отговор
в отговор на Labrett #7

Re: make installworld failure (case study)

3ashto oma3ana? Ne e li logi4no /stand naj nakraia da se compilira/install-va vinagi, pone spored men taka triabva da byde. T.e. ako ima niakakyv problem shte si imash staria /stand ot kydeto sysinstall shte triabva da se opravi niakaksi ;-) Ako pyk tova e stanalo po vreme na install-vaneto na /stand se predpolaga 4e vsi4ko predi nego e ok.

Ina4e to CD vinagi e hubavo da si imash ;-) Pri nashite vry3ki i oshte pove4e kato imash fi3i4eski dostyp do mashinata...

[линк]
Отговор
в отговор на MartinT #8

Re: make installworld failure (case study)

Абе каквито и разсъждения да подкараш, факт е, че системата е максимално омазана и трудна за рисуване като ти fail-не installworld. Никой например не може да ти гарантира, че ще ти работят библиотеките за resolve, да не говорим DNS-а, ако си на собствен, да не споменавам firewall и masquerade, макар че последните ще се омажат чак след като рестартираш, понеже което е работело в този момент, си е останало в паметта. Както можах да изпитам върху собствения си гръб, дори мрежовите драйвери не е ясно ще работят ли.
И кой знае още какво ..
Не че не може да стане използвайки софтуер, който е върху омазаната система, напротив - дори шансовете да се получи са по-големи, отколкото да изгърми, но това не променя факта, че системата за нищо не става и не можеш да разчиташ на нищо от нея.

______________

Ако искаш изненада, защо просто не се влюбиш?
Отговор