SWAP partition pl


SWAP dla Linuxa i w95 mini-HOWTO Seweryn Sobieszek sniff@alpha.net.pl v1.2, 20 sierpnia 1999 Jak zrobi swap dla windowsa i Linuxa na jednej partycji? Opis zna- jdziesz tutaj. Opisywany dalej sposb jest mojego autorstwa. Moliwe, e kto ju wczeniej wpad na ten pomys, ale ja wymyliem go sam. Zaznaczam, e nie przeczytaem tego w adnym FAQ. Brak takowego dokumentu jest gwn przyczyn powstania tego pliku. Chc pomc wszystkim, ktry maj podobny problem do mojego tzn. zbyt may twardy dysk, by sobie pozwoli na luk- sus dwch oddzielnych swapw. Dokument ten zosta napisany w standardzie ISO-8859-2. Wersja oryginalna znajduje si na serwerze JTZ: . ______________________________________________________________________ Spis treci 1. Wstp 1.1 Krtki opis metody 1.2 Historia dokumentu 1.2.1 Zmiany w wersji 1.1 1.2.2 Zmiany w wersji 1.2 2. Przygotowanie dysku i softu 2.1 Podzia dysku na partycje 2.2 Przygotowanie Windows95 2.3 Przygotowanie Linuxa 2.3.1 Debian 2.3.2 RedHat 2.3.3 Slackware 3. Sedno sprawy 3.1 Debian 3.1.1 Plik 3.1.2 Plik 3.2 RedHat 3.2.1 Zmiany w pliku 3.2.2 Zmiany w pliku 3.3 Slackware 3.3.1 Zmiany w pliku 3.3.2 Zmiany w pliku 4. Od autora ______________________________________________________________________ 11.. WWssttpp 11..11.. KKrrttkkii ooppiiss mmeettooddyy Mj sposb na wsplnego swapa Linuxa i w95 jest do prosty. Zmuszamy wina do korzystania ze staego swapa na naszej partycji wymiany, a potem w Linuksie korzystamy z tej samej partycji co windows. Tylko, e potem ta partycja ju nie moe by odczytana przez windowsa - ma inny filesystem i nie ma windowsowego swapa (plik win386.swp). Musimy wic przywrci na niej flesystem dosowy i odtworzy brakujcy plik. Potem znw pracujemy w Linuksie, on sobie swapuje na nasza partycj, przy koczeniu pracy znw zamienia partycj na format dosowy. Proste prawda? Ale jakie skuteczne. Jest to najszybsza metoda, ze wszystkich jakie do tej pory testowaem. Zreszt co bd gada - sami przeczytajcie i sprawdcie. 11..22.. HHiissttoorriiaa ddookkuummeennttuu Dotychczas zostay upublicznione nastpujce wersje tego dokumentu: +o v1.01, 22 listopada 1998 +o v1.1, 28 marca 1999 (patrz rozdzia ``Zmiany w wersji 1.1'') +o v1.2, 20 sierpnia 1999 (patrz rozdzia ``Zmiany w wersji 1.2'') 11..22..11.. ZZmmiiaannyy ww wweerrssjjii 11..11 Dokument zosta oglnie przebudowany, oprcz opisu dla dystrybucji Redhat zosta dodany opis postpowania z dystrybucj Slackware. Poprawiem literwki (mam nadziej) oraz uprociem troch zagmatwany opis. 11..22..22.. ZZmmiiaannyy ww wweerrssjjii 11..22 Dodany opis postpowania z dystrybucj Debian (teraz s a trzy! :) (Debian, RedHat, Slackware)). Wreszcie powstaa wersja SGML tego dokumentu, bo dotychczas (a wstyd si przyzna :( ) pisaem to w HTML-u, ale tak, eby wygldao, e byo konwertowane z SGML... 22.. PPrrzzyyggoottoowwaanniiee ddyysskkuu ii ssooffttuu 22..11.. PPooddzziiaa ddyysskkuu nnaa ppaarrttyyccjjee 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 wikszy od iloci RAM-u w Twoim komputerze. U mnie, przy 540 MB (prosz bez miechw ;) ) dysku wyglda to tak: /dev/hda1 #partycja z w95 (256 MB) /dev/hda2 #partycja z Linuxem (227 MB) /dev/hda3 #partycja wymiany (32 MB) Do podziau na partycje uyj najlepiej linuxowego programu fdisk, nie jest moe najwygodniejszy w uyciu, ale za to najlepszy. Partycji do swapu nadaj identyfikator odpowidajcy typowi FAT16 (id 4 lub 6 w zalenoci od wielkoci), a nie Linux Swap (id 82). Identyfikator partycji ustawia opcja t menu fdisk-a. 22..22.. PPrrzzyyggoottoowwaanniiee WWiinnddoowwss9955 Tu nie bdziesz si musia duo natrudzi, zreszt pod Linuxem te nie. W Panelu Sterowania ustaw jako plik wymiany plik o wielkoci minimalnej 0 i maksymalnej rwnej wielkoci partycji przeznaczonej na swapa. Zamknij windowsy i odpal Linuxa. 22..33.. PPrrzzyyggoottoowwaanniiee LLiinnuuxxaa Tak, to nie art. Linuxa te musisz przygotowa. Jak bym tego nie opisa to Microsoft wytoczyby mi spraw w sdzie. ;) No to zaczynajmy. Oczywicie musisz mie zainstalowanego Linuxa. Zbytnich wymaga co do jdra i wersji chyba nie ma, bo wydaje mi si, e ten sposb bdzie dziaa na kadym Linuksie. Osobicie testowaem to na Debianie, Redhacie, Slacku i jdrach od 2.0.35 do 2.2.9 (rne kombinacje, ale jdra 2.2.x ju tylko na Debianie). Z narzdzi potrzebne bd nam: +o /bin/dd +o /sbin/mkdosfs (aka. /sbin/mkfs.msdos) +o /sbin/mkswap +o /bin/mount +o /sbin/swapon +o /sbin/swapoff (ktry jest linkiem do /sbin/swapon) +o /bin/umount +o oraz twj ulubiony edytor i packet manager (chybae chcesz wszystko kompilowa) Wszystkie te programy (oprcz mkdosfs) to standard i powinny znajdowa si w kadej, nawet najbardziej okrojonej, instalacji. mkdosfs mona skompilowa majc rda, lub (co jest znacznie wygodniejsze) zainstalowa z pakietu, zwaszcza, e chyba kada dystrybucja posiada pakiet zawierajcy mkdosfs. 22..33..11.. DDeebbiiaann W Debianie mkdosfs znajduje si w pakiecie: dosfstools. Oprcz mkdosfs w pakiecie tym znajduje si jeszcze narzdzie do sprawdzania i naprawiania dosowego filesystemu - dosfsck. Pakiet moesz zainstalowa np. tak: dpkg -i dosfstools_wersja.deb Jeli nie masz instalki Debiana to pakiet moesz cign z tego adresu . 22..33..22.. RReeddHHaatt Dokadna nazwa pakietu zawierajcego mkdosfs brzmi np: mkdosfs- ygg-0.3b-5.i386.rpm. Znajd go na na pytce instalacyjnej RedHata, katalogu z instalk lub na jakim serwerze FTP, np. tutaj . Zainstaluj ten pakiet, np. w ten sposb: rpm --install mkdosfs-ygg-0.3b-8.i386.rpm Po tej operacji moesz ju przystpi do sedna sprawy. :) 22..33..33.. SSllaacckkwwaarree W Slackware standardowo jest zainstalowany mkdosfs. A gdyby nie byo /sbin/mkdosfs, to znajduje si on w pakiecie bin.tgz w podkatalogu a3 dystrybucji. Zainstaluj ten pakiet, wraz z nim otrzymasz jeszcze mas poytecznych narzdzi. Moesz uy pkgtool lub installpkg. Pierwszy poprowadzi Ci za rk, a drugi wystarczy wywoa w ten sposb: installpkg bin.tgz i pakiet jest ju zainstalowany. Teraz moesz przej do nastpnej czci. 33.. SSeeddnnoo sspprraawwyy Wszystkie opisane poniej zmiany w plikach konfiguracyjnych dotycz dystrybucji, ktre s tu wymienione: Debian, RedHat, Slackware. Jeli posiadasz inn dystrybucj, poszukaj w plikach startowych podobnych komend i poprbuj. Pamitaj jednak, e moesz zrobi sobie, a waciwie partycjom krzywd, wic jeli nie do koca wiesz co robisz nie rb tego. Skorzystaj z pomocy bardziej dowiadczonego kolegi, lub napisz do mnie - wsplnie na pewno co poradzimy. Acha, jeszcze jedna sprawa. Opisy zamieszczone tutaj dotycz: +o Debian GNU Linux 2.1 (slink) +o RedHat Linux 5.1 Manhattan +o Slackware 3.6 Prawdopodobnie w innych wersjach tych dystrybucji pliki konfiguracyjne wygldaj tak samo, a co najmniej podobnie, wic nie powinno by problemw. NNoottkkaa:: Czytajc dalej zapewne zauwaysz, e przy wywoaniach swapon i swapoff polecam zamieni parametr -a na nazw konkretnej partycji. Jest to waciwie niepotrzebne, ale pisz tak by byo dokadnie wiadomo, o ktr partycj chodzi (u mnie /dev/hda3). Czytajc man swapon zobaczysz, e opcja -a pozwala na ma automatyzacj w zarzdzaniu partycjami wymiany. Jeli chcesz z niej korzysta nic nie stoi temu na przeszkodzie. Po prostu nie zmieniaj tego parametru. We tylko pod uwag, e komenda mkswap nie posiada takiej opcji i tu bdziesz musia wpisa dokadne nazwy partycji, bo mkswap nie przeczyta sobie ich z /etc/fstab. Zamiast "brakujcej" opcji moesz uzy petli shell'a, ale to ju temat na inn bajk. Jeli Ci to interesuje - mail me. Powodzenia... 33..11.. DDeebbiiaann Zajmiemy si tylko dwoma skryptami startowymi: checkroot.sh i umountfs. W pierwszym z tych plikw SWAP jest wczany podczas startu Linuxa, a w drugim wyczany przed zamkniciem systemu. 33..11..11.. PPlliikk //eettcc//iinniitt..dd//cchheecckkrroooott..sshh Na samym pocztku tego pliku znajdziesz co takiego: if [ -x /sbin/swapon ] then [ "$VERBOSE" != no ] && echo "Activating swap..." swapon -a fi Jak si pewnie domylasz sekwencja ta powoduje wczenie wszystkich swapw zdefiniowanych w /etc/fstab. No i dobrze, bo my chcemy wczy 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 33..11..22.. PPlliikk //eettcc//iinniitt..dd//uummoouunnttffss Plik ten jest wykonywany podczas zamykania systemu, wycza 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." Cig tych polece wycza pliki wymiany i wywietla na konsoli info. Zmien- imy tylko parametr -a polecenia swapoff na /dev/hda3 lub jaki tam macie, przeformatowujemy partycj na DOS16 i koniec. A jednak nie. DDllaacczzeeggoo ttoo jjeesszzcczzee nniiee kkoonniieecc?? Nie koniec, bo nie ma pliku win386.swp na naszej wieo sformatowanej partycji. Windows (ale chyba tylko 95) sam powinien sobie utworzy brakujcy plik, ale nie zawsze si tak dzieje. Wic moe mu pomoemy. Sami utworzymy brakujcy plik. Potrzebny do tego bdzie katalog do podmontowania wieo uwtorzonej partycji dosowej (najlpepiej pusty, ale niekoniecznie, bo z moich dowiadcze wynika, e mona podmontowa filesystem take w niepustym katalogu). Fragment tego pliku po wszelkich przerbkach powinien wyglda mniej wicej 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! :))) 33..22.. RReeddHHaatt 33..22..11.. ZZmmiiaannyy ww pplliikkuu //eettcc//rrcc..dd//rrcc..ssyyssiinniitt Poszukaj w pliku /etc/rc.d/rc.sysinit (gdzie na pocztku) linii wygladajcej mniej wicej 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, moemy zmieni parametr -a na konkretn warto u mnie to /dev/hda3). Ponadto musimy jeszcze wczesniej z naszej partycji wymiany windowsa zrobic swapa linuxowego. Suy do tego polecenie mmkksswwaapp. Po modyfikacji ta cz pliku powinna wyglda mniej wicej tak: # Start up swapping. echo "Activating swap partitions" mkswap /dev/hda3 swapon /dev/hda3 W tej czci pliku ju koniec ze zmianami, teraz przenosimy si bliej koca /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, przejdmy do nastpnego. 33..22..22.. ZZmmiiaannyy ww pplliikkuu //eettcc//rrcc..dd//iinniitt..dd//hhaalltt Ten plik jest wykonywany w czasie zatrzymania lub restartu systemu, czyli po wydaniu polecenia shutdown z odpowiednimi parametrami lub po naciniciu trzech 'magicznych' klawiszy (tzn. Ctrl+Alt+Del). Zanim zaczniesz cokolwiek zmienia, chcc unikn bdw musisz najpierw mie zainstalowany pakiet mmkkddoossffss. Pisaem wczeniej jak to zrobi. No to zaczynamy. W tym pliku (tzn. /etc/rc.d/init.d/halt) nie bdziesz musia duo zmienia. Znajd co podobnego do tego: # Turn off swap, then unmount file systems. echo "Turning off swap" swapoff -a Tutaj jak wszdzie zmieniamy parametr -a na konkretne oznaczenie partycji wymiany i wywoanie polecenia ma posta, np. swapoff /dev/hda3. Teraz musimy jeszcze nada partycji wymiany format dosowy, po to, aby windows mg z niej skorzysta. Robimy to poleceniem mkdosfs. Ta cz pliku ju po wszelkich zmianach wyglda u mnie nastpujco: # Turn off swap, then unmount file systems. echo "Turning off swap" swapoff /dev/hda3 mkdosfs -n SWAP_SPACE /dev/hda3 Parametr -n z wartoci SWAP_SPACE nadaje tworzonej partycji dosowej etykiet SWAP_SPACE. I to byoby ju prawie wszystko, pozostao tylko odtworzy brakujcy plik wymiany windowsa win386.swp (tu moesz 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 moesz rozkoszowa si swoim dzieem... :))) 33..33.. SSllaacckkwwaarree 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 przykad pochodzi ze Slackware 3.6, ale z pewnoci w innych wersjach jest tak samo. 33..33..11.. ZZmmiiaannyy ww pplliikkuu //eettcc//rrcc..dd//rrcc..SS Plik /etc/rc.d/rc.S jest wykonywany podczas inicjalizacji systemu. Za kadym razem, gdy system wstaje, plik ten jest analizowany i wykonywane s zawarte w nim polecenia. Nam chodzi o to, eby nasza partycja (/dev/hda3) zostaa "przerobiona" na swapa dla Linuxa. Na samym pocztku pliku znajdziecie co takiego: # enable swapping /sbin/mkswap -a /sbin/swapon -a Polecenia te uruchamiaj jako swap wszystkie partycje, ktre s oznaczone w pliku /etc/fstab jako przeznaczone do swapowania. Zamie parametr -a na konkretn partycj (eby uywa tej jednej), albo we wspomnianym pliku opisz j jako miejsce na swap. Po operacji plik /etc/rc.d/rc.6 powinien wyglda 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 33..33..22.. ZZmmiiaannyy ww pplliikkuu //eettcc//rrcc..dd//rrcc..66 Ten pliczek jest z kolei wykonywany przy zamykaniu systemu. To tutaj musimy zawrze linijki odpowiadajce za przywrcenie windzie straconego swapa. Poszukaj czego takiego: # Turn off swap, then unmount local file systems. echo "Turning off swap." swapoff -a Tutaj zmiany nie bd polegay ju tylko na prostej kosmetyce. Opcj -a tradycyjnie przemianowujemy na oznaczenie partycji wymiany oraz musimy zrobi co jeszcze. Mianowicie utowrzy na teje partycji filesystem dosowy i odtworzy swapa pani windzie. Pierwsze zaatwiamy uywajc narzdzia 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, oczywicie moesz zapisywa bezporednio na par- tycj, ale nie polecam :))). Najprociej 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 brakujcy plik i ju po kopocie. Bdzie to plik pusty o rozmi- arze 0, ale taki wanie powinien by. Sprawd co zdziaae/a i odpocznij troch :))) 44.. OOdd aauuttoorraa Mam nadziej, e cho troch pomogem paru osobom. Wszelkie pytania dotyczce tego dokumentu prosz kierowa na adres: sniff@alpha.net.pl. Krytyka wszelkiego rodzaju mile widziana. Prosibym o kontakt uytkownikw dystrybucji innych ni trzy opisane, aby w przyszoci rozbudowa ten dokument. Moe znajdzie si osoba, ktra prbowaa przenie to mini-JTZ w realia win98. Prosz niech opisze wraenia i przele mi, bo moja edukacje w wiecie windowsw skoczya sie na 95 i to nie OSR2. Dzikuj za uwag.

Wyszukiwarka

Podobne podstrony:
SWAP partition pl (2)
SWAP partition pl 2 (2)
SWAP partition pl 4 (2)
SWAP partition pl 1 (2)
SWAP partition pl (3)
SWAP partition pl 3 (2)
TI 99 08 19 B M pl(1)
bootdisk howto pl 8
BORODO STRESZCZENIE antastic pl
notatek pl sily wewnetrzne i odksztalcenia w stanie granicznym
WSM 10 52 pl(1)
amd102 io pl09
PPP HOWTO pl 6 (2)
bridge firewall pl 3
NIS HOWTO pl 1 (2)
31994L0033 PL (2)

więcej podobnych podstron