有了分区以后,我们还要格式化,如果不格式化,那么磁盘就无法使用,这个windows是一样的。windows支持NTFS格式和fat格式,那么linu支持什么样的分区格式呢?我们输入如下命令

[root@localhost ~]# cat /etc/filesystems
xfs
ext4
ext3
ext2
nodev proc
nodev devpts
iso9660
vfat
hfs
hfsplus
*
这是linux中支持的分区文件格式,其中xfs是centos7默认分区格式,比如/和boot,这都是xfs文件系统,在centos以前的版本都是ext文件系统,我们以后格式化可以将磁盘格式成ext文件系统,但是在centos中默认的就是xfs格式,那么我们怎样查看这个分区系统是什么呢?我们可以输入mount这个命令
[root@localhost ~]# mount | grep -n 'xfs'
22:/dev/sda3 on / type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
28:/dev/sda1 on /boot type xfs (rw,relatime,seclabel,attr2,inode64,noquota)

现在以xfs文件系统去格式化新的磁盘,格式化输入mk2fs命令,他有几个常用参数,-t,指定格式化成什么样的文件系统(默认xfs)。
下面我们先来试验一下,先将/dev/sdb1格式成ext4文件系统
[root@localhost ~]# mke2fs -t ext4 /dev/sdb1
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
131072 inodes, 524288 blocks
26214 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=536870912
16 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912

Allocating group tables: 完成
正在写入inode表: 完成
Creating journal (16384 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
这样我们就成功的将sdb1格式成ext4的文件系统了

-b:指定块大小,每个数据块支持1024b,2048b以及4096b。
假设我们将块设置成8192(一般我们存音乐,视频,高清图片会将块设置的比较大,他的读写也会更快,如果我们存储的文件较小,那我们就设置的小一些,一般我们就保持默认就可以。),系统会提示我们是否继续。
[root@localhost ~]# mke2fs -b 8192 /dev/sdb1
Warning: blocksize 8192 not usable on most systems.
mke2fs 1.42.9 (28-Dec-2013)
mke2fs: 8192-byte blocks too big for system (max 4096)
无论如何也要继续? (y,n)
如果想要继续,输入“y”即可,如果不想继续,输入“n”。

-m:指定这个分区预留的空间大小
默认是5%(26214 blocks (5.00%) reserved for the super user),我们将它更改成预留0.1%
[root@localhost ~]# mke2fs -m 0.1 /dev/sdb1
524 blocks (0.10%) reserved for the super user
这样可以磁盘最大化使用

-i:指定多少个字节对应一个inode,最低是1个块指定一个inode。默认的是1:4的关系,然后我们可以自定义成8192
[root@localhost ~]# mke2fs -i 8192 -t ext4 /dev/sdb1
131072 inodes, 524288 blocks(这是默认情况,基本上是1:4)
262144 inodes, 524288 blocks(这是更改完后的情况,基本上就是1:2的关系了,改变成功)

Allocating group tables: 完成
正在写入inode表: 完成
Creating journal (16384 blocks): 完成
Writing superblocks and filesystem accounting information: 完成

即使我们已经格式化过一次了,但是我们还能继续格式化这块磁盘,需要注意的是mke2fs不支持xfs文件系统,但是我们也有办法,可以使用mkfs命令,他可以将磁盘格式成xfs文件系统,不要忘记,xfs后面接参数-f
[root@localhost ~]# mkfs.xfs -f /dev/sdb1
meta-data=/dev/sdb1 isize=512 agcount=4, agsize=131072 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=524288, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0

这样我们就成功的将sdb1格式成xfs文件系统了,只不过我们mount时时看不到sdb1的,因为我们还没有挂载磁盘,如果想查看,只要输入blkid这个命令
[root@localhost ~]# blkid /dev/sdb1
/dev/sdb1: UUID="711e9e10-bdbc-4ed1-8fa2-80817b7b717d" TYPE="xfs"(这就是我们刚格式化的sdb1)

格式化完后我们就要将磁盘挂载到挂载点上才能使用,挂载的命令是mount,他可以查看文件类型,也可以挂载格式化后的磁盘。我们先将sdb1挂载到mnt目录下。(mnt目录为挂载点,它是一个磁盘的入口。)
[root@localhost ~]# mount /dev/sdb1 /mnt/
挂载后查询一下,发现新增的sdb1已经在mnt目录下挂载成功
[root@localhost ~]# df -hl
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda3 28G 993M 27G 4% /
devtmpfs 485M 0 485M 0% /dev
tmpfs 495M 0 495M 0% /dev/shm
tmpfs 495M 6.9M 488M 2% /run
tmpfs 495M 0 495M 0% /sys/fs/cgroup
/dev/sda1 197M 97M 100M 50% /boot
tmpfs 99M 0 99M 0% /run/user/0
/dev/sdb1 1.9G 6.0M 1.8G 1% /mnt

卸载磁盘的命令为umount,如果我们在进入了磁盘中,那么卸载时不成功的
[root@localhost mnt]# umount /dev/sdb1
umount: /mnt:目标忙。
(有些情况下通过 lsof(8) 或 fuser(1) 可以
找到有关使用该设备的进程的有用信息)
只有退出来,才能卸载成功
[root@localhost mnt]# cd
[root@localhost ~]# umount /dev/sdb1
[root@localhost ~]# df -hl
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda3 28G 993M 27G 4% /
devtmpfs 485M 0 485M 0% /dev
tmpfs 495M 0 495M 0% /dev/shm
tmpfs 495M 6.9M 488M 2% /run
tmpfs 495M 0 495M 0% /sys/fs/cgroup
/dev/sda1 197M 97M 100M 50% /boot
tmpfs 99M 0 99M 0% /run/user/0
这时发现,sdb1已经卸载成功了。然后我们还可以继续挂载次磁盘。
我们也可以不退出而直接卸载,只要加参数-l(懒人模式)。

开机自动挂载/etc/fstab配置文件。系统启动默认自动挂载哪些磁盘和哪些分区,都是在在这个里面配置的。
[root@localhost ~]# vi /etc/fstab
#

/etc/fstab

Created by anaconda on Thu Dec 14 21:57:25 2017

#

Accessible filesystems, by reference, are maintained under '/dev/disk'

See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info

#
UUID=5a11078d-d0e8-454b-9ba2-4795ad52c2ba / xfs defaults 0 0
UUID=5072d2a6-bab9-40e0-8503-a0b570a0e1d8 /boot xfs defaults 0 0
UUID=2f04490d-9a52-44f3-be93-c2b950fb6819 swap swap defaults 0 0
/dev/sdb1 /mnt xfs defaults 0 0

UUID:我们可以通过blkid来查看,每个分区都有自己的UUID。
第一列:我们除了可以写入UUID外,也可以写入要挂在磁盘的名字。
第二列:我们要写入挂载点。
第三列:我们要写入文件的分区格式。
第四列:挂载选项,只要保持默认,跟上面输入的一样即可。
第五列:是否备份,我们写入0即可
第六列:是否检测,写入0是不检测,写入1是检测,写入2也是检测,1级别更高。我们写0即可。

如果当我们的某一个服务需要很大的swap,我们又不可能重做系统,那么我们有一个方法,手动增加。
首先,我们要虚拟出一个磁盘
[root@localhost ~]# dd if=/dev/zero of=/tmp/newdisk bs=1M count=100
在这里dd是用来操作磁盘的,if是指定哪里去读,/dev/zero是linux内核中的一个特有文件,能产生源源不断的0,of指定将产生的0写入到哪里去,bs是指定每个块的大小,这里是每个1M,count=100,100*1=100M,就是newdisk的大小。
[root@localhost ~]# dd if=/dev/zero of=/tmp/newdisk bs=1M count=100
记录了100+0 的读入
记录了100+0 的写出
104857600字节(105 MB)已复制,0.358612 秒,292 MB/秒
然后我们查询一下看看是否成功
[root@localhost ~]# du -sh /tmp/newdisk
100M /tmp/newdisk
我们已经成功创建了一个100M的虚拟磁盘。

然后我们格式化,然而sawp是一个特殊的文件系统,所以我们要用mkswap去格式化
[root@localhost ~]# mkswap -f /tmp/newdisk
正在设置交换空间版本 1,大小 = 102396 KiB
无标签,UUID=81efcdde-3c16-49ac-aff1-19604c00cb57

格式化完成后,我们要用swapon这个命令把它加载到现在的swap上去,首先我们先查询一下现在的swap有多大
[root@localhost ~]# free -m
total used free shared buff/cache available
Mem: 988 125 618 6 244 694
Swap: 2047 0 2047
现在的swap是2047兆,然后我们给新的加载到以前的swap上
[root@localhost ~]# swapon /tmp/newdisk
swapon: /tmp/newdisk:不安全的权限 0644,建议使用 0600。
挂在后查询
[root@localhost ~]# free -m
total used free shared buff/cache available
Mem: 988 125 618 6 244 694
Swap: 2147 0 2147
虽然上面提示说不安全,但是我们也挂载上去了,增加了空间。
为了安全起见,我们还是改变一下他的权限。

如果我们不想要这个新的swap了,只要用swapoff卸载它就可以了
[root@localhost ~]# swapoff /tmp/newdisk
[root@localhost ~]# free -m
total used free shared buff/cache available
Mem: 988 125 618 6 244 694
Swap: 2047 0 2047
通过查询发现,卸载后swap又回到以前的大小了。

然后我们再删除/tmp/newdisk即可。