>>> Strona Główna >>> Menu Główne >>> Windows >>> |
||
hal.dll
Jeden z problemów z plikiem hal.dll powstaje po instalacji nowego systemu operacyjnego. Tak na prawdę chodzi jednak o to, że zmieniła się ilość partycji i w związku z tym wpisy dotyczące tego na której partycji zainstalowany jest windows zdezaktualizowały się. Opis rozwiązania dotyczy więc naprawy po "zabawie" z partycjami
Na ekranie po wyborze by uruchomił się windows widzimy:
Windows could not start because the following file is missing or corrupt
Windows root>\system32\hal.dll
Please re-install a copy of the above file
Zakładam, że mamy zainstalowanego linuxa - wtedy po jego uruchomieniu logujemy się jako root ( a najlepiej uruchamiamy konsolę z uprawnieniami roota) i wpisujemy cfdisk (aby wyjść z programu - strzałkami bocznymi wybieramy quit i enter :) ) - u mnie rezultat wygląda tak:
Name Flags Part Type FS Type [Label] Size (MB) ----------------------------------------------------- hda1 Boot Primary NTFS [^A] 10618.84 hda5 Logical NTFS 1488.78 hda6 Logical NTFS [^A] 15414.18 hda7 Logical Linux ext3 14451.82 hda8 Logical Linux swap 649.80 hda9 Logical Linux ext3 15274.35 hda10 Logical Linux ext3 15002.92 hda11 Logical W95 FAT32 6975.04 hda12 Logical NTFS [^A] 13382.54 hda13 Logical NTFS [^A] 14566.98 hda14 Logical NTFS [^A] 12206.32
W momencie jak w miejsce skasowanej partycji utworzyłem 2 partycji hda10 i hda11 to windows który jest na partycji hda12 przesunął się o jedną pozycję
Aby to naprawić trzeba wejść do pliku boot.ini (jest on na w katalogu głównym (c:\boot.ini) i zmodyfikować linię dotyczącą tejże partycji której numer się zmienił. Linia która będzie modyfikowana:
multi(0)disk(0)rdisk(0)partition(8)\WINDOWS="Microsoft Windows XP Professional" /fastdetect
Wystarczy jedynie zmienić partition(8) na partition(9) bo o tyle "przesunęła się" partycja. Plik boot.ini po modyfikacji u mnie (mam 3 systemy windows) wygląda tak:
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(9)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(9)\WINDOWS="Microsoft Windows XP Professional" /fastdetect
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect
multi(0)disk(0)rdisk(0)partition(3)\WINDOWS="Microsoft Windows XP Professional" /fastdetect
Oczywiści każdy wpis w sekcji [operation systems] zajmuje jedną linię.
O takie zmiany najłatwiej gdy dysponujemy właśnie więcej niż jednym systemem windows (najlepiej na partycji podstawowej). Wniosek mam taki że najlepiej mieć system windows xp na partycji głównej (primary) - standardowo oznaczona jest jako C. Wtedy problem z plikiem hal.dll może nas nie dotknąć. A jeśli mamy windowsa także na innej partycji wtedy w prosty sposób można naprawić błąd
Jeśli się pogubimy w numerach partycji skasowanych i utworzonych można to policzyć w pliku fstab, licząc na której pozycji od góry znajdują się partycje windowsowskie i następnie dodając linię z tymi partycjami do pliku boot.ini
Przykładowo jeśliby nie było wiadomo z jakiś względów na której partycji jest windows można dać taki plik boot.ini:
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(9)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(9)\WINDOWS="Microsoft Windows XP Professional" /fastdetect
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect
multi(0)disk(0)rdisk(0)partition(3)\WINDOWS="Microsoft Windows XP Professional" /fastdetect
multi(0)disk(0)rdisk(0)partition(10)\WINDOWS="Microsoft Windows XP Professional" /fastdetect
multi(0)disk(0)rdisk(0)partition(11)\WINDOWS="Microsoft Windows XP Professional" /fastdetect
I testować kolejne pozycje a potem usunąć te które nie wskazują na windowsa. W moim przypadku oznaczało by to że dla pozycji 4 i 5 wyświetli się komunikat o braku pliku hal.dll gdy wybiorę je do uruchomienia systemu, czyli są one do usunięcia.
W przyszłości nieco skrócę i zmodyfikuję opis problemów z plikiem hal.dll
Zapraszam do skomentowania i ocenienia artykułu:
Aktualna ocena: 3.0