(3 odpovědi)
Uzavřeno před 2 lety.
Hibernace na mém Ubuntu 18.04 nefungovalo hned po vybalení (mám na mysli sudo systemctl hibernate
). Tak jsem se to před časem několikrát pokusil napravit a bohužel si přesně nepamatuji, co jsem udělal.
Ale teď:
sudo hibernate
úspěšně hibernuje systém a při příštím spuštění se stav systému úspěšně obnoví, kromě toho, že se nezobrazí přihlašovací obrazovka, což není dobré. A pokud mám spuštěno mnoho aplikací, může po takovém obnovení systém zamrznout až na 20 minut (vidím okna aplikací, mohu pohybovat ukazatelem myši, ale systém nereaguje na kliknutí), ale poté funguje normálně.
sudo systemctl hibernate
něco provede, vypne systém, ale při příštím spuštění se mi zobrazí několik zpráv delete orphaned node a nakonec čisté spuštění, jako by neexistovala žádná hibernace.
Prosím, pomozte mi to vyčistit a povolit hibernaci v rozhraní gui.
Současně pozastavení do paměti a obnovení z paměti funguje bez problémů, včetně přihlašovací obrazovky při obnovení .
Primární otázka, kterou mám, zní:Který z těchto dvou mechanismů hibernate
nebo systemctl hibernate
mám použít s 18.04?
Podrobnosti
Systém má odkládací oddíl
$ lsblk | grep SWAP
└─sda5 8:5 0 16,8G 0 part [SWAP]
$ free -m
total used free shared buff/cache available
Mem: 15894 3386 9945 1311 2561 11848
Swap: 17163 2150 15013
a v /etc/default/grub
má
GRUB_CMDLINE_LINUX_DEFAULT=”tiché splash restore=/dev/sda5″
GRUB_CMDLINE_LINUX=””
a
$ cat /sys/power/state
freeze mem disk
$ cat /sys/power/disk
[platform] shutdown reboot suspend test_resume
[VYŘEŠENO] 🙂
Konečně se mi podařilo zavést hibernaci do práce. Dokud tomuto tématu nerozumím, raději popíšu, co jsem dělal. Takže
- Úplně odstraněny pm-utils a uswsusp a poté
sudo update-initramfs -c -k all
areboot
Po tomto pokusu o hibernaci skončilo čisté spuštění namísto obnovení. Tak tedy
- Přeinstalováno systemd poté změnil názvy zařízení na UUID tak, aby
v /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash continue=UUID=2c8ec945-6967-4538-93ef-49eb4df6f2a1″
v /etc/initramfs-tools/conf.d/resume
RESUME=UUID=2c8ec945-6967-4538-93ef-49eb4df6f2a1
pak
$ sudo update-initramfs -c -k all
$ sudo update-grub
$ reboot
Po tomto sudo systemctl hibernate
a pokračování bylo úspěšné, ale bez přihlašovací obrazovky, takže
- V Nastavení (gui) pro akci tlačítka napájení jsem přiřadil „Hibernate“
Nyní, když stisknu tlačítko napájení, systém přejde do hibernace a poté se obnoví prostřednictvím přihlašovací obrazovky.
Všem zúčastněným moc děkujeme
UPD:Nyní jsem našel ještě lepší řešení – použít odkládací soubor
Ověřil jsem to na čerstvé desktopové instalaci Ubuntu 18.10 a předpokládám, že to funguje i s čerstvou desktopovou instalací 18.04, protože oba používají odkládací soubor ve výchozím nastavení, tj. nepřidělují swap oddíl ve výchozím stavu. Ale výchozí odkládací soubor je 2Gb bez ohledu na velikost systémové paměti, takže by se měla zvětšit.
Kompletní popis je například zde.
Nejlepší odpověď
Zde jsou dvě vynikající odpovědi na otázky týkající se hibernace s trochu podrobnějšími informacemi:
Little Ancient Forest Kami Odpověď na:Ubuntu 18.04 nelze po hibernaci obnovit
Související:Deja-dup stále žádá o heslo?Zanna Odpověď na:Jak mohu v Ubuntu 16.04 hibernovat?
Normálně Hibernate nepoužívám, ale nedávno jsem se ho pokoušel použít při hledání chyby a uvědomil jsem si, že abyste mohli pracovat na 18.04, musíte přidat řádek do /etc/default/grub, abyste mu řekli, odkud pokračovat.
Dne 16.04 nebylo nutné přidávat parametr ‚resume=‘ do grub, takže si myslím, že ke změně došlo relativně nedávno.
Pravděpodobně bude nejlepší použít UUID (Universally Unique Identifier) a můžete použít program ‚Disky‘ ke zjištění UUID vašeho odkládacího oddílu a jednoduše jej zkopírovat a vložit odtud.
Použijte sudo nano /etc/default/grub
přidat do řádku
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
takže má extra parametr jádra resume=UUID=theUUIDofyourswappartition
mezi uvozovkami.
Váš bude jiný, ale v mém případě je řádek:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=UUID=549816d3-0ed8-44fa-a7e4-968db519a141"
(ukončete nano pomocí Ctrl +x , stiskněte y proveďte změny a zadejte přijmout název souboru)
Musíte spustit sudo update-grub
aby byly vaše změny účinné, ale při příštím restartu byste měli být schopni hibernace bez problémů.
Pokud vím, funkce hibernace je obnovit tam, kde jste přestali, takže není navržena tak, aby přešla na přihlašovací obrazovku a požadovala vaše heslo.
Nevím, jestli to můžete změnit tak, aby se vás to zeptalo na vaše heslo, ale možná by stálo za to položit samostatnou otázku, abyste zjistili, zda někdo jiný neví, co má dělat.
Odkládací soubor
Pokud máte místo samostatného odkládacího oddílu odkládací soubor, musíte také přidat extra resume_offset=
parametr.
Arch Linux Wiki o tom má skvělou sekci, ale v zásadě by váš odkládací soubor měl být na hlavním oddílu, na kterém máte nainstalované Ubuntu.
Chcete-li zjistit offset, vložte do resume_offset=
můžete otevřít terminál a napsat
sudo filefrag -v /swapfile
získáte něco, co vypadá takto:
ext: logical_offset: physical_offset: length: expected: flags:
0: 0.. 32767: 34816.. 67583: 32768:
1: 32768.. 63487: 67584.. 98303: 30720:
2: 63488.. 96255: 100352.. 133119: 32768: 98304:
3: 96256.. 126975: 133120.. 163839: 30720:
etc...
a chcete první číslo na prvním řádku, který je pod physical_offset
(v tomto případě 34816
)
Takže jen jako příklad, pomocí UUID a fyzického offsetu mého počítače s odkládacím souborem, jsem změnil GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
řádek být
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=UUID=09e601cd-5bac-491a-9115-fda1b2eb4664 resume_offset=34816"
Nezapomeňte spustit sudo update-grub
a restartujte, ale poté by hibernace měla fungovat správně.