linux之dd在擴增swap分區時的應用

一、

linux中swap分區的基礎作用:

    linux swap分區是linux交換分區:linux系統物理內存不夠用時,系統會自動啓用swap分區,來緩解物理內存的壓力,系統把物理內存裏的訪問頻率低的內存對象移動到swap分區中,再在物理內存裏產生新的連接指向swap分區中的特定的對象;

二、

    相對於繁忙的服務器來說,會出現物理內存和物理分區同時不夠用的情況,這時候我們就需要臨時擴增swap分區的大小,達到這種目的有兩種方法:

    1.當硬盤的擴展分區還有剩餘的內存可用,可以用fdisk命令創建新的分區,並調整分區類型爲linux-swap,然後啓用即可。

    具體步驟:

            

[root@bogon ~]# 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@bogon ~]# 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 1

Hex 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@bogon ~]# partprobe /dev/sdb //讓內核重讀分區表

[root@bogon ~]# 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@bogon ~]#mkswap /dev/sdb1 //格式化

Setting up swapspace version 1, size = 3010412 kB

[root@bogon ~]# swapon /dev/sdb1 //啓用該swap分區

[root@bogon ~]# free -m

             total       used       free     shared    buffers     cached

Mem:           502        394        107          0         30        273

-/+ buffers/cache:         90        412

Swap:         3890          0       3890


[root@bogon ~]# swapoff /dev/sdb1 //關閉該swap分區

[root@bogon ~]# 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@bogon ~]# 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"


結束語:到此教程完畢。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章