Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.

Autor Téma: Ubuntu - přesun swapu na jiný oddíl/disk  (Přečteno 516 krát)

juwa2

  • Závislák
  • ****
  • Příspěvků: 3768
    • Zobrazit profil
Ubuntu - přesun swapu na jiný oddíl/disk
« kdy: 22 Duben 2020, 23:15:40 »
Z důvodu úspory místa na primárním disku (HDD) s instalací Ubuntu jsem se rozhodl přesunout swap oddíl na disk sekundární/datový.
Krom jiného jsem si sliboval i navýšení rychlosti swapování (swapování bude provádět jiný fyzicý disk).
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Takže jsem původní swap oddíl na primárním disku zrušil, vytvořil nový swap oddíl na disku sekundárním, zjistil jeho uuid a poctivě ho zapsal do souboru /etc/fstab

Jaké pak bylo překvapení, že systém nebyl schopen naběhnout (záměrně nepíši nabootovat, jelikož grub normálně naběhl, ale vše zůstalo stát na "splash screen" (plymouth)..
--------------
Co teď?  Pokusy o opravu zavaděče/reinstall grubu nepomohly...

Naštěstí mě napadlo nabootovat v "Advanced options for grub >  Recovery mode".
Tam jsem zjistil, že se náběh OS zasekl na řádku  "Gave up waiting for suspend/resume device"

Po určité době googlení jsem zjistil, že je chyba v initramfs, proto systém nenaběhne.
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Řešení:

Je třeba uuid nového swapu změnit nejenom v /etc/fstab ale rovněž v /etc/initramfs-tools/conf.d/resume
Na závěr zadáme příkaz (nutno provést z live v chrootnutém systému):
Kód: [Vybrat]
sudo update-initramfs -u
nebo
sudo update-initramfs -u -k all   (pokud máme nainstalovaných více kernelů)


Nabízí se ale daleko pohodlnější možnost (ověřeno!) raději změnit uuid nového swapu tak, aby byl stejný jako uuid swapu původního (toto je nutno provést rovněž z live):
Kód: [Vybrat]
sudo swapoff -a     (odpojení - pokud je swap připojen)
sudo mkswap -U UUID_STARÉHO_SWAPU /dev/sdXy

(kde /dev/sdXy  je oddíl nového swapu, např. /dev/sdb2Pokud jsme si uuid starého swapu náhodou nepoznamenali a již jsme starý swap oddíl odstranili, najdeme ho v /etc/fstab

Výhodou tohoto alternativního postupu je, že se kroky popsanými výše (editací souborů, ale hlavně chrootem) nemusíme vůbec zabývat.... ;)

« Poslední změna: 23 Duben 2020, 19:26:35 od juwa2 »

Korek

  • Návštěvník
  • *
  • Příspěvků: 49
    • Zobrazit profil
Re:Ubuntu - přesun swapu na jiný oddíl/disk
« Odpověď #1 kdy: 23 Duben 2020, 10:05:15 »
Resil jsi hibernaci (uspavani na disk, ... to pisu jen pro nevedome;) )? ?a funguje ti?

Abby

  • Stálý člen
  • ***
  • Příspěvků: 939
    • Zobrazit profil
Re:Ubuntu - přesun swapu na jiný oddíl/disk
« Odpověď #2 kdy: 23 Duben 2020, 13:56:25 »
Četla jsem, že je možné místo oddílu na disku použít soubor, který může dynamicky měnit svou velikost, nebylo by to jednodušší? Já teda swap na PC nepoužívám, s 32 GB RAM mi přijde zbytečný, ale notebook ho zapnutý má, tam je jenom 8 GB a říkám si že by soubor místo oddílu byl lepší a říkám si to od té doby co jsem se poprvé setkala s Linuxem.

juwa2

  • Závislák
  • ****
  • Příspěvků: 3768
    • Zobrazit profil
Re:Ubuntu - přesun swapu na jiný oddíl/disk
« Odpověď #3 kdy: 23 Duben 2020, 17:06:33 »
Četla jsem, že je možné místo oddílu na disku použít soubor, který může dynamicky měnit svou velikost, nebylo by to jednodušší? Já teda swap na PC nepoužívám, s 32 GB RAM mi přijde zbytečný, ale notebook ho zapnutý má, tam je jenom 8 GB a říkám si že by soubor místo oddílu byl lepší a říkám si to od té doby co jsem se poprvé setkala s Linuxem.

Ano, swapfile místo klasického swap oddílu je vhodný pokud je instalace na SSD. Ale kdo má klasický HDD, tak jednoznačně swap oddíl, protože swapfile snižuje výkon disku (známe z windows, tam je soubor pagefile.sys).

Ano, kdo má dostatek RAM, nemusí se teoreticky swapem zabývat vůbec, i když i v tomto případě by nějaký swap měl být, protože pokud náhodou v ojedinělém případě dojde k překročení požadavku na RAM, systém spadne...

Ještě zmíním další důvod existence swapu. Je to hibernace systému (suspend to disc). Ale kdo ji nepoužívá....
Já osobně hibernaci používám, protože mám dualoot windows/ubuntu, a hibernace umožní rychlejší "přepínání" systémů. Zejména ve směru ubuntu > windows je to velká úspora času.
----------------------------
U nových instalací Ubuntu (18.04++), pokud není přítomen swap oddíl (uživatel ho při instalaci sám nevytvoří), je jako výchozí akce vytvořen swapfile (na systémovém oddíle). Takže je docela možné, že swap máš a ani o tom nevíš. A při 32GB RAM to může být pěkně velký bumbrlíček.... :)
« Poslední změna: 23 Duben 2020, 18:39:43 od juwa2 »

juwa2

  • Závislák
  • ****
  • Příspěvků: 3768
    • Zobrazit profil
Re:Ubuntu - přesun swapu na jiný oddíl/disk
« Odpověď #4 kdy: 23 Duben 2020, 17:13:08 »
Resil jsi hibernaci (uspavani na disk, ... to pisu jen pro nevedome;) )? ?a funguje ti?

Ano, řešil. Hlavní důvod byl ten, že mám dualboot W7/Ubuntu. A hibernace výrazně urychlí "přepínání", systémy nemusí bootovat, pouze se probouzejí z hibernace což je dramaticky rychlejší.
Na druhou stranu ale existují jistá omezení ohledně přístupu na disky ze systému aktivního na ten hibernovaný, to je nutno respektovat (např. použít režim read-only). Osmičkářům a Desítkářům vřele doporučuji vypnout nesmysl jménem fastboot.

Takže:
1.)  Je třeba "zprovoznit" položku "Uspat na disk" v menu vypínání PC v Ubuntu:
Kód: [Vybrat]
sudo gedit /var/lib/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla
Otevře se prázdný dokument. Vložíme do něj následující text:
Kód: [Vybrat]
[Re-enable hibernate by default in upower]
    Identity=unix-user:*
    Action=org.freedesktop.upower.hibernate
    ResultActive=yes

    [Re-enable hibernate by default in logind]
    Identity=unix-user:*
    Action=org.freedesktop.login1.hibernate
    ResultActive=yes

Soubor uložíme. Změna se projeví (položka "Uspat na disk" ve vypínacím menu přibude) až po odhlášení/přihlášení.

2.)  Je nutno doinstalovat balíky hibernate a uswsusp:
Kód: [Vybrat]
sudo apt-get install hibernate uswsusp
Pak to funguje jak má (U18.04).   ;)
Samotná velikost swapu by se měla odvíjet od velikosti RAM (cca 1/2 až 1/1 RAM) a taky od toho, kolik "žroutů" bývá běžně spuštěno v okamžiku hibernace.
« Poslední změna: 23 Duben 2020, 19:09:16 od juwa2 »

Korek

  • Návštěvník
  • *
  • Příspěvků: 49
    • Zobrazit profil
Re:Ubuntu - přesun swapu na jiný oddíl/disk
« Odpověď #5 kdy: 24 Duben 2020, 08:22:59 »
Citace
Takže:
Ano delal jsem take s uswp z rad na internetu, ale ackoliv se mi to podarilo s 20.04 v 18.04.4 neco mam blbe, protoze se mi neobjevi nabidka, ale zatim to neresim, zase tak nutne to nepotebuju. Jinak jsem taky upravoval ty soubory (polkit, grub, fstab, login).