diff options
author | Nikolay Amiantov <ab@fmap.me> | 2015-03-05 18:06:51 +0300 |
---|---|---|
committer | Vladimír Čunát <vcunat@gmail.com> | 2015-03-07 13:00:08 +0100 |
commit | b8020184823194a1853b000ef9aeb8e4d12d733f (patch) | |
tree | 5115b872fcac2d6aee5d1789be6194b804ef0928 | |
parent | 4560b1155169750d4219cbd404a57fec9b4a5e4b (diff) | |
download | nixlib-b8020184823194a1853b000ef9aeb8e4d12d733f.tar nixlib-b8020184823194a1853b000ef9aeb8e4d12d733f.tar.gz nixlib-b8020184823194a1853b000ef9aeb8e4d12d733f.tar.bz2 nixlib-b8020184823194a1853b000ef9aeb8e4d12d733f.tar.lz nixlib-b8020184823194a1853b000ef9aeb8e4d12d733f.tar.xz nixlib-b8020184823194a1853b000ef9aeb8e4d12d733f.tar.zst nixlib-b8020184823194a1853b000ef9aeb8e4d12d733f.zip |
stage-1: fix hibernation (close #6675)
Fixes #6617.
-rw-r--r-- | nixos/modules/system/boot/stage-1-init.sh | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/nixos/modules/system/boot/stage-1-init.sh b/nixos/modules/system/boot/stage-1-init.sh index a34a13602650..5af644279e5f 100644 --- a/nixos/modules/system/boot/stage-1-init.sh +++ b/nixos/modules/system/boot/stage-1-init.sh @@ -177,20 +177,24 @@ fi if test -e /sys/power/resume -a -e /sys/power/disk; then if test -n "@resumeDevice@"; then resumeDev="@resumeDevice@" + resumeInfo="$(udevadm info -q property "$resumeDev" )" else for sd in @resumeDevices@; do # Try to detect resume device. According to Ubuntu bug: # https://bugs.launchpad.net/ubuntu/+source/pm-utils/+bug/923326/comments/1 # When there are multiple swap devices, we can't know where will hibernate # image reside. We can check all of them for swsuspend blkid. - if [ "$(udevadm info -q property "$sd" | sed -n 's/^ID_FS_TYPE=//p')" = "swsuspend" ]; then + resumeInfo="$(udevadm info -q property "$sd" )" + if [ "$(echo "$resumeInfo" | sed -n 's/^ID_FS_TYPE=//p')" = "swsuspend" ]; then resumeDev="$sd" break fi done fi - if test -n "$resumeDev"; then - readlink -f "$resumeDev" > /sys/power/resume 2> /dev/null || echo "failed to resume..." + if test -e "$resumeDev"; then + resumeMajor="$(echo "$resumeInfo" | sed -n 's/^MAJOR=//p')" + resumeMinor="$(echo "$resumeInfo" | sed -n 's/^MINOR=//p')" + echo "$resumeMajor:$resumeMinor" > /sys/power/resume 2> /dev/null || echo "failed to resume..." fi fi |