Mój znajomy (pozdrowienia dla Wacława!) po reinstalacji Windowsa XP, miał problemy z dyskiem. Wacek, miał dwie partycje na NTFSie i dwie FATowe. XP nie widział jednego dysku na facie. Pierwsza moja myśl była taka: Hmm, może xp, zmienił typ partycji z 0xc (FAT32 (lba)) na 0x1c (hidden fat32), (taka myśl stąd, że kiedyś miałem taki przypadek).
No więc bootujemy linuxa, sprawdamy, ale nie, fdisk pokazuje normalnie. Ściągnąłem więc na Windowsie genialny (i opensource'owy!) program testdisk autorstwa Christophe'a Grenier'a (służy on do odzyskiwania partycji, ja jednak wykorzystuję go conajmniej w jednym innym celu).
Włączamy testdiska, a on pokazuje, że dysk ma 137GB... (Ci którzy wiedzą o co chodzi, pewnie się dziwią, że jeszcze się nie zorientowałem co jest grane) hmm, coś jest nie tak, ponieważ znajomy nie znał, a ja nie zapamiętałem, bootujemy ponownie linuxa, żeby sprawdzić, ile jego dysk ma cylindrów i wracamy do testdiska... zmieniamy w geometry rozmiar z około 16800 na 30401, zapuszczamy testdiska i co? i właśnie za cylindrem ok 16800 występują błędy odczytu...
W tym momencie przyszło mi do głowy, że pewnie coś z LBA, sprawdziliśmy w biosie, możliwe tylko dwie opcje, auto, albo disabled.
No to wracamy do windy, chwila googlania i mamy odpowiedź.
Najpierw znaleźliśmy informację, że 28-bitowe adresowanie LBA ogranicza rozmiar dysku do ~ 137 GB
Otóż Cudowny i Wspaniały System Operacyjny, domyślnie nie obsługuje 48-bitowego adresowania dysków LBA!
Na zamkniętym już ponoć msinfo.pl, znaleźliśmy informację, na temat LBA i windowsa xp. Otóż po pierwsze musi być zainstalowany SP 1. Nie mam na co dzień do czynienia z Windows, więc nawet nie wiedziałem, gdzie się sprawdza, że SP jest zainstalowany... Po drugie, w kluczu: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Atapi\Parameters trzeba dodać, wartość:
EnableBigLba i ustawić ją na 1.
Niewiele myśląc, tak też zrobiliśmy, reboot i TA DAM, działa :)
Nigdy nie zrozumiem tego systemu :]
Jeszcze małe wyjaśnienie i kilka obliczeń dla ciekawych...
- Dokładniej, to było 16709, gdyż: 160709*255(głowice)*63(sektory)=268430085 sektory
- 1 << 28 = 268435456 (maksymalna liczba sektorów, możliwa do obsłużenia przy 28bitowym adresowaniu...)
- 30401*355*63=488392065 (ilość sektorów dysku Wacława...)
- no i jeszcze: 488392065*512 (ilość bajtów na sektor) / 1000^3 (1000 bo wyliczamy to co podają producenci, ^3, bo chcemy GB) = 250
- a i jeszcze: (1 < < 28)*512 / 1000^3 = 137 oczywiście...
gim.org.pl is down






