![]() |
|
M�j spos�b na wsp�lnego swapa Linuxa i w95 jest do�� prosty. Zmuszamy wina do
korzystania ze sta�ego swapa na naszej partycji wymiany, a potem w Linuksie
korzystamy z tej samej partycji co windows. Tylko, �e potem ta partycja ju� nie
mo�e by� odczytana przez windowsa - ma inny filesystem i nie ma windowsowego
swapa (plik win386.swp
). Musimy wi�c przywr�ci� na niej flesystem
dosowy i odtworzy� brakuj�cy plik. Potem zn�w pracujemy w Linuksie, on sobie
swapuje na nasza partycj�, przy ko�czeniu pracy zn�w zamienia partycj� na
format dosowy. Proste prawda? Ale jakie skuteczne. Jest to najszybsza metoda,
ze wszystkich jakie do tej pory testowa�em. Zreszt� co b�d� gada� - sami
przeczytajcie i sprawd�cie.
Dotychczas zosta�y upublicznione nast�puj�ce wersje tego dokumentu:
Dokument zosta� og�lnie przebudowany, opr�cz opisu dla dystrybucji Redhat zosta� dodany opis post�powania z dystrybucj� Slackware.
Poprawi�em liter�wki (mam nadziej�) oraz upro�ci�em troch� zagmatwany opis.
Dodany opis post�powania z dystrybucj� Debian (teraz s� a� trzy! :) (Debian, RedHat, Slackware)).
Wreszcie powsta�a wersja SGML tego dokumentu, bo dotychczas (a� wstyd si� przyzna� :( ) pisa�em to w HTML-u, ale tak, �eby wygl�da�o, �e by�o konwertowane z SGML...
Musisz mie� co najmniej trzy partycje. Jedn� z Linuxem, drug� z w95 i jeszcze trzecia na plik wymiany. Istnieje niepisana zasada, �e swap powinien by� dwa razy wi�kszy od ilo�ci RAM-u w Twoim komputerze. U mnie, przy 540 MB (prosz� bez �miech�w ;) ) dysku wygl�da to tak:
/dev/hda1 #partycja z w95 (256 MB)
/dev/hda2 #partycja z Linuxem (227 MB)
/dev/hda3 #partycja wymiany (32 MB)
Do podzia�u na partycje u�yj najlepiej linuxowego programu
fdisk
, nie jest mo�e najwygodniejszy w u�yciu, ale za to
najlepszy. Partycji do swapu nadaj identyfikator odpowidaj�cy typowi FAT16 (id
4 lub 6 w zale�no�ci od wielko�ci), a nie Linux Swap (id 82). Identyfikator
partycji ustawia opcja t
menu fdisk-a
.
Tu nie b�dziesz si� musia� du�o natrudzi�, zreszt� pod Linuxem te� nie. W Panelu Sterowania ustaw jako plik wymiany plik o wielko�ci minimalnej 0 i maksymalnej r�wnej wielko�ci partycji przeznaczonej na swapa. Zamknij windowsy i odpal Linuxa.
Tak, to nie �art. Linuxa te� musisz przygotowa�. Jak bym tego nie opisa� to
Microsoft wytoczy�by mi spraw� w s�dzie. ;) No to zaczynajmy.
Oczywi�cie musisz mie� zainstalowanego Linuxa. Zbytnich wymaga� co do j�dra
i wersji chyba nie ma, bo wydaje mi si�, �e ten spos�b b�dzie dzia�a� na ka�dym
Linuksie. Osobi�cie testowa�em to na Debianie, Redhacie, Slacku i j�drach od
2.0.35 do 2.2.9 (r�ne kombinacje, ale j�dra 2.2.x ju� tylko na Debianie).
Z narz�dzi potrzebne b�d� nam:
/bin/dd
/sbin/mkdosfs
(aka. /sbin/mkfs.msdos
)/sbin/mkswap
/bin/mount
/sbin/swapon
/sbin/swapoff
(kt�ry jest linkiem do /sbin/swapon
)/bin/umount
Wszystkie te programy (opr�cz mkdosfs
) to standard i powinny znajdowa� si�
w ka�dej, nawet najbardziej okrojonej, instalacji. mkdosfs
mo�na
skompilowa� maj�c �r�d�a, lub (co jest znacznie wygodniejsze) zainstalowa� z
pakietu, zw�aszcza, �e chyba ka�da dystrybucja posiada pakiet zawieraj�cy
mkdosfs
.
W Debianie mkdosfs
znajduje si� w pakiecie: dosfstools
. Opr�cz
mkdosfs
w pakiecie tym znajduje si� jeszcze narz�dzie do sprawdzania i
naprawiania dosowego filesystemu - dosfsck
. Pakiet mo�esz zainstalowa� np.
tak:
dpkg -i dosfstools_wersja.deb
Je�li nie masz instalki Debiana to pakiet mo�esz �ci�gn�� z
tego adresu.
Dok�adna nazwa pakietu zawieraj�cego mkdosfs
brzmi np:
mkdosfs-ygg-0.3b-5.i386.rpm
. Znajd� go na na p�ytce instalacyjnej RedHata,
katalogu z instalk� lub na jakim� serwerze FTP, np.
tutaj. Zainstaluj ten pakiet, np. w ten spos�b:
rpm --install mkdosfs-ygg-0.3b-8.i386.rpm
Po tej operacji mo�esz ju� przyst�pi� do sedna sprawy. :)
W Slackware standardowo jest zainstalowany mkdosfs
. A gdyby nie by�o
/sbin/mkdosfs
, to znajduje si� on w pakiecie bin.tgz
w
podkatalogu a3
dystrybucji. Zainstaluj ten pakiet, wraz z nim otrzymasz
jeszcze mas� po�ytecznych narz�dzi. Mo�esz u�y� pkgtool
lub
installpkg
. Pierwszy poprowadzi Ci� za r�k�, a drugi wystarczy wywo�a�
w ten spos�b:
installpkg bin.tgz
i pakiet jest ju� zainstalowany. Teraz mo�esz przej�� do nast�pnej cz�ci.
Wszystkie opisane poni�ej zmiany w plikach konfiguracyjnych dotycz� dystrybucji, kt�re s� tu wymienione: Debian, RedHat, Slackware. Je�li posiadasz inn� dystrybucj�, poszukaj w plikach startowych podobnych komend i popr�buj. Pami�taj jednak, �e mo�esz zrobi� sobie, a w�a�ciwie partycjom krzywd�, wi�c je�li nie do ko�ca wiesz co robisz nie r�b tego. Skorzystaj z pomocy bardziej do�wiadczonego kolegi, lub napisz do mnie - wsp�lnie na pewno co� poradzimy.
Acha, jeszcze jedna sprawa. Opisy zamieszczone tutaj dotycz�:
Notka: Czytaj�c dalej zapewne zauwa�ysz, �e przy wywo�aniachswapon
iswapoff
polecam zamieni� parametr-a
na nazw� konkretnej partycji. Jest to w�a�ciwie niepotrzebne, ale pisz� tak by by�o dok�adnie wiadomo, o kt�r� partycj� chodzi (u mnie/dev/hda3
). Czytaj�cman swapon
zobaczysz, �e opcja-a
pozwala na ma�� automatyzacj� w zarz�dzaniu partycjami wymiany. Je�li chcesz z niej korzysta� nic nie stoi temu na przeszkodzie. Po prostu nie zmieniaj tego parametru. We� tylko pod uwag�, �e komendamkswap
nie posiada takiej opcji i tu b�dziesz musia� wpisa� dok�adne nazwy partycji, bomkswap
nie przeczyta sobie ich z/etc/fstab
. Zamiast "brakuj�cej" opcji mo�esz uzy� petli shell'a, ale to ju� temat na inn� bajk�. Je�li Ci� to interesuje - mail me.
Powodzenia...
Zajmiemy si� tylko dwoma skryptami startowymi: checkroot.sh
i
umountfs
. W pierwszym z tych plik�w SWAP jest w��czany podczas startu
Linuxa, a w drugim wy��czany przed zamkni�ciem systemu.
/etc/init.d/checkroot.sh
Na samym pocz�tku tego pliku znajdziesz co� takiego:
if [ -x /sbin/swapon ]
then
[ "$VERBOSE" != no ] && echo "Activating swap..."
swapon -a
fi
Jak si� pewnie domy�lasz sekwencja ta powoduje w��czenie wszystkich swap�w
zdefiniowanych w /etc/fstab
. No i dobrze, bo my chcemy w��czy� te
swapy. Tylko, �e jak na razie nasza partycja wcale nie ma formatu Linux Swap (id
82) tylko DOS16. I co z tym fantem zrobi�? Potraktowa� mkswapem
. Zobacz
efekt moich zmian:
if [ -x /sbin/swapon ]
then
[ "$VERBOSE" != no ] && echo "Activating swap..."
mkswap /dev/hda3
swapon /dev/hda3
fi
/etc/init.d/umountfs
Plik ten jest wykonywany podczas zamykania systemu, wy��cza partycje wymiany, odmontowuje partycje inne ni� root i przemontowuje partycj� root jako read-only. W pliku tym jest co� takiego:
echo -n "Deactivating swap... "
swapoff -a
echo "done."
Ci�g tych polece� wy��cza pliki wymiany i wy�wietla na konsoli info. Zmienimy
tylko parametr -a
polecenia swapoff
na /dev/hda3
lub jaki tam
macie, przeformatowujemy partycj� na DOS16 i koniec.
A jednak nie.
Dlaczego to jeszcze nie koniec?
Nie koniec, bo nie ma pliku win386.swp
na naszej
�wie�o sformatowanej partycji. Windows (ale chyba tylko 95) sam powinien sobie
utworzy� brakuj�cy plik, ale nie zawsze si� tak dzieje. Wi�c mo�e mu pomo�emy.
Sami utworzymy brakuj�cy plik. Potrzebny do tego b�dzie katalog do
podmontowania �wie�o uwtorzonej partycji dosowej (najlpepiej pusty, ale
niekoniecznie, bo z moich do�wiadcze� wynika, �e mo�na podmontowa� filesystem
tak�e w niepustym katalogu). Fragment tego pliku po wszelkich przer�bkach
powinien wygl�da� mniej wi�cej tak:
echo -n "Deactivating swap... "
swapoff /dev/hda3
mkdosfs -n SWAP_SPACE /dev/hda3
mount -t msdos -o rw /dev/hda3 /katalog/w/ktorym/montujemy
dd if=/dev/zero of=/katalog/w/ktorym/montujemy/win386.swp bs=1k count=0
umount /dev/hda3
echo "done."
Przetestuj to jeszcze i ciesz si�! :)))
/etc/rc.d/rc.sysinit
Poszukaj w pliku /etc/rc.d/rc.sysinit
(gdzie� na pocz�tku) linii
wygladaj�cej mniej wi�cej tak:
# Start up swapping.
echo "Activating swap partitions"
swapon -a
Aktywuje ona partycje wymiany na wszystkich partycjach oznaczonych w pliku
/etc/fstab
jako swap. My potrzebujemy uaktywni� tylko jedn� partycj�,
mo�emy zmieni� parametr -a
na konkretn� warto�� u mnie to
/dev/hda3
). Ponadto musimy jeszcze wczesniej z naszej partycji wymiany
windowsa zrobic swapa linuxowego. S�u�y do tego polecenie
mkswap
. Po modyfikacji ta cz�� pliku powinna wygl�da� mniej
wi�cej tak:
# Start up swapping.
echo "Activating swap partitions"
mkswap /dev/hda3
swapon /dev/hda3
W tej cz�ci pliku ju� koniec ze zmianami, teraz przenosimy si� bli�ej
ko�ca /etc/rc.d/rc.sysinit
. Tam szukamy czego� podobnego do:
# Right, now turn on swap in case we swap to files.
echo "Enabling swap space."
swapon -a 2>&1 | grep -v "busy"
Tutaj te� parametr -a
zmie� na oznaczenie swojej partycji wymiany
(np. /dev/hda3
).
I to ju� wszystkie zmiany w tym pliku, przejd�my do nast�pnego.
/etc/rc.d/init.d/halt
Ten plik jest wykonywany w czasie zatrzymania lub restartu systemu,
czyli po wydaniu polecenia shutdown
z odpowiednimi parametrami lub po
naci�ni�ciu trzech 'magicznych' klawiszy (tzn. Ctrl+Alt+Del
). Zanim
zaczniesz cokolwiek zmienia�, chc�c unikn�� b��d�w musisz najpierw mie�
zainstalowany pakiet mkdosfs
. Pisa�em wcze�niej jak to zrobi�.
No to zaczynamy. W tym pliku (tzn. /etc/rc.d/init.d/halt
) nie
b�dziesz musia� du�o zmienia�. Znajd� co� podobnego do tego:
# Turn off swap, then unmount file systems.
echo "Turning off swap"
swapoff -a
Tutaj jak wsz�dzie zmieniamy parametr -a
na konkretne
oznaczenie partycji wymiany i wywo�anie polecenia ma posta�,
np. swapoff /dev/hda3
.
Teraz musimy jeszcze nada� partycji wymiany format dosowy,
po to, aby windows m�g� z niej skorzysta�. Robimy to poleceniem
mkdosfs
. Ta cz�� pliku ju� po wszelkich zmianach wygl�da
u mnie nast�puj�co:
# Turn off swap, then unmount file systems.
echo "Turning off swap"
swapoff /dev/hda3
mkdosfs -n SWAP_SPACE /dev/hda3
Parametr -n
z warto�ci� SWAP_SPACE
nadaje
tworzonej partycji dosowej etykiet� SWAP_SPACE. I to by�oby ju� prawie
wszystko, pozosta�o tylko odtworzy� brakuj�cy plik wymiany windowsa
win386.swp
(tu mo�esz zobaczy�
dlaczego).
A teraz poka�� jak. Po komendzie mkdosfs
dopisz jeszcze to:
mount -t msdos -o rw /dev/hda3 /katalog/w/ktorym/montujemy
dd if=/dev/zero of=/katalog/w/ktorym/montujemy/win386.swp bs=1k count=0
umount /dev/hda3
Ju� mo�esz rozkoszowa� si� swoim dzie�em... :)))
W Slacku te� musisz poprawi� tylko dwa pliki, w zasadzie zrobi� to samo co z RedHatem i Debianem, tylko �e w innych plikach... Opisywany tu przyk�ad pochodzi ze Slackware 3.6, ale z pewno�ci� w innych wersjach jest tak samo.
/etc/rc.d/rc.S
Plik /etc/rc.d/rc.S
jest wykonywany podczas inicjalizacji systemu.
Za ka�dym razem, gdy system wstaje, plik ten jest analizowany i wykonywane s�
zawarte w nim polecenia. Nam chodzi o to, �eby nasza partycja
(/dev/hda3
) zosta�a "przerobiona" na swapa dla Linuxa. Na samym
pocz�tku pliku znajdziecie co� takiego:
# enable swapping
/sbin/mkswap -a
/sbin/swapon -a
Polecenia te uruchamiaj� jako swap wszystkie partycje, kt�re s� oznaczone
w pliku /etc/fstab
jako przeznaczone do swapowania. Zamie� parametr
-a
na konkretn� partycj� (�eby u�ywa� tej jednej), albo we wspomnianym
pliku opisz j� jako miejsce na swap. Po operacji plik /etc/rc.d/rc.6
powinien wygl�da� np. tak:
# enable swapping
/sbin/mkswap /dev/hda3
/sbin/swapon /dev/hda3
albo niech pozostanie w oryginalnej postaci, a w /etc/fstab
powinno
pojawi� si� co� takiego:
/dev/hda3 swap swap defaults 0 0
/etc/rc.d/rc.6
Ten pliczek jest z kolei wykonywany przy zamykaniu systemu. To tutaj musimy zawrze� linijki odpowiadaj�ce za przywr�cenie windzie straconego swapa. Poszukaj czego� takiego:
# Turn off swap, then unmount local file systems.
echo "Turning off swap."
swapoff -a
Tutaj zmiany nie b�d� polega�y ju� tylko na prostej kosmetyce. Opcj� -a
tradycyjnie przemianowujemy na oznaczenie partycji wymiany oraz musimy zrobi�
co� jeszcze. Mianowicie utowrzy� na tej�e partycji filesystem dosowy i
odtworzy� swapa pani windzie. Pierwsze za�atwiamy u�ywaj�c narz�dzia
mkdosfs
, a konkretniej:
mkdosfs -n SWAP_SPACE /dev/hda3
Teraz wystarczy ju� tylko odtworzy� plik win386.swp
na nowiutkim
filesystemie. (Chcesz wiedzie� po co? - kliknij
tutaj!)
Aby tego dokona� musisz dysponowa� katalogiem do podmontowania filesystemu
przed chwil� utworzonego (no, oczywi�cie mo�esz zapisywa� bezpo�rednio na
partycj�, ale nie polecam :))). Najpro�ciej chyba tak:
mount -t msdos -o rw /dev/hda3 /katalog/w/ktorym/montujemy
dd if=/dev/zero of=/katalog/w/ktorym/montujemy/win386.swp bs=1k count=0
umount /dev/hda3
To utworzy brakuj�cy plik i ju� po k�opocie. B�dzie to plik pusty o
rozmiarze 0, ale taki w�a�nie powinien by�.
Sprawd� co zdzia�a�e�/a� i odpocznij troch� :)))
Mam nadziej�, �e cho� troch� pomog�em paru osobom. Wszelkie pytania dotycz�ce tego dokumentu prosz� kierowa� na adres: sniff@alpha.net.pl. Krytyka wszelkiego rodzaju mile widziana. Prosi�bym o kontakt u�ytkownik�w dystrybucji innych ni� trzy opisane, aby w przysz�o�ci rozbudowa� ten dokument.
Mo�e znajdzie si� osoba, kt�ra pr�bowa�a przenie�� to mini-JTZ w realia win98. Prosz� niech opisze wra�enia i prze�le mi, bo moja edukacje w �wiecie windows�w sko�czy�a sie na 95 i to nie OSR2.
Dzi�kuj� za uwag�.
#
Hosting by: Hurra Communications Sp. z o.o.
Generated: 2007-01-26 18:02:23