Witam wszystkich.
Borykam się z plikiem z tematem hibernacji.
Utworzyłem plik wymiany i chcę by działała hibernacja. Jakoś nie mogę się do szukać tutka.
Widziałem na youtube ale coś jest zakręcone.
sudo fallocate -l 8G /swapfile
sudo mkswap /swapfile
sudo chmod 600 /swapfile
sudo swapon /swapfile
Tymi poleceniami na razie tylko utworzyłeś i aktywowałeś swapfile. Pomijam tu fakt, że zamiast fallocate rekomendują dd – ale to jest alternatywa, która też powinna zadziałać. Teraz powinieneś dodać odpowiednie parametry do kernela (czyli do /etc/default/grub w linii GRUB_CMDLINE_LINUX_DEFAULT) według schematu:
<swap_file_partition> to partycja, na której znajduje się swapfile, dla pewności sprawdź poleceniem findmnt -no UUID -T /swapfile
parametr <swap_file_offset> za Arch Wiki otrzymasz z polecenia filefrag -v /swapfile | awk '{ if($1=="0:"){print substr($4, 1, length($4)-2)} }' (są inne sposoby, ale ten daje bezpośredni wynik i nie wymaga tłumaczenia )
Na koniec jeszcze mała uwaga, jeśli korzystasz z brfts to sytuacja wygląda trochę inaczej zarówno jeśli chodzi o utworzenie swapfile jak i hibernację do niego – odsyłam do linków, a w razie problemów pytaj
Rekomendacja dotyczy niektórych systemów plików - ‘pozastandardowych’ - na których mogą być problemy (nie znam szczegółów). Używam fallocate na Ext4 i nie zarejestrowałem dotychczas jakichkolwiek nieprawidłowości.
Nie tyle tworzyła i usuwała, ile zarządzała swap’em dynamicznie, dodając/usuwając pliki (o stałym, zdefiniowanym rozmiarze), w zależności od potrzeb. EDIT-20210506 … i (jeżeli zechcemy) zarządzała pulą wszystkich dostępnych swap’ów.
Z tego wynika, że wszystkie wcześniejsze polecenia wykonywałeś z poziomu zwykłego użytkownika – błąd, wszystkie polecenia wykonujesz z uprawnieniami root.
Również źle, skoro zdecydowałeś się utworzyć swap w swoim katalogu domowym. Czyli zamiast /swapfile powinno być /home/rafiki20/swapfile
Kolejny błąd, tu podajesz UUID partycji na której znajduje się plik swap, czyli w twoim przypadku będzie to wynik findmnt -no UUID -T /home/rafiki20/swapfile
Mam nadzieję, że nie wpisałeś tego do terminala – te parametry (resume oczywiście do poprawy) podajesz w /etc/default/grub w linii:
GRUB_CMDLINE_LINUX_DEFAULT=
Potem oczywiście aktualizacja gruba, sudo update-grub
Nic więcej nie jest potrzebne, co najwyżej może być konieczne odblokowanie w ustawieniach systemowych opcji hibernacji, żeby się pojawiły w menu. Możesz też przetestować hibernację poleceniem systemctl hibernate
Zostawiasz, nowe wpisy dodajesz wewnątrz cudzysłowów. Bez znaczenia czy będą na początku, czy na końcu.
Jeszcze mały dodatek ode mnie, zajrzałem na wiki Archa i okazuje się, że zapomnieliśmy o jeszcze jednej rzeczy ważnej dla hibernacji, mianowicie o konfiguracji initframs. A więc w /etc/mkinitcpio.conf w HOOKS dodaj opcję resume i zrekonfiguruj initframs poleceniem sudo mkinitcpio -P
Jeżeli nie masz dobrego uzasadnienia do umieszczenia swap’a w swoim katalogu domowym, to nie rób tego. swapfile, to rzecz systemu (nawet jeżeli leży w home’ie), więc umieść go na podwórku systemowym (zazwyczaj spotykałem się z lokalizacją /swapfile, czyli plik bezpośrednio w /, ale możesz utworzyć go, na przykład, w stosownym katalogu w /var).
Przykład tworzenia i uruchamiania pliku swap:
Zamiast micro, jeżeli ktoś nie używa, może być nano. Edycja /etc/fstab ma służyć dokonania odpowiedniego wpisu, tak aby swap ‘uruchamiał się’ automatycznie ze startem systemu. Można, to zautomatyzować i wrzucić do jednej komendy.
Do zastanowienia użycie fallocate (z tego co wiem, to problemy z tą komendą mogą być pod Btrfs.)
Do tego, rzecz jasna, mkinitcpio i grub - wspominane wyżej przez @Tomek.
No i trzeba wziąć pod uwagę dodatkowe operacje (o których wyżej, we wcześniejszych wpisach), jeżeli chcemy hibernować system do swap’a w pliku.
Widziałem gdzieś zestawienie sugerowanych rozmiarów swap’a, w zależności od rozmiaru RAM’u i przeznaczenia (swap / swap+hibernacja) - jeżeli znajdę, to dopiszę. Z tego co pamiętam, to w przypadku 8GB RAM’u był mnożnik 2, czyli 16GB swap’a.
EDIT-20210506-1155 …
RAM: ⩽ 2 GB
swap space: 2 times the amount of RAM
swap+hibernation: 3 times the amount of RAM
RAM: > 2 GB – 8 GB
swap space: Equal to the amount of RAM
swap+hibernation: 2 times the amount of RAM
RAM: > 8 GB – 64 GB
swap space: At least 4 GB
swap+hibernation: 1.5 times the amount of RAM
RAM: > 64 GB
swap space: At least 4 GB
swap+hibernation: Hibernation not recommended
Jak dla mnie to powinien być skrypt dla początkujących jak instalują na nowo system bez formatowania partycji home. Powinno wybierać się rozmiar pliku pliku i miejsce utworzenia.