使用dd命令创建swap文件
1 | dd if=/dev/zero of=/swapfile |
本文主要介绍Unix-Like系统中如何使用dd命令来创建swap
dd命令简介
在dd命令的manpage中我们可以看到
1 | DD(1) User Commands DD(1) |
dd命令主要是用于转换并且复制文件的,这样看起来好像和普通的cp、mv命令没有什么区别,那么为什么又要有一个dd命令呢?
这主要因为在Unix-Like的操作系统中,所有的磁盘、外部设备以及一些特殊的文件如/dev/zero
, /dev/random
这些都是直接以文件形式存在的,而dd命令则可以执行读取这些设备并对其进行操作。dd命令可以做到按照指定的块大小读取这些文件,并且在经过转换之后再进行输出。
这些dd命令的特性意味着我们可以用dd命令来执行很多底层的操作,例如
备份整个磁盘
1
dd if = /dev/sda of = /dev/sdb
其中if代表inputfile也就是输入文件,of代表outputfile输出文件,这样磁盘sdb中的内容与sda中的内容就完全一致了,并且是扇区到扇区的一致。
备份分区
1
dd if=/dev/hda1 of=~/path/to/backup/file.img
这样分区hda1中的内容就备份到后缀名为.img的文件当中了。
使用dd命令创建swap
在现代操作系统内存管理中,当内存不足的时候,会把一部分硬盘空间虚拟成内存使用。这一部分的设置大多数时候都是在安装操作系统的时候完成的,但如果由于各种原因,安装操作系统的时候没有设置swap分区,便需要我们手动来创建了。
创建一个用于swap的文件
1
sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576
其中bs指的是blocksize,也就是块大小,单位是bytes,count是指要复制多少个输入文件中的block。这里我们创建的就是1G的swapfile。
设置权限
swapfile的权限应该被设置为只有root才能够读写的权限
1
sudo chmod 600 /swapfile
设置linux swap
我们可以用mkswap命令将一个文件设置为swap
1
sudo mkswap /swapfile
启用swap
1
sudo swapon /swapfile
如果我们想要永久地设置这个swap,需要在
/etc/fstab
中添加swap的信息,在/etc/fstab
文件的末尾添加一行1
/swapfile swap swap defaults 0 0