swap分區是在內存不夠用時才使用的,swap分區不夠時能夠擴容linux
方法1:使用獨立的分區來實現vim
1. lsblk 查看是否有可用的磁盤分區,使用fdsik劃分磁盤分區centos
2. fdisk /dev/sdc 建立後的分區爲/dev/sdc2,注意使用t選項修改分區id爲82async
3. 建立swap文件系統ide
mkswap /dev/sdc2 -L swap_sdc2測試
4. vim /etc/fstabui
:r!blkid /dev/sdc2 #讀取命令輸出至文件,再次進行編輯centos7
UUID="6f50983b-1452-41fc-8efd-2151e4613959" swap swap defaults 0 0 spa
5. swapon -a 讓編輯後的/etc/fstab中的swap 分區生效內存
發散思惟: 其實執行mount -a 是否生效不仍是看選項是否有auto嗎,man 5 fstab中找到的(學會使用man 5 配置文件 來查看配置信息,你值得擁有!)
defaults
use default options: rw, suid, dev, exec, auto, nouser, and async.
noauto do not mount when "mount -a" is given (e.g., at boot time)
提取關鍵信息:defaults: rw, suid, dev, exec, auto, nouser, and async.
noauto: do not mount when "mount -a" is given (e.g., at boot time) 這句話取反你就知道啥意思了!
6. 從新讀取掛載信息後,使用swapon -s 查看swap文件系統的信息
[root@centos7 ~]#swapon -s
Filename Type Size Used Priority
/dev/sda3 partition 2047996 2800 -1
/dev/sdc2 partition 10484732 0 -2
注意一下還有優先級的,數值越大優先級越高
發散思惟: 在使用是swap分區的時候要使用外磁道來使用(即磁道號較小的,最外圈的是0磁道),由於這樣數據的訪問效率會比內圈磁道高,具體的緣由在此再也不贅述。
7. 查看swap分區的狀態也能夠使用 lsblk
[root@centos7 ~]#lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 100G 0 disk
├─sda1 8:1 0 1000M 0 part /boot
├─sda2 8:2 0 9.8G 0 part /
├─sda3 8:3 0 2G 0 part [SWAP] #原來的swap分區大小
├─sda4 8:4 0 1K 0 part
└─sda5 8:5 0 48.8G 0 part /data
sdb 8:16 0 20G 0 disk
├─sdb1 8:17 0 2G 0 part
├─sdb2 8:18 0 2G 0 part
├─sdb3 8:19 0 3G 0 part
├─sdb4 8:20 0 1K 0 part
└─sdb5 8:21 0 2G 0 part
sdc 8:32 0 20G 0 disk
├─sdc1 8:33 0 10G 0 part
└─sdc2 8:34 0 10G 0 part [SWAP] #新增長的swap分區的大小
sr0 11:0 1 3.7G 0 rom /run/media/root/CentOS_6.9_Final
sr1 11:1 1 8.1G 0 rom /run/media/root/CentOS 7 x86_64
8. 禁用新增的swap分
# swapoff /dev/sdc1
總結記憶: swapon -a 生效/etc/fstab 添加swap分區
fdisk分區的時候注意使用t 修改磁盤的id 爲82
swpaon -s 查看swap分區信息
swapoff /dev/sdc1 禁用swap分區
方法2: 文件模擬分區建立swap文件系統
1. dd if=dev/zero of=/data/swap_file bs=1G count=5 建立5G空間的大小的文件
發散思惟: dd if=/dev/zero of=/dev/sdc1 bs=512 count=1 能夠幹掉MBR的信息,你能夠這樣刪除分區信息,也能夠使用fdisk /dev/sdc 來使用d選項來刪除
固然也能夠不刪除bootloader的信息(446bytes),直接將64bytes的分區表信息填零,如:
dd if=/dev/zero of=/dev/sdc1 bs=1 count=64 seek=446 直接填充64bytes至 分區表,跳過目標 /dev/sdc1的前446bytes
注意不能使用 dd if=/dev/zero of=/dev/sdc1 bs=64 count=1 seek=446
hexdump -C /dev/sda -n 512 -v 顯示sda分區的前512字節信息
葵花寶典的套路: 記住玩以前先要備份MBR啊!哈哈哈,dd if=/dev/sdc1 count=/data/mbr.bak bs=512 count=1 (默認單位是字節)
恢復的時候 能夠直接 dd if=/dev/mbr.bak of=/dev/sdc1 不用給出bs和count了,由於只有512字節的備份信息,是吧。
也能夠使用dd if=/dev/zero of=/dev/null bs=1G count=2 這方法能夠測試磁盤的讀寫速度,有興趣的能夠試試
2. mkswap -L swap_file /data/swap_file 建立swap文件系統
3. 爲了永久生效,編輯配置文件/etc/fstab,永久生效配置修改配置文件彷佛是linux的鐵律,大家以爲呢?由於使用的是文件模擬的分區,因此不要使用UUID喲!
vim /etc/fstab
/data/file2 swap swap defaults 0 0
4.swapon -a 讀取/etc/fstab中的swap分區信息
5.swapon -s 查看swap分區的信息,順便看看本身剛剛建立的swap分區是否生效
6.swapoff /data/swap_file 不想玩了,能夠直接禁用