Linux dd命令在扩增SWAP分区时的应用

一、Linux中swap分区的基础作用:

Linux swap分区是Linux交换分区:Linux系统物理内存不够用时,系统会自动启用swap分区,来缓解物理内存的压力,系统把物理内存里的访问频率低的内存对象移动到swap分区中,再在物理内存里产生新的连接指向swap分区中的特定的对象;

二、相对于繁忙的服务器来说,会出现物理内存和物理分区同时不够用的情况,这时候我们就需要临时扩增swap分区的大小,达到这种目的有两种方法:

1.当硬盘的扩展分区还有剩余的内存可用,可以用fdisk命令创建新的分区,并调整分区类型为Linux-swap,然后启用即可。

具体步骤:

[root@linuxidc ~]# free -m  //查看物理内存和swap分区的使用率

total      used      free    shared    buffers    cached

Mem:          502        474        28          0        76        274

-/+ buffers/cache:        124        378

Swap:        1019          0      1019

[root@linuxidc ~]# fdisk /dev/sdb

The number of cylinders for this disk is set to 2610.

There is nothing wrong with that, but this is larger than 1024,

and could in certain setups cause problems with:

1) software that runs at boot time (e.g., old versions of LILO)

2) booting and partitioning software from other OSs

(e.g., DOS FDISK, OS/2 FDISK)

Command (m for help): p //列出当前已创建的分区

Disk /dev/sdb: 21.4 GB, 21474836480 bytes

255 heads, 63 sectors/track, 2610 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot      Start        End      Blocks  Id  System

Command (m for help): n  //新建一个分区

Command action

e  extended

p  primary partition (1-4)

p  //主分区

Partition number (1-4): 1

First cylinder (1-2610, default 1):

Using default value 1

Last cylinder or +size or +sizeM or +sizeK (1-2610, default 2610): +3G

Command (m for help): t  //改变分区类型

Selected partition 1Hex code (type L to list codes): L //列出内核所支持的分区

0  Empty          1e  Hidden W95 FAT1 80  Old Minix      bf  Solaris       

1  FAT12          24  NEC DOS        81  Minix / old Lin c1  DRDOS/sec (FAT-

2  XENIX root      39  Plan 9          82  Linux swap / So c4  DRDOS/sec (FAT-

3  XENIX usr      3c  PartitionMagic  83  Linux          c6  DRDOS/sec (FAT-

4  FAT16 <32M      40  Venix 80286    84  OS/2 hidden C:  c7  Syrinx       

5  Extended        41  PPC PReP Boot  85  Linux extended  da  Non-FS data

6  FAT16          42  SFS            86  NTFS volume set db  CP/M / CTOS / .

7  HPFS/NTFS      4d  QNX4.x          87  NTFS volume set de  Dell Utility 

8  AIX            4e  QNX4.x 2nd part 88  Linux plaintext df  BootIt       

9  AIX bootable    4f  QNX4.x 3rd part 8e  Linux LVM      e1  DOS access   

a  OS/2 Boot Manag 50  OnTrack DM      93  Amoeba          e3  DOS R/O       

b  W95 FAT32      51  OnTrack DM6 Aux 94  Amoeba BBT      e4  SpeedStor     

c  W95 FAT32 (LBA) 52  CP/M            9f  BSD/OS          eb  BeOS fs       

e  W95 FAT16 (LBA) 53  OnTrack DM6 Aux a0  IBM Thinkpad hi ee  EFI GPT       

f  W95 Ext'd (LBA) 54  OnTrackDM6      a5  FreeBSD        ef  EFI (FAT-12/16/

10  OPUS            55  EZ-Drive        a6  OpenBSD        f0  Linux/PA-RISC b

11  Hidden FAT12    56  Golden Bow      a7  NeXTSTEP        f1  SpeedStor     

12  Compaq diagnost 5c  Priam Edisk    a8  Darwin UFS      f4  SpeedStor     

14  Hidden FAT16 <3 61  SpeedStor      a9  NetBSD          f2  DOS secondary 

16  Hidden FAT16    63  GNU HURD or Sys ab  Darwin boot    fb  VMware VMFS   

17  Hidden HPFS/NTF 64  Novell Netware  b7  BSDI fs        fc  VMware VMKCORE

18  AST SmartSleep  65  Novell Netware  b8  BSDI swap      fd  Linux raid auto

1b  Hidden W95 FAT3 70  DiskSecure Mult bb  Boot Wizard hid fe  LANstep       

1c  Hidden W95 FAT3 75  PC/IX          be  Solaris boot    ff  BBT           

Hex code (type L to list codes): 82

Changed system type of partition 1 to 82 (Linux swap / Solaris)

Command (m for help): w //保存分区The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.

The kernel still uses the old table.

The new table will be used at the next reboot.

Syncing disks.

[root@linuxidc ~]# partprobe /dev/sdb //让内核重读分区表

[root@linuxidc ~]# cat /proc/partitions //确保内核重读分区表完成

major minor  #blocks  name

8    0  20971520 sda

8    1    305203 sda1

8    2  19615365 sda2

8    3    1044225 sda3

8    16  20971520 sdb

8    17    2939863 sdb1

[root@linuxidc ~]#mkswap /dev/sdb1 //格式化

Setting up swapspace version 1, size = 3010412 kB

[root@linuxidc ~]# swapon /dev/sdb1 //启用该swap分区

[root@linuxidc ~]# free -m

total      used      free    shared    buffers    cached

Mem:          502        394        107          0        30        273

-/+ buffers/cache:        90        412

Swap:        3890          0      3890

[root@linuxidc ~]# swapoff /dev/sdb1 //关闭该swap分区

[root@linuxidc ~]# free -m

total      used      free    shared    buffers    cached

Mem:          502        393        108          0        30        273

-/+ buffers/cache:        89        413

Swap:        1019          0      1019

2.当硬盘没有剩余的存储可创建新分区时,可以利用dd命令在已存的分区中创建一个文件,充当swap分区。

具体步骤:(现已脚本的形式呈现)

[root@linuxidc ~]# vi createswap.sh

#!/bin/bash

echo -n "Please input your number:  "

read number

echo -n "Please input your swapfile name and the whole path:  "

read path

dd if=/dev/zero of=$path bs=1M count=$number

mkswap $path

swapon $path

free -m

echo "The swap created"

结束语:到此教程完毕。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值