Manjaro w bryle lodu
W trosce o długowieczność baterii, hibernowanie sprzętów to miła rzecz. Jeszcze milsza, gdy nasz ulubiony system operacyjny radzi sobie z tym tematem bez zająknięcia. Nic wszak tak nie cieszy, jak bezproblemowy start maszyny w 5 sekund do pełnego pulpitu. Jednak niekiedy trzeba lekko wspomóc wysiłki twórców dystrybucji, którzy być może przez nieuwagę poczynili niedopatrzenia w konfiguracji domyślnej, przez co hibernacja nie zawsze się udaje, tak jak powinna. Manjaro nie jest w tym temacie wyjątkiem – a przynajmniej wersja 0.8.8 układa sprzęt do hibernetycznego snu, lecz wybudza go niezbyt umiejętnie, przez co zamiast przywrócenia zapisanego stanu patrzymy na pełen start systemu. Ale wystarczą drobne ręczne poprawki, by zawstydzić prędkością ‘uruchamiania się’ posiadaczy wiodącego systemu w najnowszym wydaniu.
Dla wielu ‘dobre ręczne poprawki’ w tekstowym wydaniu linuksowym brzmią odpychającą i odstraszająco. Lecz bądźmy szczerzy, dopisanie paru znaków w określonych miejsca nie jest chyba tytanicznym wysiłkiem i nie przynosi ujmy w wygodzie obsługi i użytkowania. Szczególnie, że problem powstał w wyniku zaniedbania podczas tworzenia obrazu initrd z którego korzysta Manjaro podczas startu systemu. Chyba nie muszę dodawać, że aby cieszyć się w pełni z uroków hibernacji, należy posiadać partycję swap o objętości co najmniej równej ilości zainstalowanej w maszynie pamięci RAM. Zatem do dzieła…
Najpierw naprawimy obraz initrd. Otwieramy do edycji z prawami roota plik /etc/mkinitcpio.conf:
gksu gedit /etc/mkinitcpio.conf
W miejsce edytora gedit możemy użyć dowolnie innego. W otworzonym pliku odnajdujemy linijkę zaczynającą się od ‘HOOKS=’ (bez znaczka # na początku linii). Dopisujemy gdzieś na końcu ‘resume’:
HOOKS=”base udev autodetect modconf block filesystems keyboard fsck plymouth resume”
Zapisujemy i wykonujemy w terminalu polecenie:
sudo mkinitcpio -p linux3XX
… gdzie linux3XX to seria kernela którego używamy – linux310, linux312, itp.
Ok, ten etap mamy za sobą. Pozostaje drobny niuans – poinstruowanie GRUBa, która to jest nasza partycja wymiany. Identyfikujemy ją za pomocą polecenia:
blkid
Odnajdujemy linijkę z TYPE=”swap”, kopiujemy UUID tej partycji. I ponownie otwieramy do edycji z prawami roota pliki /etc/default/grub:
gksu gedit /etc/default/grub
Odnajdujemy GRUB_CMDLINE_LINUX_DEFAULT i dopisujemy gdzieś pod koniec nasz UUID, tak, by linijka wyglądała mniej więcej:
GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash resume=UUID=nasz_skopiowany_UUID”
Nonszalancko wydajemy polecenie:
sudo update-grub
I po restarcie systemu jesteśmy gotowi do testowania naszej hibernacji. Wznawianie pracy stareńkiego eeePC 1005p w ciągu 5 sekund było warte tych paru poleceń. Chyba nie muszę dodawać, jak to wpłynęło na żywotność akumulatora.
Wielki plus za rozpisanie tego. Dzięki
Czy w /etc/default/grub zamiast resume=UUID=nasz_skopiowany_UUID mogę wpisać resume=/dev/sda1?
Jak najbardziej można to zapisać i w ten sposób.
Dziękuję
Właśnie z tym samym walczę w Antergosie :p
Mały tip: nonszalanckie “sudo update-grub” można zamienić na “sudo grub-mkconfig -o /boot/grub/grub.cfg”. Chyba 😛
Można zamienić, ale po co? Ktoś wpadł na pomysł aby napisać krótki skrypt, wrzucić go do /sbin i ułatwić innym życie. Po co utrudniać?