Swap na disku s vadnym sektorem - co Vy na to ?

Jirka Kosina jikos na jikos.cz
Pátek Leden 18 20:47:33 CET 2002


On Fri, 18 Jan 2002, Petr Simek wrote:

> mam takovy dotaz - mam PC v nem disk s vadnym sektorem. Udelal jsem
> partisnu v oblasti s tim sektorem, oznacil ji jako swap. Vyrobil jsem
> swap pomoci 'mkswap -c /dev/..' a vypsalo mi to "one bad page" .
> Ted ve mne vrta cervik pochybnosti - kdyz to napsal, pochopil ze je sektor
> vadny a stranku ktera jej mela obsahovat vynechal a tedy je mozno swap
> pouzivat bez problemu ? Nebo je to jen takove varovani ?
> Verbose mod to nema, zda se mi to takove nejednoznacne ....

Rekl bych, ze pochopil, ze stranka je vadna a nemel by ji pouzivat, 
nicmene jak znami, vadne sektory se rady mnozi, a nevim, jestli kernelovy 
swapper je, narozdil od mkswap mista vadnych stranek dynamicky detekovat a 
oznacovat jako spatna.

Nicmene pohledem do zdrojaku mkswap jsem zjistil jednu vec, ktere zrovna 
ted moc nerozumim:

Ve strukture struct swap_header_v1 je unsigned int badpages[1] (nekde 
kolem je definovano makro MAX_BADPAGES na neco, co je podle mne vetsi nez 
1).
Pole badpages, alespon jak jsem to z toho zdrojaku pochopil, ma slouzt k 
indexaci vadnych stranek (ta struktura se uklada do "informacni" oblasti 
toho swapu) - tomu take nasvedcuji ruzne konstrukce ve zdrojaku:

static void page_bad(int page) {
	/* ... */
	if (badpages == MAX_BADPAGES)
		die(_("too many bad pages"));
	p->badpages[badpages] = page;
	badpages++;
}

Tak jsem z toho jelen - proc je to pole velikosti 1, kdyz se evidentne 
muze stat, ze se bude indexovat nejakym vetsim indexem?

Ale asi jsem uz unaveny a neco jsem prehledl, diky za pripadne vyvedeni ze 
tmy ;)

-- 
JiKos.




Další informace o konferenci Linux