# Windows 95 + Windows 3.x + Linux Howto

## Robert Goodwin Robert.Goodwin@mcc.ac.uk
v?.?, Sierpień 1996
Wersja polska: Leszek Pietryka lesio@plearn.edu.pl
v1.0, 13 Września 2000

Dokument ten został napisany w standardzie ISO-8859-2. Oryginał tego dokumentu znajduje się np. pod adresem ftp.icm.edu.pl.

## 1. Uwaga

15 stycznia 1998
Autor nie zajmuje się już opieką nad dokumentem Win95+Win+Linux mini-HOWTO. Jeśli jesteś zainteresowany jego utrzymywaniem, skontaktuj się, proszę, ze mną, wysyłając e-mail na adres: tjbynum@metalab.unc.edu.

## 2. Wprowadzenie

Pierwsza wersja tego dokumentu powstała w styczniu 1996. Od tego czasu dodałem wiele komentarzy, informacji i pytań, otrzymanych od różnych osób. Istnieje japońska wersja tego dokumentu; zobacz zbiór japońskiej dokumentacji dotyczącej Linuksa pod adresem: http://epsenewsc.gee.kyoto-u.ac.jp/JF/JF.html. Polska wersja tego dokumentu jest dostępna pod adresem: http://sunsite.icm.edu.pl.

## 3. Ładowanie kilku systemów operacyjnych

Jeśli chcesz mieć możliwość ładowania kilku różnych systemów operacyjnych (bez potrzeby stosowania startowych dyskietek!), musisz używać czegoś takiego, jak MENEDŻER ŁADOWANIA.

Windows 95 nie ma tak naprawdę menedżera ładowania. Ma, co prawda, opcje ładowania, ale w moim podręczniku piszą, że menedżer ładowania można skonfigurować tak, aby ładował dowolny system.

LILO można skonfigurować tak, aby ładowało prawie każdy system. Podobnie można skonfigurować menedżery ładowania OS/2 i Windows NT. To, którego menedżera używasz, zależy od tego, czego chcesz od swojego komputera. Jeśli, na przykład, używasz menedżera ładowania OS/2, to ``ukrywa'' on ``inne'' dosowe partycje.

## 4. Inne źródła informacji na ten temat

Jeśli chcesz używać tylko Windows 95 i Linuksa, przeczytaj raczej Win95+Linux HOWTO. Najnowszą wersję możesz znaleźć pod adresem: http://www.in.net/~jkatz/win95/Linux-HOWTO.html. Wersja polska jest (albo wkrótce będzie :-)) dostępna pod adresem: http://sunsite.icm.edu.pl.

Windows 95 i Linux mogą być zainstalowane na jednym dysku. Reszta dokumentu opisuje, jak rozwiązać problemy z DOSem, który nie pozwala na istnienie więcej, niż JEDNEJ podstawowej partycji DOS na jednym dysku.

Jeśli chcesz używać menedżera ładowania NT, zajrzyj pod adres: http://www.bcpl.lib.md.us/~dbryan/directboot.html.

Żeby dodać Linuksa (albo inny system, w tym OS/2), potrzebny jest taki fajny programik, który tworzy pliki sektorów startowych tak, aby mógł z nich korzystać menedżer ładowania NT. Informacje na ten temat możesz znaleźć pod adresem: http://ourworld.compuserve.com/homepages/gvollant/othertl.htm.

Możesz też wypróbować program `loadlin.exe`, który umożliwia ``przeładowanie'' na Linuksa po uprzednim uruchomieniu DOSa.

## 5. Po co to HOWTO

Ten dokument opisuje następujące sprawy:

- Co zrobić, żeby Windows 3.x i Windows 95 współistniały na jednym komputerze bez problemów (i jakie to są ewentualnie problemy)
- Jak uniknąć kłopotów z komputerem z Windows 95, na którym można zdalnie uruchomić DOS
- Jak zainstalować Windows 95 i Linuksa bez potrzeby reinstalacji LILO (z tym denerwującym ładowaniem Linuksa z dyskietki)

System plików Windows 95 istnieje wprawdzie na szczycie standardowego systemu DOS FAT, ale robi z nim paskudne rzeczy. Uruchom swój komputer z Windows 95 przy pomocy startowej dyskietki DOS i każ Nortonowi sprawdzić dysk, ale NIE pozwól mu na dokonanie żadnych napraw, bo popsujesz ``długie'' nazwy plików.

Chcą ostatnio ode mnie, żebym zajmował się obsługą aplikacji zarówno w środowisku Windows 95, jak w Windows 3.x (oba działające lokalnie lub ładowane z sieci). Opracowałem odpowiednie ustawienia opisane w tym dokumencie tak, żebym mógł robić to wszystko tylko na jednym PC.

Nie pytajcie mnie, jak człowiek używający Uniksa skończył w takiej sytuacji :-)

## 6. Wymagania

Jeśli umiesz grzebać się w źródłach LILO (wersja 17 albo nowsza, jak mi się zdaje), to możesz osiągnąć to wszystko z JEDNYM dyskiem. Działa to na zasadzie zmiany zawartości tablicy partycji podczas ładowania systemu. Jeśli nie czujesz się zbyt pewnie, to lepiej nie próbuj!

W przeciwnym wypadku będziesz potrzebował DWÓCH dysków twardych. Wynika to z ograniczeń DOS/Windows dotyczących ładowania systemu i przypisywania liter napędów. Wierz mi, próbowałem tego z jednym dyskiem (ale nie chciałem się grzebać w źródłach LILO).

## 7. Z czym skończysz

Parę słów o nazwach urządzeń. Widywałem systemy, w których `/dev/hdc` oznaczało trzeci dysk IDE (pierwszy dysk IDE na drugim kontrolerze), a `/dev/hdd` oznaczało czwarty dysk. Widywałem też systemy używające nazw `/dev/hd1a` i `/dev/hd1b` (nazwy partycji to `/dev/hd1a3` itd.). Mój system stosuje ten drugi styl nazewnictwa, ale zmieniłem nazwy na `/dev/hdc` i `/dev/hdd`, żeby nie było niejasności.

Oto krótki opis tego, co sam teraz mam. Uważaj na litery dysków, bo się zmieniają...

Jeśli używasz drugiego kontrolera IDE, być może, że będziesz musiał sam utworzyć pliki w katalogu `/dev`. (`/dev/hdc*` i `/dev/hdd*`). Może tak być, gdy dodajesz drugi dysk twardy do komputera, w którym jest zainstalowany jeden dysk IDE i CD-ROM IDE; twój drugi dysk twardy otrzymałby nazwę `/dev/hdc`. Próbowałem takiego ustawienia i nie miałem żadnych problemów.

W swoim komputerze mam:

> `

>                             /dev/hda  - pierwszy dysk twardy
>                             /dev/hdb  - napęd CD-ROM
>                             /dev/hdc  - drugi dysk twardy

> `

Opcja 1:

  Po włączeniu komputera mogę pozwolić startowej pamięci ROM karty ethernetowej na zdalne załadowanie DOSu. Napęd ``C'' to pierwsza partycja DOS na PIERWSZYM dysku IDE (w moim przypadku `/dev/hda1`). Napęd ``D'' to pierwsza partycja DOS na DRUGIM dysku IDE (w moim przypadku `/dev/hdc1`), a napęd ``E'' to druga partycja DOS na DRUGIM dysku IDE (`/dev/hdc2`). Napęd CD-ROM ma literę F:

Opcja 2:

  Pozwól LILO załadować domyślny system (Linuksa, ma się rozumieć)

Opcja 3:

  Podczas uruchamiania LILO włącz opcję, która u mnie nazywa się DOS. Ładuje to DOS z `/dev/hda1` i, tak samo, jak w przypadku opcji 1, napęd ``C'' to `/dev/hda1`, ``D'' to `/dev/hdc1`, a ``E'' to `/dev/hdc2`. CD-ROM to F:

Opcja 4:

  Podczas uruchamiania LILO włącz opcję, która u mnie nazywa się Win95. Ładuje to Windows 95 z pierwszej partycji DOS DRUGIEGO dysku IDE (w moim przypadku `/dev/hdc1`). I teraz uwaga: napęd ``C'' to teraz pierwsza partycja DOS na DRUGIM dysku IDE (`/dev/hdc1`), napęd ``D'' to piersza partycja DOS na PIERWSZYM dysku IDE (`/dev/hda1`), napęd ``E'' to cały czas druga partycja DOS na DRUGIM dysku IDE (`/dev/hdc2`). CD-ROM to F:

Zwróć uwagę na to, że napęd C zmienia się w zależności od opcji ładowania. To znaczy, że gdy instalujesz Windows 95, to instalujesz go w katalogu `C:\WINDOWS`. Kiedy instalujesz Windows 3.x, to też instalujesz go w katalogu `C:\WINDOWS`, ale to są różne katalogi :-)

Zauważ też, że trzecia partycja DOS (na której trzymam dane) to E:, niezależnie od sposobu ładowania, i że litera CD-ROMu też się nie zmienia.

## 8. Jak to zrobić

Przede wszystkim zainstaluj Linuksa, nieważne, na którym dysku. Jednakże, ponieważ będziesz używać dwóch dysków, rozsądne będzie utworzenie na każdym z nich partycji wymiany.

Utwórz podstawową partycję DOS na drugim dysku. Dosowy FDISK nie pozwala, niestety, na coś takiego. Dlatego musisz użyć wersji linuksowej, żeby utworzyć partycję, ustawić jej typ (6 dla partycji DOS 16 BIT FAT > 32 MB) i ustawić ją jako aktywną. UWAŻNIE stosuj się do porad strony podręcznika `man fdisk`. Opisuje ona, co trzeba zrobić, aby DOS rozpoznawał partycję utworzoną w ten sposób. Trzeba zastosować polecenie `dd` do wyczyszczenia pierwszych 512 bajtów tej partycji. (Zasadniczo używa się polecenia ```dd if=/dev/zero of=/dev/XXXX bs=512 count=1`'', gdzie `XXXX` to nazwa urządzenia. Musisz być jednak BARDZO ostrożny, ponieważ jest to doskonały sposób na zniszczenie dysku - na przykład przez wpisanie `/dev/hda` zamiast `/dev/hda1`!)

Prymarną partycję DOS na pierwszym dysku twardym możesz utworzyć przy pomocy dosowego FDISKa. W ten sposób możesz też utworzyć inne potrzebne partycje dosowe.

Obie partycje podstawowe musisz sformatować jako startowe partycje DOS. Użyj w tym celu poleceń `FORMAT C: /S` i `FORMAT D: /S` po załadowaniu DOSa z dyskietki. Żeby uniknąć niejasności, nadaj partycjom jednoznaczne etykiety woluminów!

Zmodyfikuj plik `/etc/lilo.conf` tak, aby było możliwe ładowanie systemu z obu podstawowych partycji DOS. Na końcu dokumentu zamieściłem przykładowy taki plik. Zwróć uwagę na znajdującą się w nim linię ```loader`''. To od ciebie zależy, gdzie zainstalujesz Windows 95, a gdzie DOS/Windows 3.x. Ja używam drugiego dysku twardego dla Windows 95, ponieważ w przypadku ładowania z sieci normalny dysk DOS ma literę ``C''. Oprócz tego (i to się przydaje), instalacja Windows 95 na drugim dysku pozwala na uniknięcie konieczności ładowania Linuksa z dyskietki ratunkowej i ponownej instalacji LILO (poniżej wyjaśniam, dlaczego miałoby się tak stać). Pamiętaj, żeby wydać polecenie `/sbin/lilo`, aby wprowadzić zmiany w życie.

Jeśli planujesz (rozsądnie) instalację Windows 95 z CD-ROMu, będziesz musiał umieścić odpowiednie sterowniki na partycji przeznaczonej dla Windows 95, tak aby po załadowaniu z niej był dostępny napęd CD-ROM.

Następnie przy użyciu LILO uruchom komputer z napędu, na którym chcesz zainstalować DOS/Windows 3.x i zainstaluj resztę DOS i Windows 3.x. Windows powinien być zainstalowany w domyślnym katalogu `C:\WINDOWS`.

Kiedy już tak zrobisz, uruchom ponownie komputer i, używając LILO, załaduj partycję Windows 95. Przeprowadź instalację Windows 95. Instalator może zasugerować instalację Windows 95 w katalogu `D:\WINDOWS`, ponieważ sprawdza on komputer w poszukiwaniu istniejących wersji Windows. NIE akceptuj tego - zainstaluj Windows 95 w katalogu `C:\WINDOWS`.

A teraz najfajniejsze! Windows 95 jest raczej samolubnym systemem. Kiedy go instalujesz, zakłada on, że jest jedynym systemem operacyjnym w komputerze i zapisuje własny MBR (Master Boot Record - Główny Rekord Ładujący) na twardym dysku. To właśnie dlatego musisz ponownie instalować LILO. Jeśli natomiast zainstalowałeś Windows 95 na drugim dysku, zrobiłeś coś, czego programiści Microsoft™ nie przewidzieli. Na jednym komputerze, na którym przeprowadziłem taką operację, Windows 95 umieścił swój MBR na miejscu MBR DRUGIEGO dysku. Na innym komputerze w ogóle nie znalazłem na to dowodu. Praktyczny efekt jest taki, że ten ważny MBR, czyli ten na pierwszym dysku, pozostaje nienaruszony. Dzięki temu, kiedy ponownie uruchamiasz komputer, wita cię przyjazny i znajomy znak zachęty LILO.

Przykładowa lista partycji:

> `

>       /dev/hda1  *   partycja DOS (C: lub D: zależy od ładowania)
>       /dev/hda2      partycja rozszerzona
>       /dev/hda5      /
>       /dev/hda6      swap
>       /dev/hda7      /home

>       /dev/hdc1  *   partycja Windows 95 (C: lub D: zależy od ładowania)
>       /dev/hdc2      partycja DOS (E: zawsze)
>       /dev/hdc3      swap

> `

(Partycje oznaczone przy pomocy * są ustawione jako startowe (czyli ``aktywne'') przez FDISK)

Przykładowy plik `/etc/lilo.conf`:

> `

>       # /etc/LILO.conf
>       install = /boot/boot.b
>       compact
>       delay = 20       # opcjonalne, dla systemów, które ładują się bardzo szybko
>       #prompt          # użyj zamiast delay, by wymusić reakcję na linię
>                        # zachęty ładowania
>       #vga = normal    # wymuszenie rozsądnego stanu
>       #ramdisk = 0     # opcja dla paranoików
>       #root = current  # użyj "bieżącego" głównego systemu plików (root)
>       boot = /dev/hda
>       image = /boot/vmlinuz
>         read-only
>         label = linux
>       other = /dev/hdc1
>         label = win95
>         loader= /boot/any_d.b
>       other = /dev/hda1
>         table = /dev/hda
>         label = dos
>       image = /boot/vmlinuz.old
>         label = linux.old
>         optional
>         read-only

> `

## 9. Kilka pytań i odpowiedzi

P: Czy ten schemat działa z dyskami SCSI?
O: Podobno tak, ale sam nigdy nie próbowałem

P: Czy ten schemat działa w przypadku, gdy Linux zajmuje cały jeden dysk, a DOS i Windows 95 znajdują się na partycjach drugiego dysku?
O: Nie. DOS i Windows 95 muszą znajdować się na podstawowych partycjach ``DOS''. Można to obejść przez rekompilację LILO

P: Ściągnąłem z sieci Windows 95 FAQ, w którym jest powiedziane, że można ładować zarówno DOS, jak i Windows 95. Jeśli zainstaluję Windows 3.11 w innym katalogu niż ```WINDOWS`'', to podobno mogę bez problemów uruchamiać Windows 95 i Windows 3.11. Oba są na jednej partycji.
O: Tak, można tak zrobić. Może to jednak powodować problemy. Windows 95 robi paskudne rzeczy z napędem FAT i niektóre operacje, jakie wykonujesz z poziomu starej wersji DOS i starego Windows (3.x) mogą ławo zniszczyć informację dotyczącą długich nazw plików. Tak zrobi, na przykład, defragmentacja dysku przy pomocy programu DOS/Windows 3.x. Wpędzasz się też w kłopoty, jeśli coś nie działa, bo musisz zawracać sobie głowę plikami INI obu systemów *i* rejestrem Windows 95.

P: Czy LBA ma znaczenie?
O: Tak. Uff!
BIOSy mniej więcej od roku 1994 wspierają LBA, aby obejść ograniczenia DOSu, które uniemożliwają mu obsługę ilości cylindrów większej, niż 1024. (Jest to opisane o wiele bardziej wyczerpująco w dokumentach PC hardware FAQ). LBA oszukuje geometrię dysku, mnożąc liczbę głowic przez 2 lub 4 (itd.), aby podzielić liczbę cylindrów przez 2 lub 4 (itd.) tak, aby była ona mniejsza od 1024. To potrafi obejść ograniczenia DOSu.

Linux obsługuje liczbę cylindrów większą od 1024 (pod warunkiem, że partycja, z której ładujesz, leży w całości poniżej 1024 cylindra), potrafi też obsłużyć duże (>504MB) dyski nawet na starszych komputerach (z BIOSem sprzed 1994). Obsługuje także dyski na BIOSach wspierających LBA, niezależnie od tego, czy LBA jest włączone.

Niezbędne jest, aby dla WSZYSTKICH systemów operacyjnych każdy dysk miał tę samą geometrię. To dlatego, że liczby w tablicy partycji to ``dostrzegane'' liczby cylindrów, a nie rzeczywiste. Tak więc włączenie w BIOSie opcji LBA spowoduje, że istniejąca zawartość dysku będzie bezużyteczna.

Jeśli twój Linux nie widzi ``właściwej'' geometrii (to znaczy tej samej, którą ``widzi'' DOS), będziesz musiał do pliku `/etc/lilo.conf` dodać linię `append=``hd=x.y.z`'', gdzie `x,y,z` oznaczają geometrię dysku (przeczytaj odpowiednie strony `man`).

P: Mój BIOS ma informacje tylko o dwóch dyskach twardych, a nie o czterech. Czy to ma znaczenie?
O: Może! Używanie czterech dysków ze starym BIOSem pod DOSem wymaga stosowania dodatkowych sterowników. Nowsze BIOSy obsługują cztery dyski.

Linux bez kłopotu obsługuje cztery dyski nawet na większości starszych BIOSów, ale jeśli umieścisz partycję DOS na trzecim dysku, będziesz miał do niej dostęp wyłącznie z poziomu Linuksa.

Jest to ważne, ponieważ wiele komputerów ma dysk IDE i napęd CD-ROM IDE, a także, jeśli chcesz stosować rady z tego dokumentu, drugi dysk IDE.

Jeśli ten dokument na coś ci się przydał, proszę, daj mi znać.

## 10. Od tłumacza

Tłumaczenie to jest chronione prawami autorskimi © Leszka Pietryki. Dozwolone jest rozprowadzanie i dystrybucja na prawach takich samych jak dokument oryginalny.

Nie zmieniłem zasadniczej treści dokumentu. Dodałem tylko odnośniki do stron z polskimi wersjami tłumaczeń dokumentów HOWTO oraz wprowadziłem kilka nieznacznych zmian, jak na przykład tytuł pierwszej sekcji.

Nie znalazłem oryginału w formacie `sgml`, dlatego wszystkie znaczniki powstawiałem sam. W związku z tym winę za ewentualny niewłaściwy układ dokumentu ponoszę wyłącznie ja.

Jest to pierwsze HOWTO, które przetłumaczyłem, więc jest tu pewnie mnóstwo pomyłek. Będę wdzięczny za wszelkie komentarze i poprawki (no i oczywiście za pochwały ;-)).