如果我們在裝系統(tǒng)時將swap空間分小了,如何擴大swap空間呢,?下面再讓我們?yōu)橄到y(tǒng)建立新的swap空間吧,!
一共分為三個步驟:
1,建立swap分區(qū)
2,建立swap文件
3,,打開swap功能
<1>用fdisk建立swap分區(qū)
下面我以我的160GB的/dev/sdb來實驗,。先用fdisk建立分區(qū)。
[root@fedora15 software]# fdisk /dev/sdb
Command (m for help): p
Disk /dev/sdb: 160.0 GB, 160041885696 bytes
255 heads, 63 sectors/track, 19457 cylinders, total 312581808 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x624aa2e0
在這里我們可以看到,,我的sdb硬盤共有160G,,312581808個扇區(qū),每個扇區(qū)大小為512bytes,即兩個扇區(qū)組成1024bytes=1k.
Device Boot Start End Blocks Id System
/dev/sdb1 * 2048 1026047 512000 83 Linux
/dev/sdb2 25174800 312575759 143700480 f W95 Ext'd (LBA)
/dev/sdb3 1026048 25174015 12073984 8e Linux LVM
/dev/sdb5 25174863 139648319 57236728+ 7 HPFS/NTFS/exFAT
/dev/sdb6 139653108 221568479 40957686 7 HPFS/NTFS/exFAT
/dev/sdb7 221568543 308383739 43407598+ 7 HPFS/NTFS/exFAT
/dev/sdb8 308383744 312573951 2095104 7 HPFS/NTFS/exFAT
Partition table entries are not in disk order
可以看到我的磁盤又一個/dev/sdb2的windows擴展分區(qū),,其中sdb5-sdb8屬于該擴展分區(qū),。/dev/sdb1,dev/sdb3屬于Linux系統(tǒng)分區(qū)。現(xiàn)在我刪除/dev/sdb1作為swap分區(qū),。
Command (m for help): d
Partition number (1-8): 1
Command (m for help): n
Command action
l logical (5 or over)
p primary partition (1-4)
p
Partition number (1-4, default 1):
Using default value 1
First sector (2048-312581807, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-1026047, default 1026047): 821248
這里821248到底是多少容量呢,?這里代表的是821248個扇區(qū),一個扇區(qū)512b,所以大小為821248/2/1024=401M.這里也可以用 +401M來指定大??!
Command (m for help): t
Partition number (1-8): 1
Hex code (type L to list codes): 82
Changed system type of partition 1 to 82 (Linux swap / Solaris)
這里是改變分區(qū)的id號,默認分區(qū)為linux分區(qū),,即id=83.swap代號為82.改好了在確認下,。
Command (m for help): p
Disk /dev/sdb: 160.0 GB, 160041885696 bytes
255 heads, 63 sectors/track, 19457 cylinders, total 312581808 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x624aa2e0
Device Boot Start End Blocks Id System
/dev/sdb1 2048 821248 409600+ 82 Linux swap / Solaris
/dev/sdb2 25174800 312575759 143700480 f W95 Ext'd (LBA)
/dev/sdb3 1026048 25174015 12073984 8e Linux LVM
/dev/sdb5 25174863 139648319 57236728+ 7 HPFS/NTFS/exFAT
/dev/sdb6 139653108 221568479 40957686 7 HPFS/NTFS/exFAT
/dev/sdb7 221568543 308383739 43407598+ 7 HPFS/NTFS/exFAT
/dev/sdb8 308383744 312573951 2095104 7 HPFS/NTFS/exFAT
Partition table entries are not in disk order
可以看到/dev/sdb1已經(jīng)是swap格式了!記住這里一定要把它設(shè)為82,,如果用默認的83的話,,后面的命令mkswap就無法進行,會報錯的,!下面我們寫入分區(qū)表吧,!
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: 設(shè)備或資源忙.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.
看到?jīng)]有,警告信息出現(xiàn)了,!說是沒有更新分區(qū)表,。內(nèi)核繼續(xù)使用原來的分區(qū)表!需要重新啟動或用partprobe/kpartx來更新分區(qū)表,!那么我們用partprobe來更新看看,!
[root@fedora15 software]# partprobe
Error: Partition(s) 1 on /dev/sdb have been written, but we have been unable to inform the kernel of the change, probably because it/they are in use. As a result, the old partition(s) will remain in use. You should reboot now before making further changes.
Warning: 無法以讀寫方式打開 /dev/sr0 (只讀文件系統(tǒng))。/dev/sr0 已按照只讀方式打開,。
提示更新錯誤,!/dev/sdb1可能在使用。很顯然我們需要看看掛載情況了,。
[root@fedora15 software]# df -h /dev/sdb*
文件系統(tǒng) 容量 已用 可用 已用%% 掛載點
udev 995M 0 995M 0% /dev
/dev/sdb1 485M 11M 449M 3% /media/1279ae93-af95-47d9-b45b-b2c920b84554
udev 995M 0 995M 0% /dev
udev 995M 0 995M 0% /dev
/dev/sdb5 55G 52G 2.9G 95% /media/Media
/dev/sdb6 40G 38G 1.4G 97% /media/study
/dev/sdb7 42G 38G 4.0G 91% /media/software
udev 995M 0 995M 0% /dev
原來/dev/sdb1已經(jīng)被掛了,!難怪更新不成功的。趕緊卸載吧,!
[root@fedora15 media]# umount /dev/sdb1
[root@fedora15 media]# partprobe
Warning: 無法以讀寫方式打開 /dev/sr0 (只讀文件系統(tǒng)),。/dev/sr0 已按照只讀方式打開,。
可以看到,當(dāng)我們卸載后,,再次partprobe沒有提示sdb1的錯誤了,!更新成功,不用重啟了,!
<2>將分區(qū)變?yōu)閟wap文件
那么,,現(xiàn)在看是建立swap文件把!用mkswap來建立,!
[root@fedora15 media]# mkswap /dev/sdb1
Setting up swapspace version 1, size = 409596 KiB
no label, UUID=925affdc-5621-4452-9cdf-b02cff45a4a6
好了,,swap文件建立了!但是還沒有投入使用呢,。我們先看看現(xiàn)在的swap大小,。
[root@fedora15 media]# free
total used free shared buffers cached
Mem: 2056192 1861004 195188 0 329908 348700
-/+ buffers/cache: 1182396 873796
Swap: 6291448 15668 6275780
可以看到將近6G左右的swap空間,這個swap并不合理,,內(nèi)存才2G,,swap根本用不找那么大的。反正硬盤空間多,。,。。呵呵,。
<3>開啟swap
我們開起/dev/sdb1的swap,。
[root@fedora15 media]# swapon /dev/sdb1
[root@fedora15 media]# free
total used free shared buffers cached
Mem: 2056192 1861368 194824 0 330048 348852
-/+ buffers/cache: 1182468 873724
Swap: 6701044 15668 6685376
可以看到,swap空間變大了,!大了(6701044-6291448)/1024=400M.還可以用-s來查看現(xiàn)在的swap情況,。
[root@fedora15 media]# swapon -s
Filename Type Size Used Priority
/dev/mapper/vg_fedora1500-LogVol00 partition 4194300 7840 0
/dev/mapper/vg_fedora15-LogVol00 partition 2097148 7828 0
/dev/sdb1 partition 409596 0 -1
我們也可以用swapoff來關(guān)閉swap。
[root@fedora15 media]# swapoff /dev/mapper/vg_fedora15-LogVol00
[root@fedora15 media]# free
total used free shared buffers cached
Mem: 2056192 1886708 169484 0 338372 358456
-/+ buffers/cache: 1189880 866312
Swap: 4603896 7828 4596068
swap變小了將近2G.
<4>用某一文件來作為swap(建系統(tǒng)時沒有多余分區(qū),,可以這樣做)
如果我們沒有多余的磁盤分區(qū),,但是我們有要建立一個swap,怎么辦,?有辦法,!那就是建立一個文件,然后載對文件進行格式化為swap,。
[root@fedora15 media]# dd if=/dev/zero of=/tmp/swaptest bs=1M count=512
記錄了512+0 的讀入
記錄了512+0 的寫出
536870912字節(jié)(537 MB)已復(fù)制,5.0684 秒,,106 MB/秒
這句話的意思是,,從/dev/zero中讀取大小為1M的文件512塊,也即512M,。然后輸出到/tmp/swaptest中,。那么swaptest也就有512m了。
[root@fedora15 media]# ll /tmp/swaptest -h
-rw-r--r--. 1 root root 512M 11月 3 01:17 /tmp/swaptest
可以看到我們生成了一個512M大小的空文件。
[root@fedora15 media]# mkswap /tmp/swaptest
Setting up swapspace version 1, size = 524284 KiB
no label, UUID=2783c331-37a2-41fe-81b2-e229571b0915
[root@fedora15 media]# free
total used free shared buffers cached
Mem: 2056192 1978944 77248 0 174196 661460
-/+ buffers/cache: 1143288 912904
Swap: 4194300 7836 4186464
[root@fedora15 media]# swapon /tmp/swaptest
[root@fedora15 media]# free
total used free shared buffers cached
Mem: 2056192 1979688 76504 0 174332 661844
-/+ buffers/cache: 1143512 912680
Swap: 4718584 7836 4710748
[root@fedora15 media]# swapon -s
Filename Type Size Used Priority
/dev/mapper/vg_fedora1500-LogVol00 partition 4194300 7836 0
/tmp/swaptest file 524284 0 -1
可以看到,,swap增加成功了,!
swap最多能夠建立32個,最大為64GB.
本文出自 “小子無名” 博客,,請務(wù)必保留此出處http://linuxroad.blog.51cto.com/765922/705586
|