如何增加swap分區,和刪除,移動swap
由於我們在機器上添加了一條新內存,但是我按照swap容量是內存的1.5到2倍,但是現在不夠這個條件所以需要對swap進行擴容
1. 第一步創建一個適合的量的新的分區,或者文件
+ 需要注意一點swap分區和普通分區不同,在創建的時候要知道一下swap屬性
[root@centos6 home]# fdisk /dev/sdc
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
switch off the mode (command 'c') and change display units to
sectors (command 'u').
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 3
First cylinder (265-6527, default 265):
Using default value 265
Last cylinder, +cylinders or +size{K,M,G} (265-6527, default 6527): +2G
Command (m for help): h
h: unknown command
Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
l list known partition types
m print this menu
n add a new partition
o create a new empty DOS partition table
p print the partition table
q quit without saving changes
s create a new empty Sun disklabel
t change a partition's system id 更改系統分區ID
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)
Command (m for help): t 這個選項是更改系統分區ID
Partition number (1-4): 3
Hex code (type L to list codes): 82 sawp分區ID是82,也可用L查看所有分區ID號
Changed system type of partition 3 to 82 (Linux swap / Solaris)
Command (m for help): p
Disk /dev/sdc: 53.7 GB, 53687091200 bytes
255 heads, 63 sectors/track, 6527 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x63783858
Device Boot Start End Blocks Id System
/dev/sdc1 1 132 1060258+ 83 Linux
/dev/sdc2 133 264 1060290 83 Linux
/dev/sdc3 265 526 2104515 82 Linux swap / Solaris
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
[root@centos6 home]#
[root@centos6 home]#
[root@centos6 home]# echo $? 這個可以判斷是否有錯誤
0
[root@centos6 home]#
- 這樣我們的分區就創建好了,如果是老硬盤需要手動同步一下,6版本的系統用命令partx -a /dev/sdc,7版本的系統用partprobe 命令同步。創建完一定要檢查是否同步成功。
- 用mkswap 對剛剛創建的分區進行格式化和創建swap文件系統
[root@centos6 home]# mkswap /dev/sdc3
Setting up swapspace version 1, size = 2104508 KiB
no label, UUID=d0d47511-9cbb-4769-9430-6de164c74c62
[root@centos6 home]# blkid
/dev/sdb1: UUID="5fccd8fb-8c38-43ec-8d90-ff39938a8a9c" TYPE="ext2"
/dev/sda1: UUID="bbfd63dd-da18-4ac9-affd-4724c571db21" TYPE="ext4"
/dev/sda2: UUID="03352018-7cef-4ee3-9a05-b0833b67da19" TYPE="ext4"
/dev/sda3: UUID="0bd51fa6-f577-427a-b0b2-1cb8a631ac16" TYPE="ext4"
/dev/sda5: UUID="a8c19a79-3c21-4aa4-a648-27a069f25bde" TYPE="swap"
/dev/sdb2: UUID="aabdedfc-beb9-4c9c-83ab-4a18cd6b24d4" TYPE="ext4"
/dev/sdb3: LABEL="guo" UUID="581409f1-1db6-4fb5-b999-6ce074d1cec2" TYPE="ext4"
/ddc: UUID="7a786bc8-c075-4c9a-acad-f042415a6b04" TYPE="ext4"
/dev/sdc3: UUID="d0d47511-9cbb-4769-9430-6de164c74c62" TYPE="swap"
- 在/etc/fstab 配置文件中添加對應的條目
UUID=d0d47511-9cbb-4769-9430-6de164c74c62 swap swap defaults 0 0
- 激活swap分區
查看一下現在的swap信息
[root@centos6 home]# free
total used free shared buffers cached
Mem: 2052688 424516 1628172 1284 24900 179200
-/+ buffers/cache: 220416 1832272
Swap: 2097148 0 2097148
從上面看到內存2G ,swap分區也2G.
現在激活剛剛創建的swap分區
[root@centos6 home]# swapon -a
[root@centos6 home]# free -h
total used free shared buffers cached
Mem: 2.0G 416M 1.6G 1.3M 24M 175M
-/+ buffers/cache: 216M 1.7G
Swap: 4.0G 0B 4.0G
- 這樣就擴容成功,現在查看一下swap分區詳細信息
[root@centos6 home]# swapon -s
Filename Type Size Used Priority
/dev/sda5 partition 2097148 0 -1
/dev/sdc3 partition 2104508 0 -2
- priority 這是優先級,越優先級越大就優先使用,想要指定優先級一定要先禁用swap 分區
[root@centos6 home]# swapoff /dev/sdc3
[root@centos6 home]# swapon -p 10 /dev/sdc3
[root@centos6 home]# swapon -a
[root@centos6 home]# swapon -s
Filename Type Size Used Priority
/dev/sda5 partition 2097148 0 -1
/dev/sdc3 partition 2104508 0 10
我們要在/etc/fstab 中defaults位置上添加pri=value
UUID=d0d47511-9cbb-4769-9430-6de164c74c62 swap swap pri=10 0 0
- 如何生效,先把swap分區禁用,然後在啓用就生效了
- 雖然swapon -p 命令是可以設定優先值的,但是這是臨時的機器重啓會消失。
[root@centos6 ~]# swapoff /dev/sdc3
[root@centos6 ~]# swapon -a
[root@centos6 ~]# swapon -s
Filename Type Size Used Priority
/dev/sda5 partition 2097148 0 -1
/dev/sdc3 partition 2104508 0 10
如何刪除swap分區
1.首先確認沒有swap分區沒有被使用,如何被使用我們刪除分區會導致內存裏面的數據會丟失切記
[root@centos6 home]# free -h
total used free shared buffers cached
Mem: 2.0G 416M 1.6G 1.3M 24M 175M
-/+ buffers/cache: 216M 1.7G
Swap: 4.0G 0B 4.0G
- 禁用要刪除的swap分區
[root@centos6 ~]# swapoff /dev/sdc3
[root@centos6 ~]# free
total used free shared buffers cached
Mem: 2038348 360052 1678296 1284 23780 128384
-/+ buffers/cache: 207888 1830460
Swap: 2097148 0 2097148
- 刪除/etc/fstab 對應行
- 刪除分區就好了
如果讓文件變成swap分區,然後把它移動到別的磁盤
- 用dd命令創建一個文件
[root@centos6 app]# dd if=/dev/zero of=swapfile bs=1M count=2048
2048+0 records in
2048+0 records out
2147483648 bytes (2.1 GB) copied, 20.6218 s, 104 MB/s
[root@centos6 app]# ls
4 456 lost+found mnt oo swapfile we
- 這一步相對於創建分區了
- 用mkswap 命令格式變成swap分區
[root@centos6 app]# mkswap swapfile
mkswap: swapfile: warning: don't erase bootbits sectors
on whole disk. Use -f to force.
Setting up swapspace version 1, size = 2097148 KiB
no label, UUID=695dea75-3394-4932-8ddb-61806004aeea
[root@centos6 app]# blkid swapfile
swapfile: UUID="695dea75-3394-4932-8ddb-61806004aeea" TYPE="swap"
- 寫入/etc/fstab
/app/swapfile swap swap defaults 0 0
- 激活swap
[root@centos6 app]# swapon -a
[root@centos6 app]# free
total used free shared buffers cached
Mem: 2038348 1968472 69876 1288 6756 1703632
-/+ buffers/cache: 258084 1780264
Swap: 4194296 0 4194296
[root@centos6 app]# swapon -s
Filename Type Size Used Priority
/dev/sda5 partition 2097148 0 -1
/app/swapfile file 2097148 0 -2
- 由於我們用的文件當swap ,然而文件的性能沒有真正磁盤分區性能好所以我們不要設優先級。
- 遷移文件swap分區到別的磁盤中
- 確認現在沒有在使用swap,然後禁用swap分區
[root@centos6 app]# free
total used free shared buffers cached
Mem: 2038348 1968596 69752 1288 6804 1703672
-/+ buffers/cache: 258120 1780228
Swap: 4194296 0 4194296
[root@centos6 app]# swapoff swapfile
[root@centos6 app]# free
total used free shared buffers cached
Mem: 2038348 1967372 70976 1288 6812 1703672
-/+ buffers/cache: 256888 1781460
Swap: 2097148 0 2097148
- 把swapfile文件用cp命令複製別的磁盤
[root@centos6 app]# cp -p swapfile /
[root@centos6 app]# cd /
[root@centos6 /]# ls
app boot dev home lib64 media mnt opt root selinux swapfile tmp var
bin ddc etc lib lost+found misc net proc sbin srv sys usr
- 改配置文件/etc/fstab
/swapfile swap swap defaults 0 0
- 然後在把原來文件刪除就成功了。