Modyfikacja BIOSu - bootowanie z dysku podpiętego do kontrolera SATA na PCI

Zapewne wiele osób zainteresuje rozwiązanie problemu możliwości wystartowania systemu z dysku twardego podpiętego do dodatkowego kontrolera SATA (bez własnego BIOS-u). Zazwyczaj takie karty kontrolerów nie mają swojego BIOSu (choć czasami jest zamontowany odpowiedni układ ROM na karcie) i nie są brane pod uwagę podczas procedury startu komputera (POST). Ja mam taki właśnie kontroler SATA i tylko dzięki drążeniu tematu przez mojego dobrego znajomego (Tomku - pozdrawiam serdecznie) dotarłem do ciekawych materiałów i na ich podstawie udało mi się tak zmodyfikować BIOS płyty głównej mojego komputera (poprzez dodanie do niego odpowiedniego modułu z obsługą chipa kontrolera), że mogę startować system z dysku twardego SATA podpiętego właśnie do takiego kontrolera w moim starym komputerze IBM NetVista (mającym już chyba 10 lat).

Wspomnianą kartę kontrolera SATA kupiłem w grudniu 2010 roku wiedząc, że nie ma ona własnego BIOSu i nie będę mógł z niej zbootować systemu operacyjnego zainstalowanego na kupionym także wtedy dysku SATA Seagate 500 GB - dysk ten miał mi służyć wyłącznie jako dużej pojemności magazyn na dane, ponieważ na posiadanym w tym komputerze dysku IDE Matrox 40 GB brakowało już wolnego miejsca. Dodatkową zaletą zakupionego kontrolera były 4 złącza USB 2.0 - mój stary komputer miał kilka gniazda USB 1.1 i korzystanie z pamięci pendrive zajmowało niestety dużo czasu. Z zakupionego kontrolera byłem bardzo zadowolony.

Po jakimś czasie (a był to kwiecień 2011 roku) wspomniany znajomy skontaktował się ze mną, ponieważ też chciał kupić podobny kontroler (bo tak samo jak ja miał starszy komputer bez kontrolera SATA na płycie głównej, a dyski IDE były dużo droższe w porównaniu do modeli SATA, nie mówiąc już o dostępnych pojemnościach). Znalazł on tańszy od mojego model kontrolera (bo bez portów USB 2.0), oparty na takim samym chipsecie VIA VT6421A co posiadany przeze mnie kontroler. W ostatnim komentarzu (na stronie morele.net z tym kontrolerem) użytkownik Łukasz napisał następujący tekst dotyczący modyfikacji BIOSu płyty głównej tak, by BIOS z kontrolera się meldował przy bootowaniu kompa: "Niestety aby w ogóle zadziałał na jakiejkolwiek płycie trzeba go dodać samemu ręcznie do biosu, ryzykowne ale w przypadku większości płyt głównych proste", który zainspirował mojego znajomego do poszukania czegoś więcej na ten temat i w następnym liście podrzucił mi pewien wątek dotyczący możliwości przeprogramowania BIOSu (płyty głównej) tak by można było zbootować system z dysku SATA podłączonego do takiego kontrolera. To spowodowało, że sam zacząłem intensywnie szukać więcej w necie informacji na ten temat - poczytałem o co w tym chodzi (pierwszy oraz drugi wątek na forum elektroda.pl) - tam jest opisane, jak zmodyfikować BIOS płyty głównej, żeby można było zbootować system operacyjny przy użyciu kontrolera SATA. Komuś się już to udało, więc wiedziałem że to się da zrobić w praktyce, dlatego postanowiłem sprawdzić, czy da się zrobić tak samo z posiadanym przeze mnie kontrolerem. W moim przypadku ja już miałem wcześniej kupioną taką kartę (z opisywanym na forum chipsetem VIA VT6421A), więc mogłem dzięki takiej modyfikacji zyskać dodatkową funkcjonalność w postaci możliwości startu systemu Windows z dysku SATA.
Ponieważ mam markowy komputer IBM NetVista z Phoenix BIOSem, sprawa okazała się nieco trudniejsza i bardziej ryzykowna, niż w przypadku gdybym posiadał płytę główną z BIOSem firmy Ami czy Award, ale i do niego też były w internecie dostępne materiały. Na wszelki wypadek wcześniej przetestowałem tę operację modyfikacji BIOSu na jednym komputerze w pracy (również IBM, model ThinkCentre A50) z analogicznym BIOSem Phoenix (komputer ten był i tak przeznaczony do zezłomowania, więc się nie przejmowałem tym, że mogę go "uziemić").

UWAGA: modyfikując BIOS płyty głównej trzeba się liczyć z możliwością jej potencjalnego uszkodzenia (nie startowania komputera), jeśli coś nie pójdzie po naszej myśli. Ratunek w takim wypadku polega np. na zaprogramowaniu kości flash z BIOSem naszej płyty głównej w jakimś programatorze (u znajomego elektronika), ewentualnie startując z dyskietki "ratunkowej" z nagranym na niej plikiem z dobrym BIOSem, wykorzystując możliwość naprawienia/wgrania BIOSu jaką oferują niektóre modele płyt głównych.

Generalnie jest tak, że BIOS płyty głównej komputera składa się z wielu kawałków (modułów), które odpowiadają za obsługę różnych podzespołów w komputerze. Rozwiązanie polega na tym, by specjalnym narzędziem-programem (różnym dla różnych producentów BIOSów - a generalnie są trzej: Award, Ami i Phoenix) dodać do pliku z BIOSem odpowiedni moduł obsługujący nasz kontroler SATA (dokładniej chipset tego kontrolera), a następnie wgrać tak zmodyfikowany plik z BIOSem jakimś standardowym programem do uaktualniania BIOSu naszej płyty głównej. Bazowy BIOS, przeznaczony do modyfikacji, najlepiej ściągnąć ze strony producenta płyty głównej (ważne: koniecznie dla takiego modelu płyty głównej jaką posiadamy - ważne są nawet podwersje/rewizje (rev.), np. 1.0, 1.x, 2.x, itp.). Moduł który należy dodać (dograć) do własnego pliku BIOSu, wraz z niezbędnymi narzędziami do tego, znajdziesz w linkach na końcu artykułu.
Podstawową sprawą jest zatem ustalenie producenta i modelu płyty głównej, wersji BIOSu a następnie ściągnięcie (najlepiej najnowszej) takiej wersji BIOSu dokładnie dla niej. Od producenta BIOSu zaś zależy, jak będzie się dalej postępowało z tym plikiem, by poprawnie wgrać do niego nasz dodatkowy modułu kontrolera SATA (czytając wątki, których linki tu zamieściłem, wyłapuj tylko te fragmenty, które tyczą się Twojego producenta BIOSu).

Tak jak wcześniej wspomniałem, dla bezpieczeństwa najpierw modyfikację BIOSu przeprowadziłem na nikomu niepotrzebnym firmowym komputerze IBM ThinkCentre A50 (z BIOSem Phoenix). Specjalnie wybrałem komputer z taką wersją BIOSu, żeby mieć już jakieś doświadczenie, gdy będę to samo robił potem na domowym komputerze. Plik z BIOSem bez problemu ściągnąłem ze strony producenta, udało mi się do niego dodać moduł (BIOS) chipsetu VIA VT6421A, wgranie tak zmodyfikowanego pliku BIOS również poszło bez problemów. Po podłączeniu dysku SATA (wtedy w pracy miałem pod ręką model 2.5" 160 GB od czyjegoś notebooka) i włączeniu komputera pierwszy uaktywnił się BIOS kontrolera (czego wcześniej, przed zmodyfikowaniem BIOSu, w ogóle nie było) - jeszcze przed BIOSem płyty głównej. Dało się też wejść do jego menu (RAID-owego). Zainstalowałem na czystym dysku testowy Windows XP - sterowniki do kontrolera SATA/RAID nagrałem na dyskietkę 3.5" (przygotowanej przy pomocy sofciku z płytki CD ze sterownikami dołączonej do tegoż kontrolera) - nie miałem czasu, aby zintegrować je z instalką Win XP i potem wypalić płytkę CD-R (potem, już w domu, tak właśnie zrobiłem i też zadziałało). Instalator dysk zobaczył (po wczytaniu sterowników z użyciem klawisza F6) i potem z niego wystartował bez niczyjej pomocy. Wcześniej, z niemodyfikowanym BIOSem, system z dysku SATA nie startował, bo go nie widział.
Następnego dnia walczyłem ze swoim BIOSem do IBM NetVista, który mam w domu. Dodatkowo okazało się, że w BIOSie nie ma już miejsca na wgranie dodatkowego modułu. Pomogły mi wątki na forum mydigitallife.info oraz bios-mods.com. Tam analogiczny problem miał pewien użytkownik, który się tam wypowiadał (oba wątki dotyczą tego samego problemu). Po przejrzeniu istniejących modułów wytypowałem jakiś zupełnie nieprzydatny i go usunąłem - wtedy już mogłem wgrać moduł kontrolera SATA. Na szczęście komputer się poprawnie uruchomił i zadziałał też BIOS kontrolera tak jak na wcześniej testowanym komputerze w pracy. Przy starcie komputera najpierw inicjalizuje się BIOS płyty głównej, potem kontrolera, następnie znów wraca do BIOSu płyty głównej i potem bootuje. Mogę w BIOSie płyty głównej wybrać dysk, z którego będę bootował. W menu mam zawsze 4 dyski na liście (HDD-0, HDD-1, HDD-2 i HDD-3) i oznaczają one 4 fizycznie podpięte dyski fizyczne (nie partycje) - również te podłączone do kontrolera SATA. U mnie pierwszym dyskiem (HDD-0) był Matrox 40 GB IDE podpięty do płyty głównej, a drugim (HDD-1) ten dysk SATA Hitachi 160 GB podpięty do kontrolera. I mogłem bootować z dysku jakiego chciałem bez ich przepinania, poprzez samo przestawienie ustawień w BIOSie (płyty głównej).

Wracając do tego mojego kontrolera. Teoretycznie mam 2 x złącze SATA (wewnętrzne i zewnętrzne) + 1 x IDE, czyli teoretycznie na tym kontrolerze mogę mieć podłączone 4 dyski twarde (2 SATA + 2 IDE) i mogę na nich zrobić macierz RAID, ale ja tak nie będę robił bo nie mam takiej potrzeby (potem zrobiłem test wydajnościowy z podłączonymi 2 dyskami SATA 1 TB w RAID 0 i okazało się, że maksymalnie mogę osiągnąć transfer 100 MB/s - chyba jest to ograniczenie samego kontrolera).
Zmiany, które powyżej opisałem, tyczą się jedynie kontrolera opartego na układzie (chipsecie) VIA VT6421 i zgodnych, bo do tego kontrolera (układu) jest przeznaczony moduł BIOSu o nazwie 6421V431.rom (v431 oznacza jego wersja 4.3.1 - chyba nie ma nowszej). Trzeba uważać z innymi kontrolerami SATA, bo są też takie oparte na innych chipsetach (Sillicon Sil3112 czy Sil3512), ale do nich nie znalazłem modułu BIOSu, ani nie znalazłem w necie informacji, czy to na nich zadziała. Z wątków w necie przekonałem się naocznie, że dla VIA VT6421 to działa. Znalazłem też analogiczny moduł BIOSu dla kontrolerów SATA opartych na chipsecie Promise.
Problemem - prócz właściwego kontrolera - jest też płyta główna, a raczej jej BIOS. Nie każdy BIOS da się „spaczować” [od angielskiego "patch" - łatać], dlatego sugeruję zrobić najpierw testy teoretyczne. Trzeba znać dokładny symbol swojej płyty i producenta, pobrać (najnowszy) BIOS do tego modelu (albo zgrać ten który się posiada, jak nie ma innego wyjścia) i zobaczyć, czy do tego plik z BIOSem da się dodać moduł BIOSa kontrolera SATA. Potem - jak się uda - można wgrać ten zmieniony BIOS do komputera. Komputer powinien działać normalnie. Wtedy bezpiecznie można podjąć decyzję i kupić dany kontroler SATA. Po włożenie karty kontrolera i podłączeniu do niego dysku powinno się zaobserwować zgłoszenie się BIOSu tego kontrolera i wykrycie dysku podłączonego do niego.

Jak już wspomniałem, trzeba być jednak ostrożnym przy kupowaniu innego kontrolera (tańszego), ponieważ może on być oparty na innym niż VIA chipsecie. Samym producentem karty nie można się sugerować. Zatem kupno kontrolera z chipsetem Silicon Image warto dokonać mając pewną wiedzę, co z nim (i jak) da się zrobić. Znalazłem też kontrolery SATA na chipsecie Promise PDC20375, do ich chipsetu też jest dedykowany moduł BIOS, o czym można przeczytać w tym wątku. Jest w nim też link do tego pliku z modułem BIOS. Promise to dobra firma (kiedyś robiła dobre kontrolery IDE i RAID), ale najpierw warto przetestować to na BIOSie swojej płyty głównej (jak się zmieni płytę, BIOS trzeba od nowa "łatać").

Poniżej można znaleźć wspomniane programy, instrukcje, zdjęcia oraz potrzebne moduły BIOS:
  Strona z różnymi programami do modyfikacji BIOSu wraz z przejrzystym opisem i wieloma przykładami
  CBROM.EXE v1.98 - program do modyfikacji Award BIOS (wersja 32-bitowa)
  CBROM User's Guide - prosty podręcznik używania programu
  AMIBCP.EXE v3.46 - program do modyfikacji Ami BIOS
  MODBIN6.EXE v2.04.03 - program do modyfikacji Phoenix BIOS
  6421V431.ROM - moduł BIOS dla chipsetu VIA VT6421 oraz VT6421A
  PDC20375.BIN - moduł BIOS dla chipsetu Promise PDC20375

Umieściłem też kilka zdjęć obrazujących wydajność mojego kontrolera SATA na dyskach, które posiadam. Wkrótce wrzucę też zdjęcia dotyczące ekranów bootowania komputea oraz BIOSu kontrolera RAID.

Powrót do strony z wykazem ciekawostek

Valid HTML 4.01 TransitionalValid CSS