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:

Rozwiązanie

Ponieważ już znałem podobne problemy pod SuSE 9.1, szybko znalazłem podpowiedzi, w którą stronę powinienem szukać:
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: pakiet "sleuthkit")
  2. a jeszcze lepszy jest programik "setmax.c" (znajdziesz go 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
  2. system nie zagląda nie tam gdzie trzeba
  3. zarówno po starcie systemu jak i po wyjściu ze stanu "standby"







There are no comments on this page.
Valid XHTML :: Valid CSS: :: Powered by WikkaWiki