我跟着这个答案两天前我在新安装的 ubuntu 18.04 上激活了休眠模式,并且成功了。
然后,我设法彻底破坏了文件系统,以至于重新安装似乎是最简单的方法。因此,我重新安装了 ubuntu(使用安装程序中的“其他”选项),其中包含/tmp
、swap
和分区。与上次完全一样。然后/boot
,/
我再次按照该答案设置休眠。
休眠有效 - 但恢复无效:
当我执行 时systemctl hibernate
,我的笔记本电脑屏幕立即变黑,只有电源按钮上的 LED 指示与完全关机的区别 - 这很好。但是,笔记本电脑不响应任何交互,例如键盘输入或短按电源按钮。唯一的选择是按住电源按钮 15 秒以强制关机,然后正常按下以重新启动。
以下是有关我的系统的一些信息:
generic@motorbrot-linux:~$ cat /sys/power/state
freeze mem disk
generic@motorbrot-linux:~$ grep swap /etc/fstab
# swap was on /dev/nvme0n1p7 during installation
UUID=93232136-5a6d-4ffc-b40d-809ccead48df none swap sw 0 0
generic@motorbrot-linux:~$ cat /etc/default/grub
# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
# info -f grub -n 'Simple configuration'
GRUB_DEFAULT=0
GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
#GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""
# FOR HIBERNATION
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=UUID=93232136-5a6d-4ffc-b40d-809ccead48df"
# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"
# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console
# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480
# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true
# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY="true"
# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"
我注意到的一件事是,update-initramfs
并update-grub
显示了两次其输出。这个答案已经摆脱了它,但我很困惑为什么我linux image
仍然有两个:
generic@motorbrot-linux:~$ sudo update-grub
[sudo] password for generic:
Sourcing file `/etc/default/grub'
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-5.3.0-42-generic
Found initrd image: /boot/initrd.img-5.3.0-42-generic
Found linux image: /boot/vmlinuz-5.3.0-28-generic
Found Windows Boot Manager on /dev/nvme0n1p2@/EFI/Microsoft/Boot/bootmgfw.efi
Adding boot menu entry for EFI firmware configuration
done
我正在寻找有关如何在将笔记本电脑置于休眠状态后恢复的指导。如果相关的话,我有一个带有 ubuntu 18.04 和 windows 10 的双启动系统。
Device Start End Sectors Size Type
/dev/nvme0n1p1 2048 1085439 1083392 529M Windows recovery environme
/dev/nvme0n1p2 1085440 1288191 202752 99M EFI System
/dev/nvme0n1p3 1288192 1320959 32768 16M Microsoft reserved
/dev/nvme0n1p4 1320960 614399999 613079040 292.3G Microsoft basic data
/dev/nvme0n1p5 614400000 614985727 585728 286M Linux filesystem
/dev/nvme0n1p6 614985728 628658175 13672448 6.5G Linux filesystem
/dev/nvme0n1p7 628658176 667719679 39061504 18.6G Linux swap
/dev/nvme0n1p8 667719680 1953523711 1285804032 613.1G Linux filesystem
我刚刚尝试过systemctl suspend
,但同样的事情发生了:屏幕立即变黑,唯一恢复的方法就是按住电源按钮约 20 秒强制关机。有时,挂起后屏幕不是黑屏,而是冻结的黑屏,上面有一个无法移动的光标。这个答案认为nouveau
司机有过错也无济于事。
对“休眠”系统进行 ping 操作没有反应,而对完全启动的系统进行 ping 操作则会得到答复。
黑屏时按亮度键没有反应。
这里是我从“请求睡眠”开始到结束的一段摘录/var/log/syslog
,我相当确定它是随后的启动的一部分,而不是“休眠”本身。
我已经尝试了所有三个选择 reboot
,platform
并且shutdown
它们都冻结了我的屏幕。
我目前不再遇到这个确切的问题。对于任何拥有 ThinkPad 的人来说,也许思考维基有帮助
答案1
异种善意地指出ubuntu wiki 上一般有用的文章。
恢复时死机、空白或黑屏 在某些情况下,计算机可以正常休眠,并恢复无问题,但唤醒时屏幕会变黑。换句话说,计算机运行正常,但显示屏似乎死机了。
他们建议添加模式设置到。因为我喜欢详细GRUB_CMDLINE_LINUX_DEFAULT
启动 ,所以我没有像他们在示例中那样指定,因为我遵循了/etc/default/grub
quiet splash
本指南我已经有了GRUB_CMDLINE_LINUX_DEFAULT="resume=UUID=<my uuid>"
。所以最后我的代码如下:
GRUB_CMDLINE_LINUX_DEFAULT="nomodeset resume=UUID=93232136-5a6d-4ffc-b40d-809ccead48df"
改变之后,你需要运行
sudo update-grub2
(它恰好做了同样的事情sudo 更新 grub)。 进而
reboot
现在systemctl hibernate
就可以工作了。
这个问题问的问题和你现在想知道的一样:
- 我到底在做什么?这有什么帮助?
- 我可以做些什么来避免执行这些步骤吗?
这回答建议“安装合适的视频驱动程序”。这可能很好地解释了为什么我这次必须添加nomodeset
,但上次我尝试设置休眠时却没有添加 -我的音频驱动程序也坏了,所以这可能与此有关(虽然我不知道为什么会发生这种情况)。
结果这个解决方案破坏了我的音频卡检测和亮度控制。看这里了解更多信息。截至 2020 年 7 月,似乎内核更新或其他东西已经为我解决了这个问题。
systemctl suspend
现在也能“工作”了……但不知为何屏幕一直亮着。屏幕大部分是黑色的,但你还是能看出来,因为左上角有一条白色下划线。
答案2
你可能分配了一个非常小的交换重新安装时,分区会发生变化。
因此,在尝试休眠时,要保存的数据远远大于可用的交换空间。
因此,休眠过程会停止。