🕵️ SicherheitslückenWeb Application Firewall Rule Bypass in Jetpack WAF Runtime(17.09.2026 um 16:34 Uhr)
🕵️ SicherheitslückenCross-Site Request Forgery in WooCommerce Product and Term Ordering(17.09.2026 um 16:34 Uhr)
🕵️ SicherheitslückenUnescaped Output in Enable Media Replace Error View(17.09.2026 um 16:34 Uhr)
🕵️ SicherheitslückenStored Cross-Site Scripting in WooCommerce Order Notes REST API v4(17.09.2026 um 16:34 Uhr)
🕵️ SicherheitslückenUnescaped Attribute Output in Enable Media Replace Upsell View(17.09.2026 um 16:34 Uhr)
🕵️ SicherheitslückenWeb Application Firewall Rule Bypass in Jetpack WAF Runtime(17.09.2026 um 16:34 Uhr)
🕵️ SicherheitslückenCross-Site Request Forgery in WooCommerce Product and Term Ordering(17.09.2026 um 16:34 Uhr)
🕵️ SicherheitslückenUnescaped Output in Enable Media Replace Error View(17.09.2026 um 16:34 Uhr)
🕵️ SicherheitslückenStored Cross-Site Scripting in WooCommerce Order Notes REST API v4(17.09.2026 um 16:34 Uhr)
🕵️ SicherheitslückenUnescaped Attribute Output in Enable Media Replace Upsell View(17.09.2026 um 16:34 Uhr)
🔧 Programmierung 🕛 vor 2 Monaten 8 Min Lesezeit
0

Guia Completo: Configurar Hibernação no Ubuntu 24.04 com Swap File

↗ Quelle (dev.to)
🗣️ Stimme:
📑 Inhaltsübersicht




Guia Completo: Configurar Hibernação no Ubuntu 24.04 com Swap File




Versão: Ubuntu 24.04 LTS (Noble Numbat)


Kernel: 6.17+


Swap: Arquivo swap.img (não partição dedicada)


Atualizado: Julho 2026










⚠️ O que torna este guia diferente



O Ubuntu 24.04 mudou silenciosamente o sistema de permissões do polkit. A maioria dos tutoriais na internet usa o formato .pkla (antigo), que não funciona mais no Ubuntu 24.04. Este guia cobre:




  • Configuração com swap file (não partição)

  • O bug do initramfs com swap files

  • O novo formato de regras do polkit (JavaScript .rules)


  • Erro sh: write error: invalid argument — e como evitá-lo


  • Debug passo a passo quando algo dá errado









Pré-requisitos




  • Ubuntu 24.04 LTS instalado

  • Swap file já criado (ex: /swap.img de 36GB)

  • Swap ativo (swapon --show mostra o arquivo)

  • Swap >= RAM física (recomendado para hibernação segura)






Verificar pré-requisitos






CODE
# Distro
cat /etc/os-release | grep PRETTY_NAME

# Swap ativo
swapon --show

# RAM total
free -h












Passo 1: Coletar informações do sistema



Você precisa de dois valores:






1.1 UUID da partição raiz (onde o swap.img está)






CODE
sudo findmnt -no UUID -T /swap.img







Exemplo: 58bf371d-01d1-4316-98c3-ef845c1825f2







1.2 Offset físico do swap.img no disco






CODE
sudo filefrag -v /swap.img | awk 'NR==4{gsub(/\./,"");print $4}'







Exemplo: 14241792



⚠️ Importante: Se o filefrag retornar algo como 14241792.., remova os dois pontos e use só o número.










Passo 2: Configurar o GRUB



No Ubuntu, os parâmetros do kernel para hibernação vão no GRUB.




CODE
sudo nano /etc/default/grub






Localize a linha:




CODE
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"






Adicione no final (mantenha o que já existe):




CODE
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=UUID=58bf371d-01d1-4316-98c3-ef845c1825f2 resume_offset=14241792"







⚠️ Não apague o quiet splash ou outros parâmetros existentes!




Salve (Ctrl+O, Enter, Ctrl+X) e atualize:




CODE
sudo update-grub












Passo 3: Configurar o initramfs (Atenção ao bug!)






❌ O que NÃO fazer (erro comum)



Não crie um arquivo /etc/initramfs-tools/conf.d/resume com resume_offset. Isso causa o warning:




CODE
W: initramfs-tools configuration sets RESUME=UUID=...
W: but no matching swap device is available.






O initramfs procura uma partição de swap com aquele UUID, mas você tem um arquivo de swap. O warning é inofensivo, mas confuso.






✅ O que fazer



Simplesmente não crie o arquivo resume. Deixe o initramfs gerar sem ele — o kernel vai ler os parâmetros do GRUB diretamente.



Se você já criou o arquivo, remova:




CODE
sudo rm -f /etc/initramfs-tools/conf.d/resume






Regenere o initramfs:




CODE
sudo update-initramfs -u -k all







Saída esperada (sem warnings):




CODE
update-initramfs: Generating /boot/initrd.img-6.17.0-35-generic










⚠️ Passo 3.5: NÃO crie scripts de resume no initramfs!






🚨 O erro sh: write error: invalid argument



Alguns tutoriais antigos sugerem criar um script em /etc/initramfs-tools/scripts/init-premount/resume_swapfile para setar o resume e resume_offset manualmente durante o boot.



Isso é desnecessário e causa erro!



Quando o kernel já recebe resume e resume_offset via GRUB (Passo 2), ele configura automaticamente. Se um script tentar escrever de novo em /sys/power/resume ou /sys/power/resume_offset, o kernel retorna:




CODE
sh: write error: invalid argument









✅ Verifique e remova scripts desnecessários






CODE
# Listar scripts no initramfs
ls -la /etc/initramfs-tools/scripts/init-premount/






Se encontrar um arquivo como resume_swapfile, remova:




CODE
sudo rm /etc/initramfs-tools/scripts/init-premount/resume_swapfile
sudo update-initramfs -u -k all







Regra de ouro: O kernel lê resume e resume_offset do GRUB automaticamente. Não crie scripts para isso.










Passo 4: Configurar o Polkit (O truque do Ubuntu 24.04!)






🚨 A pegadinha



O Ubuntu 24.04 usa polkit 122+, que migrou do formato .pkla (legacy) para regras JavaScript (.rules).



Tutoriais antigos usam:




CODE
/etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla






Isso NÃO funciona mais no Ubuntu 24.04. O arquivo é simplesmente ignorado.






✅ Solução: Usar .rules (JavaScript)






CODE
sudo mkdir -p /etc/polkit-1/rules.d
sudo nano /etc/polkit-1/rules.d/85-enable-hibernate.rules






Cole:




CODE
polkit.addRule(function(action, subject) {
if (action.id == "org.freedesktop.login1.hibernate" ||
action.id == "org.freedesktop.login1.hibernate-multiple-sessions" ||
action.id == "org.freedesktop.login1.handle-hibernate-key") {
return polkit.Result.YES;
}
});






Salve (Ctrl+O, Enter, Ctrl+X).






Reiniciar o systemd-logind






CODE
sudo systemctl restart systemd-logind







⚠️ Isso pode deslogar sua sessão gráfica. Salve tudo antes.










Passo 5: Reboot e teste






CODE
sudo reboot






Após reiniciar, verifique:






5.1 Verificar parâmetros do kernel






CODE
cat /proc/cmdline | grep resume







Deve mostrar: resume=UUID=... resume_offset=...







5.2 Verificar se o hibernate está habilitado






CODE
busctl call org.freedesktop.login1 /org/freedesktop/login1 org.freedesktop.login1.Manager CanHibernate







Esperado: s "yes"



Se retornar s "no", vá para a seção Debug.







5.3 Testar o hibernate






CODE
sudo systemctl hibernate






O sistema deve:




  1. Salvar o estado da RAM no swap.img

  2. Desligar completamente

  3. Ao ligar, restaurar a sessão exatamente como estava




Não deve aparecer sh: write error: invalid argument.










🔧 Debug: Quando o CanHibernate retorna "no"



Se busctl call ... CanHibernate retornar s "no", execute este checklist:






Check 1: Verificar parâmetros do kernel






CODE
cat /proc/cmdline
cat /sys/power/resume
cat /sys/power/resume_offset
cat /sys/power/state






Esperado:





  • /proc/cmdline mostra resume=UUID=... resume_offset=...


  • /sys/power/resume mostra 259:5 (ou similar, major:minor do device)


  • /sys/power/resume_offset mostra seu offset


  • /sys/power/state mostra freeze mem disk






Check 2: Verificar swap






CODE
swapon --show
free -h






Esperado: Swap ativo e tamanho >= RAM.






Check 3: Verificar Secure Boot






CODE
mokutil --sb-state







Se estiver enabled, o hibernate pode ser bloqueado. Desative no BIOS se necessário.







Check 4: Verificar autorização do polkit






CODE
pkcheck --action-id org.freedesktop.login1.hibernate --process $$ --allow-user-interaction 2>&1






Se retornar Not authorized:




  • O arquivo .pkla está sendo usado (formato antigo)

  • Ou a regra .rules está no lugar errado

  • Ou o systemd-logind não foi reiniciado



Solução:




  1. Remova qualquer .pkla:




CODE
   sudo rm -f /etc/polkit-1/localauthority/50-local.d/*.pkla







  1. Crie o .rules (Passo 4)

  2. Reinicie o systemd-logind (Passo 4)






Check 5: Verificar logs do systemd-logind






CODE
journalctl -u systemd-logind -n 50






Procure por mensagens de erro relacionadas a hibernate.






Check 6: Verificar se o initramfs tem warning






CODE
sudo update-initramfs -u -k all






Se aparecer:




CODE
W: initramfs-tools configuration sets RESUME=UUID=...
W: but no matching swap device is available.






Solução: Remova /etc/initramfs-tools/conf.d/resume e regenere.






Check 7: Verificar scripts desnecessários no initramfs






CODE
ls -la /etc/initramfs-tools/scripts/init-premount/
lsinitramfs /boot/initrd.img-$(uname -r) | grep -i resume






Se encontrar resume_swapfile ou similar, remova (veja Passo 3.5).









📋 Comandos rápidos (cheat sheet)






CODE
# Coletar info
sudo findmnt -no UUID -T /swap.img
sudo filefrag -v /swap.img | awk 'NR==4{gsub(/\./,"");print $4}'

# Configurar GRUB
sudo nano /etc/default/grub
sudo update-grub

# Limpar initramfs (se necessário)
sudo rm -f /etc/initramfs-tools/conf.d/resume
sudo rm -f /etc/initramfs-tools/scripts/init-premount/resume_swapfile
sudo update-initramfs -u -k all

# Configurar polkit (Ubuntu 24.04)
sudo mkdir -p /etc/polkit-1/rules.d
sudo nano /etc/polkit-1/rules.d/85-enable-hibernate.rules
sudo systemctl restart systemd-logind

# Testar
busctl call org.freedesktop.login1 /org/freedesktop/login1 org.freedesktop.login1.Manager CanHibernate
sudo systemctl hibernate

# Debug
cat /proc/cmdline
cat /sys/power/resume
cat /sys/power/resume_offset
pkcheck --action-id org.freedesktop.login1.hibernate --process $$ --allow-user-interaction 2>&1
journalctl -u systemd-logind -n 50
ls -la /etc/initramfs-tools/scripts/init-premount/
lsinitramfs /boot/initrd.img-$(uname -r) | grep -i resume












🎯 Diferenças: Ubuntu vs Pop!_OS

































Passo Ubuntu Pop!_OS
Bootloader GRUB systemd-boot
Kernel params Edita /etc/default/grub + update-grub
kernelstub -a
Polkit (24.04+)
.rules (JavaScript)

.rules (JavaScript)
Initramfs update-initramfs
kernelstub + update-initramfs








❓ FAQ






Preciso de swap maior que a RAM?



Recomendado: Sim, pelo menos igual à RAM. Se você tem 32GB RAM, use 32GB+ de swap. O kernel precisa de espaço para salvar toda a RAM + algum overhead.






Posso usar swapfile em BTRFS?



Sim, mas o offset é calculado de forma diferente. Use btrfs inspect-internal map-swapfile em vez de filefrag.






O hibernate funciona com criptografia LUKS?



Sim, mas o processo é diferente. O swap precisa estar dentro do container LUKS ou usar um swap criptografado separado. Não coberto neste guia.






O que acontece se o swap estiver cheio?



O hibernate falha e o sistema continua ligado. Por isso é recomendado ter swap >= RAM.






Posso hibernar sem sudo?



Com a regra do polkit configurada, usuários normais podem hibernar via interface gráfica (botão de hibernate no menu de energia).






Por que aparece sh: write error: invalid argument?



Isso acontece quando um script no initramfs (ex: resume_swapfile) tenta escrever em /sys/power/resume ou /sys/power/resume_offset, mas o kernel já configurou esses valores via parâmetros do GRUB. A solução é remover o script (veja Passo 3.5).









📚 Referências














📝 Changelog





  • 2026-07-06 - Versão inicial com foco no Ubuntu 24.04, polkit .rules e swap file


  • 2026-07-06 - Adicionado: Erro sh: write error: invalid argument e script resume_swapfile







Autor: Hallan + Kimi (sessão de debug colaborativa)


Licença: MIT - Use e modifique à vontade!


Vollständiger Original-Artikel
Den kompletten Beitrag mit allen Details direkt auf dev.to lesen.
↗ Original-Artikel auf dev.to lesen
Wie bewertest du diesen Beitrag?
1 Klick Feedback
Teilen mit Netzwerk & Team:

Community-Analysen & Experten-Meinungen 0

Verfasse deine eigene Analyse, teile Workarounds oder diskutiere diesen Vorfall im Blog.
Noch keine Community-Analyse verfasst. Markiere einen Textabschnitt oder klicke oben auf Eigene Analyse verfassen“!
Community Pulse: Relevanz-Einschätzung
1 Klick Experten-Votum
🔴 Akute Relevanz 0%
🟡 In Evaluierung 0%
🟢 Keine Auswirkung 0%
Spannende Innovation 0%
Verwandte Story-Cluster & Quellen (Vektor-KI)
Port 8095 Engine
1 Quelle
Microsoft Office Ohne Abonnement? Jetzt kostet es ein paar Hundert - Jablíčkář
1 Quelle
Windows Defender: Falsche Warnung täuscht Sicherheitslücke vor - ad-hoc-news.de
1 Quelle
DFN-CERT-2026-4930 FFmpeg: Mehrere Schwachstellen ermöglichen u. a. das Ausführen ...
Ähnliche Beiträge
🔍 Verwandte News

Auch interessante Nachrichten Guia Completo: Configurar Hibernação no Ubuntu 24.04 com Swap File

Thematisch verwandte Begriffe: Guia, Completo, Configurar, Hibernação · 6 Treffer

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...