磁盘格式化
演示之前我们先给sdb磁盘(如果没有,自己手动增加)分区先;
接下来我们正式的开始格式化,这里我们先认识两个命令:mke2fs、mkfs. 。这里mke2fs有几个参数是比较经常用到的。
**-t**:-t 后跟一个文件系统格式,我们就会将这个磁盘格式化成指定的类型,比如-t ext4——就会格式化成ext4这个格式类型。(ext4是centos6的默认格式)**-b**:-b 后跟一个数量这里我比方设定为2048,这样我们就把每个块设定为最小2Kb的了,之前我们了解过一个块最小为4Kb。**-m**:-m 后面跟一个 百分比的数值这里我们比方设定为0.1,这样我们就设定了预留大小占分区的0.1%
好,以上是mke2fs的命令用法,mkfs.命令基本没有什么选项直接命令后跟系统文件格式加分区路径即可,这里需要注意的是,centos7的系统默认格式是xfs,而mke2fs的命令格式不成xfs的系统文件类型,所以需呀用到mkfs.的命令。以下示例;
[root@localhost ~]# mke2fs -t ext4 -b 2048 /dev/sdb1
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=2048 (log=1)
分块大小=2048 (log=1)
Stride=0 blocks, Stripe width=0 blocks
131072 inodes, 1048576 blocks
52428 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=269484032
64 block groups
16384 blocks per group, 16384 fragments per group
2048 inodes per group
Superblock backups stored on blocks:
16384, 49152, 81920, 114688, 147456, 409600, 442368, 802816
Allocating group tables: 完成
正在写入inode表: 完成
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
[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
这里我们使用mkfs.xfs的时候,系统提示磁盘可能存在着数据,如果确定要格式的则加个-f的参数。
这样当我们使用两种方式格式话后,我们可以看下我们磁盘的系统文件类型分别都有哪些变化
[root@localhost ~]# blkid /dev/sdb1
/dev/sdb1: UUID="aca7a1c3-545a-49b1-aae3-ec2f14ce0ebe" TYPE="ext4"
[root@localhost ~]# blkid /dev/sdb1
/dev/sdb1: UUID="a2a2fa5b-317d-431c-96ef-85cc6a2a7c8c" TYPE="xfs"
可以看到第一次执行的时候,确实格式化成了ext4格式。第二次格式的时候格式化成了xfs格式。
接下来我们说下-m的参数用法,指定给root用户预留的空间大小,以下示例;
[root@localhost ~]# mke2fs -t ext4 -m 0.1 /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
524 blocks (0.10%) 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: 完成
这里我们就可以看到运行后的结果就是给root用户预留了0.1%的空间,按理来说预留空间设置的越小,给我们使用的硬盘空间就越大,但是也要根据实际情况而定。(注意在使用mke2fs命令的时候,如果没有指定格式化为什么格式的系统文件,它将默认格式化为ext2格式,而ext2格式太老了几乎不会用到,所以在格式话的时候要留意这点)
这里再补充一个参数-i,使用-i改变默认生成的inode的比例, (1块=4k=4096字节)4个块=1个inode,以下示例;
[root@localhost ~]# mke2fs -t ext4 -i 8196 /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
262144 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
16384 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: 完成
磁盘挂载
当磁盘分好区格式化后,我们就可以开始将磁盘进行挂载了,只有挂载上去,linux系统才能读写才。
我们可以用mount命令来执行操作,以下示例;
[root@localhost ~]# mount /dev/sdb1 /mnt/
这样我们就挂在好了,挂载到的路径为mnt目录,我们可以通过df -h来查看磁盘分区情况。
[root@localhost ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 44G 3.9G 41G 9% /
devtmpfs 3.9G 0 3.9G 0% /dev
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 3.9G 8.7M 3.9G 1% /run
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/sda1 1014M 143M 872M 15% /boot
tmpfs 781M 0 781M 0% /run/user/0
/dev/sdb1 1.9G 6.0M 1.8G 1% /mnt
可以看到sdb1已经挂载上去,现在我们就可以在里面写入信息了。可以挂载同样可以卸载,是用umount命令就好,以下示例;
[root@localhost ~]# umount /dev/sdb1
[root@localhost ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 44G 3.9G 41G 9% /
devtmpfs 3.9G 0 3.9G 0% /dev
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 3.9G 8.7M 3.9G 1% /run
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/sda1 1014M 143M 872M 15% /boot
tmpfs 781M 0 781M 0% /run/user/0
这样就卸载成功了,在用df -h去查看就会发现不现实/dev/sdb1这个磁盘了,卸载的方式命令后面可以不止跟磁盘路径,还可以跟挂载点路径,并且如果你的所在位置是在这个挂载点上,你还可以通过加-l参数(意思相当于懒人模式,不想先退出该目录先就卸载掉)
mount命令还有多个参数可用,像比较常见的-o选项,在挂载的时候就设置了这个挂载点的权限,还有跟过参数可以通过man命令去查看。
在此我们再来看个系统的配置文件,这个文件是关于开机的时候,系统都默认挂载哪些磁盘,就是根据这个文件配置的,所以这个文件是很关键的,以下示例;
[root@localhost ~]# vi /etc/fstab
/dev/mapper/centos-root / xfs defaults 0 0
UUID=cebd9e04-61e0-492c-b6ed-994de19e3be5 /boot xfs defaults 0 0
/dev/mapper/centos-swap swap swap defaults 0 0
第一列:磁盘分区名称或磁盘分区的UUID
第二列:挂载点(挂载到的目录)
第三列:系统文件类型(ext4或xfs等)
第四列:defaults(默认值)
第五列:备份(0为不备份)
第六列:开机检测(0为不检测)
了解了以上信息,我们同样的可以自己手动添加一个挂载点上去,以下示例;
/dev/sdb1 /mnt xfs defaults 0 0
这样保存退出即可。这里第一列我们填分区路径或者分区的UUID都可以了,如果不知道UUID是多少的,可以通过blkid命来查看
[root@localhost ~]# blkid /dev/sdb1
/dev/sdb1: UUID="3ba96cb1-27cb-43ed-b71f-4f1402b8c51d" TYPE="xfs"
重启系统,自动挂载成功
手动增加swap空间
有的时候当swap空间不够用的时候,或者说某些时候我们就必须增大swap空间的时候,我们可以通过命令操作来增大swap空间。
首先我们先模拟一个100M的小分区,使用dd命令创建;
[root@localhost ~]# dd if=/dev/zero of=/tmp/newdisk bs=1M count=100
记录了100+0 的读入
记录了100+0 的写出
104857600字节(105 MB)已复制,0.215731 秒,486 MB/秒
dd命令是用来操作磁盘的,可以对磁盘进行读写。if是用来指定从哪里去读写,/dev/zero是一个UNIX系统特有的一个文件,它可以源源不断地提供“0”,of指定目标文件,bs定义块的大小,count定义块的数量,bs和count两个参数决定了文件的大小,即文件大小=bs*count,上面的例子我们文件大小就设定为了100M,可以通过du命令来查看文件大小信息。创建好后,我们还需要对这个文件进行格式化为swap格式,以下示例;
[root@localhost ~]# mkswap -f /tmp/newdisk
正在设置交换空间版本 1,大小 = 102396 KiB
无标签,UUID=75931249-564e-4f79-9737-5194bb9bad06
格式化好了之后就可以将它挂载使用了,操作如下;
[root@localhost ~]# free
total used free shared buff/cache available
Mem: 7994076 602372 7042444 8816 349260 7102644
Swap: 5242876 0 5242876
[root@localhost ~]# swapon /tmp/newdisk
swapon: /tmp/newdisk:不安全的权限 0644,建议使用 0600。
[root@localhost ~]# free
total used free shared buff/cache available
Mem: 7994076 602960 7041836 8816 349280 7102056
Swap: 5345272 0 5345272
[root@localhost ~]# chmod 0600 /tmp/newdisk
最后卸载掉后不想要这个文件了,我们可以删除掉它即可。
[root@localhost ~]# swapoff /tmp/newdisk
[root@localhost ~]# free
total used free shared buff/cache available
Mem: 7994076 602704 7042092 8816 349280 7102312
Swap: 5242876 0 5242876