Arch Linux 休眠到Swap交换文件

建立交换文件
用root账号,使用 fallocate 命令来创建一个所需大小的交换文件(M = Mebibytes, G = Gibibytes)。例如,创建一个512 MB的交换文件:
# fallocate -l 512M /swapfile
注意: fallocate 命令用在 F2FS 或 XFS 文件系统时可能会引起问题。[1] 代替方式是使用 dd 命令,但是要慢一点:
# dd if=/dev/zero of=/swapfile bs=1M count=512
为交换文件设置权限:(交换文件全局可读是一个巨大的本地漏洞)
# chmod 600 /swapfile
创建好交换文件后,将其格式化:
# mkswap /swapfile
启用交换文件:
# swapon /swapfile
最后,编辑 /etc/fstab, 在其中添加如下的一行:
/etc/fstab
/swapfile none swap defaults 0 0

编辑/etc/mkinitcpio.conf文件:
HOOKS="... block lvm2 resume filesystems ..."
# mkinitcpio -p linux

# filefrag -v /swapfile

查找偏移指针:

Filesystem type is: ef53
File size of /swapfile is 4294967296 (1048576 blocks of 4096 bytes)
ext:     logical_offset:        physical_offset: length:   expected: flags:
0:        0..       0:      38912..     38912:      1:            
1:        1..   22527:      38913..     61439:  22527:             unwritten
2:    22528..   53247:     899072..    929791:  30720:      61440: unwritten

# ls -l /dev/disk/by-uuid/ 查看swapfile文件所在盘的UUID。
lrwxrwxrwx 1 root root 10 Aug  8 19:22 415bb7cf-5a71-4481-a832-c789643ce12c -> ../../sda4

GRUB配置:

# vim /etc/default/grub

GRUB_CMDLINE_LINUX_DEFAULT="resume=/dev/disk/by-uuid/415bb7cf-5a71-4481-a832-c789643ce12c resume_offset=38912 quiet"

更新GRUB启动文件

sudo grub-mkconfig -o /boot/grub/grub.cfg

参考:https://wiki.archlinux.org/index.php/Hibernate#Hibernation_into_swap_file

          https://wiki.archlinux.org/index.php/Swap#Swap_file

posted @ 2014-04-26 04:21  张绍建  阅读(1086)  评论(0编辑  收藏  举报