Czasami zdarza się, że na forum ktoś pyta czy możliwa jest instalacja Linuksa na jednej partycji. Teoretycznie, owszem, jest to możliwe, jednak w praktyce często stosuje się podział na 2 partycje - jedna na system, a druga na przestrzeń wymiany, tzw. partycja swap.
Często zdarza się, że ktoś chce współdzielić Linuksa z Windowsem i ma już zajęte partycje oraz jedną wolną dla nowego systemu. Oczywiście można by tu stworzyć partycję rozszerzoną i zainstalować system na partycjach logicznych ale co zrobić, jeśli już jest jedna partycja rozszerzona, a na niej kilka partycji logicznych już zajętych? Teoretycznie, można by stworzyć nowe partycje logiczne, natomiast w praktyce często robi się bałagan w układzie partycji, powoduje to, że później niedoświadczony użytkownik gubi się w takim podziale. Poza tym, skoro Windowsa czy FreeBSD można zainstalować na jednej partycji, to dlaczego nie Linuksa? Dlatego postanowiłem napisać, jak to zrobić, nie rezygnując ze swapa. Nie będę tu opisywał samego procesu instalacji, a jedynie podpowiem, jak się za to zabrać.
Jeśli na dysku jest już wydzielona partycja podstawowa dla Linuksa, to na niej zostanie zainstalowany system. Jeśli taka partycja jeszcze nie jest wydzielona, to zostanie to zrobione podczas instalacji systemu. Sam proces będzie polegał na zainstalowaniu systemu na jednej partycji montowanej w katalogu głównym oraz na stworzeniu partycji swap jako pliku wymiany (podobnie jak w Windowsie), na tejże partycji. Dlatego w przypadku takiej instalacji proponuję wydzielić dla systemu minimum 10GB wolnej przestrzeni dyskowej. Jeśli jesteś gotowy, to możesz rozpocząć instalację dowolnej dystrybucji. Ponieważ ja używam na co dzień Ubuntu, to na tym system będę wszystko prezentował.
Po rozpoczęciu instalacji, gdy dojdziesz już do momentu podziału dysku, wybierz ręczny/zaawansowany podział. Stwórz nową partycję lub jeśli już taką stworzyłeś wcześniej, np. pod Windowsem, to zmień jej ustawienia - przypisz tej partycji punkt montowania / i użyj systemu plików, np. Ext4. Zapisz zmiany i zaznacz do sformatowania. Gdy spróbujesz przejść do kolejnego kroku instalacji, system zapewne uprzedzi Cię, że nie stworzyłeś partycji na przestrzeń wymiany i możesz to naprawić lub kontynuować instalację bez tej partycji, instalator może też ostrzec przed ewentualnym niestabilnym działaniem systemu. Oczywiście należy zignorować tę wiadomość, przejść dalej i zainstalować system. Plik wymiany zostanie stworzony po instalacji systemu.
Gdy system już się zainstalował i po drodze nie wystąpiły żadne błędy, należy go uruchomić. Jeśli nowy system uruchamia się bez problemu oraz nie pojawiły się żadne błędy w związku z brakiem partycji wymiany, to można zabrać się za tworzenie pliku wymiany. Dokonać tego można w bardzo szybki i prosty sposób, wykonując kilka poleceń w terminalu. Ponieważ potrzebne będą uprawnienia administracyjne, w tym celu należy zalogować się jako użytkownik root lub skorzystać z sudo, jeśli jest dostępne w twoim systemie.
W tym momencie należy zastanowić się ile potrzeba nam tak naprawdę przestrzeni wymiany. Uważam, że minimalnie powinno się stworzyć 512MB, a maksymalnie tyle ile mamy pamięci RAM (nie 2x ilość pamięci RAM, to już nie obowiązuje, szczególnie w przypadku dużych ilości pamięci fizycznej), chyba że ktoś zamierza ekstremalnie obciążać system (obróbka grafiki, edycja wideo itp.) to może stworzyć plik wymiany o wielkości dwukrotnej ilości pamięci fizycznej. Jeśli zamierzasz korzystać z hibernacji, to swap powinien być równy ilości pamięci fizycznej, czyli jeśli w komputerze zainstalowane jest 2GB RAM, to plik wymiany również powinien mieć 2GB, a dokładniej, to powinien mieć najlepiej 2048MB.
Żeby stworzyć plik wymiany, należy wydać takie polecenie
sudo dd if=/dev/zero of=/swap bs=1M count=2048
jest to dopiero fundament naszego przyszłego pliku wymiany. W tej chwili jest to surowy plik o wielkości 2GB, który wypadałoby sformatować jakimś systemem plików ale ponieważ to ma być przestrzeń wymiany, to trzeba go takim stworzyć, wydając kolejne polecenie. UWAGA! Jeśli chcesz stworzyć mniejszy lub większy plik wymiany, to zmień wartość count. Na przykład, jeśli chcesz stworzyć plik o wielkości 512MB, to wartość count należy zmienić na 512.
sudo mkswap /swap
Plik wymiany jest już stworzony i gotowy do użytku, trzeba go jeszcze najpierw aktywować, aby system mógł z niego korzystać
sudo swapon /swap
dla pewności można sprawdzić czy nasz swap działa.
free -m
Jeśli pojawi się coś podobnego
total used free shared buffers cached
Mem: 2004 1028 975 0 48 640
-/+ buffers/cache: 339 1664
Swap: 2047 0 2047
i w pozycji Swap będą podobne wartości, to znaczy, że swap jest aktywny i działa. Jeśli widzisz tam natomiast same zera, to znaczy, że swap nie jest aktywny. Żeby system mógł korzystać z pliku wymiany po ponownym i każdym uruchomieniu komputera, należy go dodać do pliku /etc/fstab.
sudo su -c 'echo "/swap none swap sw 0 0" /etc/fstab'
Na tym można już zakończyć. Jeśli jednak interesuje Cię korzystanie z hibernacji, to musisz dokonać małej modyfikacji konfiguracji Gruba, dodając do jądra odpowiedni parametr. W tym celu należy edytować plik /etc/default/grub, żeby było szybciej, wykorzystam do tego edytor Sed
sudo su -c "sed 's/GRUB\_CMDLINE\_LINUX\=""\/GRUB\_CMDLINE\_LINUX\="resume=/swap"/g' /etc/default/grub /etc/default/grub.new mv -v /etc/default/grub.new /etc/default/grub"
Polecenie uruchamia edytor Sed, który dopisuje do linii GRUB_CMD_LINUX parametr resume z lokalizacją naszego pliku wymiany, żeby system wiedział skąd ma odtworzyć obraz zapisanej pamięci. Po wykonaniu powyższego polecenia, gdy zajrzysz do pliku /etc/default/grub, powinno to wyglądać tak:
GRUB_CMDLINE_LINUX="resume=/swap"
Pozostało już tylko zaktualizować konfigurację Gruba poleceniem
sudo update-grub2
oraz initrd poleceniem:
sudo update-initramfs -u
Jeśli korzystasz nadal ze starszej wersji Gruba, to wystarczy dodać parametr resume=/swap do linii kernel w menu.lst. Po ponownym uruchomieniu można już korzystać z hibernacji.
Ja sam stosuję taki plik wymiany zamiast osobnej partycji na swap, mój dysk podzieliłem akurat na dwie partycje - jedną na system, a drugą na katalog domowy. System zachowuje się stabilnie, hibernacja też działa i nie sprawia problemów. Praktycznie nie odczuwam żadnej różnicy w działaniu systemu, więc z czystym sumieniem mogę zaproponować taki sposób instalacji