很多文章都说可以通过 读/dev/swap来得到交换分区中的数据,可以我没有在Ubuntu12.04中找到这个设备文件,只能另辟蹊径
在/proc目录下我们发现了一个文件swaps
显示一下它的内容 cat /proc/swaps
可以看到swap分区对应的是/dev/sda5这个设备,那么好,我们来读一下这个文件,看看它是不是我们想要的交换分区
cd /dev 切换到系统设备目录下
sudo xxd sda5|less
开始的若干字节都是\00,那么是不是我们想要的呢?
根据交换分区的格式可以知道在交换分区的第一个页大小(对于x86来说是4K)的区域,存放着swap_header数据结构,而在结构最后的十个字节存放的是交换分区的magic number。一般来说交换分区的magic number会有两种:SWAP-SPACE这个字符串对应的是交换文件格式版本1,SWAPSPACE2对应的是交换文件版本格式2。知道了这些,那么我们可以到0xff0的位置去看这里的数据是什么。
最后的十个字节是SWAPSPACE2,我系统的交换分区使用的是版本2的格式,那么可以确定这个设备就是我要找的交换分区。