Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

In my Ubuntu 12.04, the hibernation option was working well and fine. However, I installed Debian on another partition recently and when I again tried to boot to Ubuntu, I got a message on the boot splash screen saying :

The disk drive for / is not ready yet or not present. Continue to wait; or press s to skip mounting or M for manual recovery.

After logging into Ubuntu, I find that my hibernation option has gone missing.

Is there anyway to recover the hibernation option?

EDIT: I solved the disk drive problem and I got the hibernation option back. When I did "sudo pm-hibernate", my system went to hibernation. However, when powering on again, it booted up normally and thus there was no effect of hibernation.

How can this be rectified?

EDIT1: System - Lenovo ideapad s10-2.

enter image description here

EDIT2: /etc/fstab

enter image description here

EDIT3: Screenshot of my hard disk.

enter image description here

share|improve this question
add comment

4 Answers 4

up vote 3 down vote accepted
+250

I assume you have installed Debian in a way that it uses it's own separate swap partition. If you have not, I would suggest doing so (create another swap partition and change the /etc/fstab files accordingly), because too different operating systems writing to the same swap partition may discard hibernation data stored on the partition by the other OS.

Then you have to ensure that the OS you want to use hibernation on (usually both), writes to the correct partition. This is configured in the /etc/initramfs-tools/conf.d/resume file. You have to put the UUID of the correct swap partition in there (use sudo blkid /dev/$device_name to get the UUID). Finally you need to update the initial ramdisk:

sudo update-initramfs -u -k all

That should fix it.

share|improve this answer
    
This worked perfectly fine. Thank you, I got my hibernation back. :) –  harisibrahimkv Sep 19 '12 at 8:55
    
I, too had problems resuming from hibernate. After having somehow changed the UUID of my swap partition, my system would not resume no matter what I seemed to do. Fixing my /etc/initramfs-tools/conf.d/resume, by copy-pasting the UUID from sudo blkid seems to have fixed the problem. –  TSJNachos117 Jan 21 at 4:35
add comment

Try to add nobootwait option to the /etc/fstab, something like this:

/dev/sda1 / ext4 rw,nobootwait 0 1

share|improve this answer
    
Could you clarify that? My /etc/fstab has the following entry for my swap partition: # swap was on /dev/sda8 during installation UUID=08a07061-165b-4f0a-87c3-470a02d1ea4c none swap sw 0 0 Should I change "sw" to "rw,nobootwait"? –  harisibrahimkv Sep 18 '12 at 13:13
    
You need to add it to your root mountpoint, not the swap. Post your full fstab, and I will post you the updated version. –  Frantique Sep 18 '12 at 13:39
    
I've added it to the question. –  harisibrahimkv Sep 18 '12 at 13:59
    
errors=remount-ro,nobootwait –  Frantique Sep 18 '12 at 14:04
add comment

When going into hibernate, a full image of you RAM is copied to swap. So most of the time people have problems with hibernation not working, their swap is too small.

You need at least as much swap as you have RAM. If you have a lot of RAM, set swappiness=0. So if you have 8GB of RAM, use 8.5 or 9GB of swap. If you have 4GB of RAM, 6GB of swap is a good number.

share|improve this answer
    
I have 1GB RAM and I have 1.95GB swap space. Updated question with a screenshot of my hard disk. –  harisibrahimkv Sep 19 '12 at 7:37
add comment

As far as I know Linux including Ubuntu should have swap space 2x of ram installed.

Some how my custom build computer configuration is not able to use hibernate tho I have more then enough swap space. image

If you think your swap is slowing you down you can use this script I found on the internet. It cleans swap.

#!/bin/bash

free_data="$(free)"
mem_data="$(echo "$free_data" | grep 'Mem:')"
free_mem="$(echo "$mem_data" | awk '{print $4}')"
buffers="$(echo "$mem_data" | awk '{print $6}')"
cache="$(echo "$mem_data" | awk '{print $7}')"
total_free=$((free_mem + buffers + cache))
used_swap="$(echo "$free_data" | grep 'Swap:' | awk '{print $3}')"

echo -e "Free memory:\t$total_free kB ($((total_free / 1024)) MB)\nUsed swap:\t$used_swap kB ($((used_swap / 1024)) MB)"
if [[ $used_swap -eq 0 ]]; then
    echo "Congratulations! No swap is in use."
elif [[ $used_swap -lt $total_free ]]; then
    echo "Freeing swap..."
    swapoff -a
    swapon -a
else
    echo "Not enough free memory. Exiting."
    exit 1
fi
share|improve this answer
    
I have 2x swap space available. Thank you for the suggestion. –  harisibrahimkv Sep 19 '12 at 7:53
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.