LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1040|回复: 8

可以休眠,但是无法恢复(启动后还是正常进了系统)

[复制链接]
发表于 2011-2-13 21:20:50 | 显示全部楼层 |阅读模式
我这是一个03年台式机,使用的sudo pm-hibernate进行休眠,休眠过程正常,这里是 /var/log/pm-suspend.log的内容,看着休眠过程没有任何错误:http://pastebin.com/eKBwHyRW
但是开机启动后并没有恢复到先前状态,而是正常启动进入系统了。

确认了swap正常,大小1.5G左右,我的内存是512M:
grub配置文件中kernel那行后面的resume对应的分区就是swap分区;

在启动过程的dmesg.log中有看到如下PM开头的两行:
PM: Checking hibernation image partition /dev/disk/by-uuid/d016bb4b-5e88-49f3-acb8-570a52b68e1c
input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio0/input/input0
PM: Hibernation image not present or could not be loaded.

在archlinux的wiki中看到这篇:
https://wiki.archlinux.org/index.php/Pm-utils#Resume_Hook
看说明和我的情况很相似,于是照做了,即编辑/etc/mkinitcpio.conf 文件,在HOOKS对应的那行加入resume,然后:
# mkinitcpio -p kernel26
可是再次测试休眠及恢复,情况依旧,可以休眠,无法恢复;

https://wiki.archlinux.org/index ... resume_from_suspend
还有这里我也照做试了下,即在kernel那行后面加上acpi_sleep=nonvs,但也是无效;

请问大家有人遇到类似的问题不?
 楼主| 发表于 2011-2-13 23:42:25 | 显示全部楼层
前面贴的dmesg内容太少,刚才重新看了下,下面还有很多PM开头的行,或许包含更多信息,我将完整内容放到附件吧:

PM: Checking hibernation image partition /dev/disk/by-uuid/d016bb4b-5e88-49f3-acb8-570a52b68e1c
input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio0/input/input0
PM: Hibernation image not present or could not be loaded.
registered taskstats version 1
rtc_cmos 00:05: setting system clock to 2011-02-13 23:29:09 UTC (1297639749)
Initalizing network drop monitor service
Freeing unused kernel memory: 424k freed
udev[32]: starting version 165
SCSI subsystem initialized
libata version 3.00 loaded.
ACPI: PCI Interrupt Link [ALKA] BIOS reported IRQ 0, using IRQ 20
ACPI: PCI Interrupt Link [ALKA] enabled at IRQ 20
pata_acpi 0000:00:0f.0: PCI INT A -> Link[ALKA] -> GSI 20 (level, low) -> IRQ 20
pata_acpi 0000:00:0f.0: PCI INT A disabled
pata_via 0000:00:0f.0: version 0.3.4
pata_via 0000:00:0f.0: PCI INT A -> Link[ALKA] -> GSI 20 (level, low) -> IRQ 20
scsi0 : pata_via
scsi1 : pata_via
ata1: PATA max UDMA/133 cmd 0x1f0 ctl 0x3f6 bmdma 0xa800 irq 14
ata2: PATA max UDMA/133 cmd 0x170 ctl 0x376 bmdma 0xa808 irq 15
ata1.00: ATA-6: ST380011A, 3.06, max UDMA/100
ata1.00: 156301488 sectors, multi 16: LBA48
ata1.00: configured for UDMA/100
scsi 0:0:0:0: Direct-Access     ATA      ST380011A        3.06 PQ: 0 ANSI: 5
sd 0:0:0:0: [sda] 156301488 512-byte logical blocks: (80.0 GB/74.5 GiB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
sda: sda1 sda2 sda3 < sda5 sda6 sda7 sda8 >
sd 0:0:0:0: [sda] Attached SCSI disk
PM: Starting manual resume from disk
PM: Hibernation image partition 8:8 present
PM: Looking for hibernation image.
PM: Image signature found, resuming
PM: Marking nosave pages: 000000000009f000 - 0000000000100000
PM: Basic memory bitmaps created
PM: Preparing processes for restore.
Freezing user space processes ... (elapsed 0.01 seconds) done.
Freezing remaining freezable tasks ... (elapsed 0.01 seconds) done.
PM: Loading hibernation image.
PM: Loading and decompressing image data (48943 pages) ...       0%  1%
PM: Invalid LZO uncompressed length

PM: Read 195772 kbytes in 0.60 seconds (326.28 MB/s)
PM: Error -1 resuming
PM: Failed to load hibernation image, recovering.
Restarting tasks ... done.
PM: Basic memory bitmaps freed
PM: Hibernation image not present or could not be loaded.
EXT4-fs (sda2): INFO: recovery required on readonly filesystem
EXT4-fs (sda2): write access will be enabled during recovery
EXT4-fs (sda2): recovery complete
EXT4-fs (sda2): mounted filesystem with ordered data mode. Opts: (null)
udev[414]: starting version 165

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

发表于 2011-2-14 09:21:13 | 显示全部楼层
PM: Invalid LZO uncompressed length

似乎是休眠image的LZO解压过程出了问题
回复 支持 反对

使用道具 举报

发表于 2011-2-14 12:24:08 | 显示全部楼层
你那个resume放在哪里?把HOOKS贴出来看看。

  1. $cat  /etc/mkinitcpio.conf | grep "^HOOKS"
  2. HOOKS="base udev autodetect pata scsi sata filesystems"
复制代码


我以前和你一样,后来我把resume放在filesystems后面试了下,可以成功休眠。
后来发现休眠其实不是很好,经常出些莫名其妙的问题,就把resume又移除了。
看你放在什么位置了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-2-15 19:31:00 | 显示全部楼层
我的是按照wiki所讲,放在filesystems前面的:
  1. $cat  /etc/mkinitcpio.conf | grep "^HOOKS"
  2. HOOKS="base udev autodetect pata scsi sata resume filesystems"
复制代码
回复 支持 反对

使用道具 举报

发表于 2011-2-16 08:29:07 | 显示全部楼层
Post by yankaiqian;2128168
我的是按照wiki所讲,放在filesystems前面的:

  1. $cat  /etc/mkinitcpio.conf | grep "^HOOKS"
  2. HOOKS="base udev autodetect pata scsi sata resume filesystems"
复制代码


你試試filesystems後面看看
理論上肯定先加載了文件系統才會發現resume的文件吧
當時我也是先google到另外一篇文章說要放在sata或pata和filesystems後面,後來發現wiki裏面寫的不一樣,也沒有去試放在前面能不能成功
我放在後面是可以休眠的
回复 支持 反对

使用道具 举报

发表于 2011-5-9 09:05:50 | 显示全部楼层
Post by flay0303;2128208
你試試filesystems後面看看
理論上肯定先加載了文件系統才會發現resume的文件吧
當時我也是先google到另外一篇文章說要放在sata或pata和filesystems後面,後來發現wiki裏面寫的不一樣,也沒有去試放在前面能不能成功
我放在後面是可以休眠的


在chakra的wiki上看到这么一句,不知有什么根据:
resume must be placed after 'ide', 'scsi', 'sata' and/or 'lvm2', but before 'filesystems'.
回复 支持 反对

使用道具 举报

发表于 2011-5-9 11:50:40 | 显示全部楼层
用uswsusp代替内核自带休眠,速度快相当多……
回复 支持 反对

使用道具 举报

发表于 2011-5-9 17:25:05 | 显示全部楼层
Post by jtshs256;2138473
用uswsusp代替内核自带休眠,速度快相当多……


试了一下,效果不错
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表