磁盘分区与挂载,增加swap空间

一、磁盘分区

命令 : mke2fs, mkfs.ext2, mkfs.ext3, mkfs.ext4和mkfs.xfs。
我们man前4个命令的话(mke2fs, mkfs.ext2, mkfs.ext3, mkfs.ext4),我们看到了同一个帮助文档,这说明四个命令是一样的。以mke2fs命令为例子。
mke2fs常用的选项有:

‘-b’ 分区时设定每个数据区块占用空间大小,目前支持1024, 2048 以及4096 bytes每个块。
‘-i’ 设定inode的大小
‘-N’ 设定inode数量,有时使用默认的inode数不够用,所以要自定设定inode数量。
‘-c’ 在格式化前先检测一下磁盘是否有问题,加上这个选项后会非常慢
‘-L’ 预设该分区的标签label
‘-j’ 建立ext3格式的分区,如果使用mkfs.ext3 就不用加这个选项了
‘-t’ 用来指定什么类型的文件系统,可以是ext2, ext3 也可以是 ext4
‘-m’ 指定磁盘预留空间大小

磁盘分区与挂载,增加swap空间
我们指定文件系统格式为ext4时,命令mke2fs -t ext4 /dev/sdb1等同于命令mkfs.ext4 /dev/sdb1。但是命令mke2fs命令并不支持把分区格式化为xfs,只能使用mkfs.xfs命令,在实验时,这个分区已经格式为ext4格式了,要格式化为xfs需要加-f参数:
磁盘分区与挂载,增加swap空间
在上面的例子中,你是否有注意到一些指标呢?其中一个指标是 “块大小=4096” 这里涉及到一个 “块” 的概念。
磁盘分区与挂载,增加swap空间
磁盘在被格式化的时候会预先规定好每一个块的大小,然后再把所有的空间分割成一个一个的小块,存数据的时候也是一个块一个块的去写入。所以如果你的磁盘存的都是特别小特别小的文件,比如说1k或者2k,那么建议在格式化磁盘的时候指定块数值小一点。ext文件系统默认块大小为4096也就是4k. 在格式化的时候,可以指定块大小为1024, 2048, 4096(它们是成倍增加的),虽然格式化的时候可以指定块大小超过4096,但是一旦超过4096则不能正常挂载,如何指定块大小?加-b参数:

磁盘分区与挂载,增加swap空间
指定块大小为8192会提示,块值设置太大了,我们直接输入 ‘y’ 强制格式化,你还可以尝试指定更大的数字。正常情况下使用默认大小即可,除非有特殊要求。
我们在格式化的时候可以-L指定标签,标签会在挂载磁盘的时候使用,也可以写到配置文件里。
磁盘分区与挂载,增加swap空间


二、磁盘挂载/卸载

无论分不分区都能格式化,格式化后才能够挂载,挂载后系统才可以访问写数据。
在挂载某个分区前需要先建立一个挂载点,这个挂载点是以目录的形式出现的。一旦把某一个分区挂载到了这个挂载点(目录)下,那么再往这个目录写数据使,则都会写到该分区中。这就需要你注意一下,在挂载该分区前,挂载点(目录)下必须是个空目录。其实目录不为空并不影响所挂载分区的使用,但是一旦挂载上了,那么该目录下以前的东西就不能看到了。只有卸载掉该分区后才能看到。

1、命令 : mount

如果不加任何选项,直接运行 “mount” 命令,会显示如下信息:
磁盘分区与挂载,增加swap空间
这个命令可以查看当前系统已经挂载的所有分区,以及分区文件系统的类型,挂载点和一些选项等信息,所以你如果想知道某个分区的文件系统类型直接用该命令查看即可。
下面我们先建立一个空目录,然后在目录里建一个空白文档:
磁盘分区与挂载,增加swap空间
然后把刚才格式化的/dev/sdb1挂载到/testdir上,把 /dev/sdb5 挂载到 /testdir 后,原来在 /testdir 下的 test.txt 被覆盖了,通过 df -h 可以看到刚刚挂载的分区:
磁盘分区与挂载,增加swap空间
也可以使用LABEL的方式挂载分区,在之前格式化的时候/dev/sdb1标签设为了TEST:
磁盘分区与挂载,增加swap空间
本例中用到了 “umount” 命令,这个是用来卸载磁盘分区的 。mount 命令常用的选项有:’-a’, ‘-t’, ‘-o’. 在讲 ‘-a’ 选项前,我们有必要先了解一下这个文件 /etc/fstab。

cat /etc/fstab

磁盘分区与挂载,增加swap空间

第一列就是分区的标识,可以写分区的LABEL,也可以写分区的UUID,当然也可以写分区名(/dev/sda1);
第二列是挂载点;
第三列是分区的格式;
第四列则是mount的一些挂载参数,一般情况下,直接写defaults即可;
第五列的数字表示是否被dump备份,是的话这里就是1,否则就是0;
第六列是开机时是否自检磁盘。1,2都表示检测,0表示不检测,在Redhat/CentOS中,这个1,2还有个说法,/ 分区必须设为1,而且整个fstab中只允许出现一个1,这里有一个优先级的说法。1比2优先级高,所以先检测1,然后再检测2,如果有多个分区需要开机检测那么都设置成2吧,1检测完了后会同时去检测2。

第四列,有一些参数:

“async/sync” : async表示和磁盘和内存不同步,系统每隔一段时间把内存数据写入磁盘中,而sync则会时时同步内存和磁盘中数据;
“auto/noauto” : 开机自动挂载/不自动挂载;
“default” : 按照大多数永久文件系统的缺省值设置挂载定义,它包含了rw, suid, dev, exec, auto, nouser, async
“ro” : 按只读权限挂载 ;
“rw” : 按可读可写权限挂载 ;
“exec/noexec” : 允许/不允许可执行文件执行,但千万不要把根分区挂载为noexec,那就无法使用系统了,连mount命令都无法使用了,这时只有重新做系统了;
“user/nouser” : 允许/不允许root外的其他用户挂载分区,为了安全考虑,请用nouser ;
“suid/nosuid” : 允许/不允许分区有suid属性,一般设置nosuid ;
“usrquota” : 启动使用者磁盘配额模式,磁盘配额相关内容在后续章节会做介绍;
“grquota” : 启动群组磁盘配额模式;

理解了/etc/fstab后,我们就可以自己修改这个文件,增加一行来挂载新增分区。例如,铭增加了这样一行:
磁盘分区与挂载,增加swap空间
然后我们先卸载/dev/sdb1:
磁盘分区与挂载,增加swap空间

再执行命令:

mount -a

磁盘分区与挂载,增加swap空间
此时,多出来一个 /dev/sdb1 挂载到了 /testdir下。这就是 mount -a 命令执行的结果,这个 ‘-a’ 选项会把/etc/fstab中出现的所有磁盘分区挂载上。除了-a选项,还有两个常用选项:

‘-t’ 选项用来指定挂载的分区类型,默认不指定会自动识别。
‘-o’ 选项用来指定挂载的分区有哪些特性,即上面 “/etc/fatab” 配置文件中第四列的那些。

2、命令:blkid

日常的运维工作中遇到过这样的情况,一台服务器上新装了两块磁盘,磁盘a(在服务器上显示为sdc)和磁盘b(在服务器上显示为sdd),有一次把这两块磁盘都拔掉了,然后再重新插上,重启机器,结果磁盘编号调换了,a变成了sdd,b变成了sdc(这是因为把磁盘插错了插槽),问题来了。通过上边的学习,你挂载磁盘是通过/dev/hdb1 这样的分区名字来挂载的,如果先前加入到了/etc/fstab 中,结果系统启动后则会挂载错分区。那么怎么样避免这样的情况发生?
这就用到了UUID,可以通过 blkid 命令获取各分区的UUID:
磁盘分区与挂载,增加swap空间
这样可以获得全部磁盘分区的UUID,如果格式化的时候指定了 LABEL 则该命令也会显示LABEL值,甚至连文件系统类型也会显示。也可以制定分区查看:
磁盘分区与挂载,增加swap空间
知道UUID之后,我们可以直接通过UUID来挂载磁盘:
磁盘分区与挂载,增加swap空间

3、命令:umount

在上面的小实验中,多次用到这个命令,这个命令也简单的很,后边可以跟挂载点,也可以跟分区名(/dev/sdb1), 但是不可以跟LABEL和UUID。
umount 命令有一个非常有用的选项那就是 ‘-l’, 有时候你会遇到不能卸载的情况:
磁盘分区与挂载,增加swap空间
这是因为当前目录为要卸载的分区上,解决办法有两种,一是到其他目录,二是使用 ‘-l’ 选项:
磁盘分区与挂载,增加swap空间


三、增加swap空间

swap分区在系统的物理内存不够用的时候,把硬盘空间中的一部分空间释放出来,以供当前运行的程序使用,swap的调整对Linux服务器,特别是Web服务器的性能至关重要。通过调整swap,有时可以越过系统性能瓶颈,节省系统升级费。我们安装系统时通常分配swap是内存的1-2倍,内存大的除外。
查看系统swap空间大小:

free -m

磁盘分区与挂载,增加swap空间
增加swapfile:

dd if=/dev/zero of=/tmp/newdisk bs=1M count=1024

磁盘分区与挂载,增加swap空间
“dd” 这个命令经常用到,所以要掌握它的使用方法,其实也不难,用 “if” 指定源,基本上除了 “/dev/zero” 外基本上不会写别的,而/dev/zero 是UNIX系统特有的一个文件,它可以提供源源不断的 “0”, 关于它的其他信息请你在网上查一下资料。 “of” 指定目标文件, “bs” 定义块的大小, “count” 定义块的数量,这两个参数的多少决定了目标文件的大小,目标文件大小 = bs乘以count。
然后将newdisk目录格式化为swap格式:

mkswap -f /tmp/newdisk

磁盘分区与挂载,增加swap空间
格式化之后就可以挂载使用了:
磁盘分区与挂载,增加swap空间
卸载:
磁盘分区与挂载,增加swap空间

转载于:https://blog.51cto.com/3069201/2055904