Windows XP pod Linuksem…

Żonka już się chwaliła swoim służbowym
laptopem
. Podstawowy system tam to oczywiście Linuks, PLD. Niestety…
żona w pracy zajmuje się, między innymi, ZUSem, a więc Windowsa też mieć musi.
Pół biedy mieć Windowsa na laptopie, gorsza jest konieczność wyłączania
Linuksa, żeby z niego skorzystać. Postanowiłem więc zainstalować Windowsa XP pod
Linuksem.

Już kiedyś bawiłem się VMWare, ale to komercyjne i pierońsko drogie
oprogramowanie, a już ostatnio gdy tego próbowaliśmy z darmowymi licencjami
nie było tak fajnie jak kiedyś, gdy można było co miesiąc sobie je po prostu
odnawiać. Darmowych wirtualnych pecetów jest kilka, jednak zwykle wiele im
brakuje. Najbardziej zachęcający wydał mi się QEMU szczególnie, że pojawił się
do niego akcelerator pozwalający na uruchamianie kodu na rzeczywistym,
a nie wirtualnym, procesorze. Dzięki temu wirtualny komputer może być znacznie
szybszy.

Legalny Windows XP OEM przyszedł razem z laptopem. Najpierw próbowałem
tego zainstalowanego już Windowsa odpalić z kopii partycji Windowsowej. Coś
tam niby się ładowało, ale zatrzymywało się na czarnym ekranie. Uznałem więc,
że trzeba w wirtualnej maszynie zainstalować system od nowa. Sądziłem, że
któraś z płytek dołączonych do komputerka zawiera wersję instalacyjną Windows.
Jednak nie, tam były tylko obrazy dysków i program do odtwarzania tego,
odmawiający współpracy na czymkolwiek innym niż taki sam laptop do jakiego
płytki były dołączone. Maszyna wirtualna QEMU nie spełniała tego warunku. Już
myślałem, że z instalacji nici, ale się okazało, że gotowa instalka leży
normalnie na dysku, na partycji Windowsowej, obok zainstalowanego systemu.

Zrobiłem obraz dysku z partycją FAT32, przegrałem tam instalkę, dorzuciłem
ten obraz jako drugi dysk, obok virtualnego dysku docelowego. Instalację udało
się uruchomić startując z jakiejś dyskietki startowej Windows 95. Szło to dość
powoli, ale praktycznie bezbłędnie do momentu pierwszego planowego restartu.
Instalacja po restarcie, dalej w trybie tekstowym, zaczęła się sypać. Jakichś
plików instalator nie mógł znaleźć, a potem wywalał się z Bus error.
Wyczytałem gdzieś, że na Bus error pomaga odpowiednie ustawienie
wielkości pamięci maszyny wirtualnej (powinno być tego trochę mniej niż
wynosiła wielkość /dev/shm), ale żeby od razu wykluczyć wszelkie problemy
i nie zaczynać wiele razy od nowa, wyłączyłem dla pewności też
kqemu (akcelerator). To drugie było raczej
niepotrzebne. W każdym razie instalacja się udała, tyle że trwała ponad 24h. Z
włączonym akceleratorem pewnie byłoby parę razy szybciej.

Teraz system się uruchamia i działa ładnie, tyle że strasznie wolno. Ale
największym problemem jest zegar — w Windows na wirtualnej maszynie
chodzi nawet grubo ponad 10 razy szybciej niż powinien. To pewnie powoduje
dodatkowe obciążenie (pewnie w Windows też coś w rodzaju crona chodzi),
a niektóre rzeczy przez to po prostu nie działają (timeout dla operacji, która
nawet nie zdążyła się rozpocząć). Na listach QEMU sugerowali NTP. Najpierw
spróbowałem klienta wbudowanego w Windows. Ale to porażka. Po ręcznym
ustawieniu czasu mniej-więcej udało się zsynchronizować zegar przez
NTP, ale ta synchronizacja polegała na jednorazowym ustawieniu czasu
z komunikatem, że kolejna będzie za tydzień. To zupełnie mnie nie
satysfakcjonowało. Zainstalowałem więc Windowsowy port normalnego
ntpd. Przynajmniej było widać, że ten stara się czas na bieżąco
ustawiać, ale przy tak rozjechanym zegarze najwyraźniej też zgłupiał
i przestawił mi zegar jeszcze o parę godzin. Chyba będzie trzeba poczekać aż
w samym QEMU jakoś ten problem rozwiążą…

Teraz spróbuję jeszcze zmienić wirtualną kartę graficzną ze zwykłego VGA
na SVGA Cirrus Logic — ciekawe jak to się odbije na wydajności. No
i czy tego się będzie dało w ogóle praktycznie używać.

4 uwagi do wpisu “Windows XP pod Linuksem…

Co o tym sądzisz?

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Wyloguj /  Zmień )

Zdjęcie na Facebooku

Komentujesz korzystając z konta Facebook. Wyloguj /  Zmień )

Połączenie z %s