====Problem z geometrią dysku w laptopie==== **Objawy** SuSE 10 działa na moim IBM-ie rewelacyjnie, chodzi szybko, wszystkie (naprawdę wszystkie!) funkcje chodzą jak się patrzy. Ponieważ nie lubię wyłączać komputera, intensywnie używam funkcji "standby". No i tej używam również w ww. konfiguracji. O ile pod SuSE 9.1 po paru kombinacjach funkcja ta działała rewelacyjnie (uptime: 309 dni!), to pod SuSE 10.0 kombinacji nie musiałem uskuteczniać - po instalacji z parametrem acpi=off wszystko działało w zasadzie jak trzeba (powermanagement przez APM, nie przez ACPI). Jednak jeden problem pojawiał się czasem i nie wiedziałem o co chodzi: po wyjściu ze standby (albo suspend to RAM, jak się to nazywa) niekiedy komputer robił się wolniejszy i okazywało się, że wyłączał sobie DMA dla twardego dysku. Rzut okiem w logi dał taki oto obraz sytuacji: '' May 1 14:57:54 ibm kernel: ide0: reset: success May 1 14:57:54 ibm kernel: hda: task_in_intr: status=0x59 { DriveReady SeekComplete DataRequest Error } May 1 14:57:54 ibm kernel: hda: task_in_intr: error=0x10 { SectorIdNotFound }, LBAsect=156301488, high=9, low=5306544, sector=156301488 May 1 14:57:54 ibm kernel: ide: failed opcode was: unknown May 1 14:57:54 ibm kernel: end_request: I/O error, dev hda, sector 156301488 May 1 14:57:54 ibm kernel: Buffer I/O error on device hda, logical block 156301488 '' Ponadto stwierdziłem, że: - sektor, którego system chce czytać (156301488), jest poza nominalnym rozmiarem dysku (!), - dysk ma 156301487 sektorów, - po starcie (bez używania standby) problemów takich nie ma **Rozwiązanie** Ponieważ już znałem podobne problemy pod SuSE 9.1, szybko znalazłem podpowiedzi, w którą stronę powinienem szukać: - problem dotyczy rozmiarów dysku - jest on związany (być może, teraz nie jestem tego pewien) również z IBM-em, ponieważ posiada on tzw, "host protected area" (patrz tutaj: [[http://www.thinkwiki.org/wiki/Hidden_Protected_Area ThinkPad - Wiki]]) Po 2h poszukiwań stwierdzam, że 1) God bless the internet oraz 2) Linux is the best, czyli: 1) Istnieje narzędzie pt. "disk_stat", przy pomocy którego można wczytać ważne dane o dysku i wyłączyć "host protected area" (patrz tutaj: [[http://www.sleuthkit.org/sleuthkit/tools.php pakiet "sleuthkit"]]) 1) a jeszcze lepszy jest programik "setmax.c" (znajdziesz go [[http://www.win.tue.nl/~aeb/linux/setmax.c tutaj]]) Ten ostatni trzeba jeszcze skompilować: ''cc -o setmax setmax.c'' i wystartować: ''./setmax /dev/hda'' Ustawienie ostatniego sektora na trwałe poniżej wartości sektora, który jest ostatnim fizycznym powoduje, że: 1) tworzony jest "host protected area", którego linux bez problemu rozumie i wykrywa 1) system nie zagląda nie tam gdzie trzeba 1) zarówno po starcie systemu jak i po wyjściu ze stanu "standby"