Linux认证辅导:swapon,mkswap,swap分区建立

如果我们在装系统时将swap空间分小了,如何扩大swap空间呢?下面再让我们为系统建立新的swap空间吧!
一共分为三个步骤:
1,建立swap分区
2,建立swap文件
3,打开swap功能

<1>用fdisk建立swap分区
下面我以我的160GB的/dev/sdb来实验。先用fdisk建立分区。
[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个扇区,每个扇区大小为512bytes,即两个扇区组成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扩展分区,其中sdb5-sdb8属于该扩展分区。/dev/sdb1,dev/sdb3属于Linux系统分区。现在我删除/dev/sdb1作为swap分区。
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个扇区,一个扇区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)
这里是改变分区的id号,默认分区为linux分区,即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已经是swap格式了!记住这里一定要把它设为82,如果用默认的83的话,后面的命令mkswap就无法进行,会报错的!下面我们写入分区表吧!
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: 设备或资源忙.
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.
看到没有,警告信息出现了!说是没有更新分区表。内核继续使用原来的分区表!需要重新启动或用partprobe/kpartx来更新分区表!那么我们用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 (只读文件系统)。/dev/sr0 已按照只读方式打开。
提示更新错误!/dev/sdb1可能在使用。很显然我们需要看看挂载情况了。
[root@fedora15 software]# df -h /dev/sdb*
文件系统       容量  已用  可用 已用%% 挂载点
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已经被挂了!难怪更新不成功的。赶紧卸载吧!
[root@fedora15 media]# umount /dev/sdb1
[root@fedora15 media]# partprobe
Warning: 无法以读写方式打开 /dev/sr0 (只读文件系统)。/dev/sr0 已按照只读方式打开。
可以看到,当我们卸载后,再次partprobe没有提示sdb1的错误了!更新成功,不用重启了!

相关推荐