Linux26期 6月15日预习笔记

4.5/4.6 磁盘格式化
4.7/4.8 磁盘挂载
4.9 手动增加swap空间

 

4.5/4.6 磁盘格式化

对分区格式化,实际就是安装文件系统。CentOS 7以 XFS 作为默认的文件系统,但我们依然可以给他指定ext3或者ext4格式。

命令mke2fs   ,  mkfs.ext2  ,mkfs.ext3  ,mkfs.ext4 和 mkfs.xfs      用man命令查询前4个命令的帮助文档时,其实是同一个帮助文档,这说明这4个命令是一样的。下面我们以mke2fs命令为例:

mke2fs命令常用的选项如下:

(1)-b :表示分区时设定每个数据区块占用的空间大小。目前,每个数据块支持1024B,2048B以及4096B.

(2)-i :表示设定inode的大小。

(3)-N :表示设定inode的数量。有时默认的inode数不够用,所以要自定义inode的数量。

(4)-c :表示在格式化前先检测一下磁盘是否有问题。加上这个选项后,运行速度会非常慢。

(5)-L :表示预设该分区的标签(label)。

(6)  -j :表示建立ext3格式的分区。如果使用mkfs.ext3 ,也可以是ext4 。如下:

8dcd71800ce36265a559faea01bbe671559.jpg

指定文件系统格式为ext4时,命令mke2fs -t ext4 /dev/sdb5  等同于 mkfs.ext4 /dev/sdb5 

然而,mke2fs并不支持把分区格式化成XFS类型,而只能用mkfs.xfs ,示例命令如下:

dedaa4bc663292e2e08f41e9eab79146861.jpg

1474d8f5d917010ff02aab029da1c29cd4e.jpg

在上例中,有一个“块”的概念。  “块大小=4096”或者“bsize=4096" 

磁盘在格式化的时候,会预先规定好每一个块的大小,然后再把所有的空间分割成一个一个的小块。

存数据的时候,也是一个块一个块地写入。

如果你的磁盘里存储的都是特别小的文件,比如说1KB或者2KB,可以在格式化磁盘时指定块数值小一点。

ext4文件系统的默认块大小为4096B(即4KB)。

在格式化时,可以指定块大小为1024B,2048B,或者4096B(它们是成倍增加的)。

虽然格式化时可以指定块大小超过4096B,但一旦超过4096B,就不能正常挂载。那么,如何指定块大小呢?具体操作方法如下:

e472c9f9816b865150812be65125cd31bca.jpg

ab60041e663ee29bc8e5bcc12969ef98db0.jpg

上例中命令 #mkfs.xfs -b size=8192 /dev/sdb6       //重新格式化sdb6时,会提示这个分区已经格式化过

通过上面的小实验中可以发现:如果指定块大小为8192B,会提示块值设置的太大了,我们可以直接输入y强制格式化。

你还可以尝试指定其他数字,但是需要是1024的指数倍(1024,2048,4096或者8192)。

其中,mkfs.xfs用法有点特殊,需要注意和mke2fs区分。

另外,还可以给分区指定标签,如下:

a92a8f89ec5a7deb9b5db5afbe66308165c.jpg

上例中使用-L选项来指定标签。

标签会在挂载磁盘时使用,也可以写入配置文件。

关于格式化的这部分内容 ,除非有需求,否则不需要指定块大小。也就是说,我们只需要记住 -t 和 -L这两个选项即可。

 

 

 

4.7/4.8 磁盘挂载

格式化后的磁盘其实是一个块设备文件,类型为b。

在挂载某个分区前,需要先建立一个挂载点,这个挂载点是以目录的形式出现的。一旦把某个分区挂载到这个挂载点(目录)下,要再往这个目录写数据时,就都会写到该分区中。

所以,在挂载该分区前,挂载点(目录)下必须是个空目录。

其实目录不为空并不影响所挂载分区的使用,但一旦挂载上了,该目录下以前的东西就看不到了(数据并没有丢失),除非卸载该分区。

命令mount     如果不加任何选项,直接运行mount命令,输出的信息量有点大。使用这个命令,可以查看当前系统已经挂载的所有分区,分区文件系统的类型,挂载点及一些选项等信息。

如果想知道某个已挂载分区的文件系统类型,直接用mount命令查看即可。

而未挂载的分区,可以使用命令 blkid 查看。

 

那么先建立一个空目录,然后在空目录里建一个空白文档。如下:

280e48796fe21e48ca0a750dff4a07573e0.jpg

然后把刚才格式化的 /dev/sdb5  挂载到 /newdir 上,如下:

8344092dc6881cba8171f5870a2e4bcff38.jpg

把 /dev/sdb5 挂载到 /newdir 后,原来在 /newdir 下的 newfile.txt 就看不到了,通过命令 df -h 命令可以查看刚刚挂载的分区。

我们也可以使用 LABEL 的方式挂载分区,如下

 

 

 

 

 

umount命令,是用来卸载磁盘分区的。

mount命令常用的选项有 -a , -t ,和 -o 。

 

 

/etc/fstab 配置文件

04c0ce1a1a029770f2f88090037f162ab76.jpg

上面是查看 /etc/fstab文件的内容

含义如下:

(1)第一列就是分区的标识,可以写分区的LABEL ,分区的 UUID ,也可以写分区名(/dev/sdal)

(2)第二列是挂载点

(3)第3列是分区的格式

(4)第4列是mount的一些挂载参数。一般情况下,直接写defaults即可

(5)第5列的数字是否被dump备份。1表示备份,0表示不备份

(6)第6列的数字表示开机时是否自检磁盘。1和2都表示检测,0表示不检测。自检时,1比2优先级高,所以先检测1,再检测2。如果有多个分区需要开机检测,就都设置成2,1检测完后会同时检测2。在CentOS 7中,所有分区中该列的值都是0

下面重点学习第4列的常用选项:

(1)async/sync  :async 表示与磁盘和内存不同步。系统每个一段时间就会把内存数据写入磁盘中,而sync 则会时时同步内存和磁盘中的数据。

(2)auto/noauto :表示开机自动挂载/不自动挂载。

(3)default : 表示按照大多数永久文件系统的默认值设置挂载定义,它包含了 rw ,suid ,dev ,exec ,auto ,nouser 和 async

(4)ro :表示按只读权限挂载

(5)rw :表示按可读可写权限挂载

(6)exec/noexec :表示允许/不允许可执行文件执行,但千万不要把根分区挂载为noexec,否则将无法使用系统,甚至连mount命令都无法使用

(7)user/nouser : 表示允许/不允许 root 外的其他用户挂载分区。为了安全,请用nouser

(8) suid/nosuid :表示允许/不允许分区有suid属性,一般设置nosuid

(9)usrquota : 表示启动用户的磁盘配额模式。磁盘配额会针对用户限定他们使用的磁盘额度。

(10)grquota :表示启动群组的磁盘配额模式

学完了/etc/fstab ,就可以自己修改这个文件,增加一行来挂载新增分区。

卸载之前已经挂载的/dev/sdb5

4e39de59c8674a327dabf1d3b6ec9624ec6.jpg

使用命令df -h 查看,会发现已经成功卸载 dev/sdb5

下面执行命令mount -a

(1)mount -a 命令会把/etc/fstab中出现的所有磁盘分区挂载上。

(2)mount -t 命令用来指定挂载的分区类型,默认不指定,会自动识别

(3)mount -o 命令用来指定挂载分区有哪些特性,及上面/etc/fstab配置文件中第4列的那些。(常用)

 

命令blkid 挂载磁盘是通过/dev/sdb这样的分区名字来挂载的,如果该分区先前已加入到etc/fstab 中,系统启动后则会挂载错分区。那么,怎样避免这样的情况发生呢?这就用到 UUID。我们可以通过blkid命令获取各分区的UUID

3ae5f4eadaa473a90387636a14176ad5086.jpg

这样可以获得全部磁盘分区得UUID。如果格式化时指定了LABEL,则该命令也会显示LABEL值,文件系统得类型也会显示。

当然,这个命令后面也可以指定查询哪个分区,如下:

0f49ef8b5260434fc6dbf207356be9a3def.jpg

获得UUID后,如何使用它呢?用法如下:

4a7c4489c5b157333a10fe4d9a57762d959.jpg

 

如果想让某个分区在开机后自动挂载,有两个办法可以实现:

一是在/etc/fstab中添加一行,如上例中那行

二是把挂载命令写到/etc/rc.d/rc.local文件中去,系统启动后会执行这个文件中的命令。只要你把想要开机启动的命令统统写入这个文件中去(直接放到最后)即可。阿铭老师经常把挂载的命令放到改文件的最后一行。如下:

954f082356f47da5421f26c4947d23a3219.jpg

有的时候可能会遇到这样的情况,把命令写入/etv/rc.d/rc.local文件里,却并没有开机执行,这很有可能是因为系统并没有找到那个命令。所以,为了避免此类问题,阿铭老师的建议是,以后写入到改文件的命令,要使用绝对路径,比如本例中的mount应该写成/usr/bin/mount。更改完/etc/rc.d/rc.local文件后,还需要一步操作:

#chmod a+x /etc/rc.d/rc.local

7a0e1469cecf4173a65c873b37c36749c9d.jpg

这是因为,在CentOS 7 系统,该文件默认没有执行权限。以上两种方法任选其一。阿铭老师介绍第2中种方法其实也是告诉我们:如何让一些操作行为随系统启动而自动执行。

另外,阿铭老师的建议是:在挂载磁盘分区时,尽量使用UUID或者LABEL这两种方法。

 

命令umount

格式:这个命令后面可以跟挂载点,也可以跟分区名(如/dev/sdb1),但是不可以跟LABEL和UUID。

umount命令的-l选项非常有用。有时候会遇到不能卸载的情况。

不能卸载是因为当前目录还在卸载的分区上。

解决这个问题的办法有两种:一是进入到其他目录;二是使用umount命令的-l选项。

e466760c8a2fd77684267a9d661ce3ed5d1.jpg

 

 

 

4.9 手动增加swap空间

它类似于Windows的虚拟内存,分区时一般指定虚拟内存的大小为实际内存的2倍。

如果你的实际内存超过4GB,那么划分8GB虚拟内存就足够日常交换了。

如果真的遇到了虚拟内存不够用的情况,就必须增加一个虚拟磁盘,因为我们不可能重新给磁盘分区。

增加虚拟磁盘的基本思路是:建立swapfile ——格式化为swap格式——启用该虚拟磁盘。

 

首先建立 swapfile

4bcc59781bb397b6a38556ff01b03ada805.jpg

dd命令是常用命令,使用需要掌握其使用方法:

用 if 指定源(一般是写/dev/zero ,它是UNIX系统特有的一个文件,它可以源源不断地提供“0”),

of 指定目标文件

bs定义块的大小

count定义块的数量

bs 和 count 这两个参数决定了目标文件的大小,即目标文件大小=bs*count

上面的示例中,用dd命令建立一个大小为1.1GB的文件

下面将它格式化为swap格式,如下:

70cdf4c3606caadc940d862eb5677276638.jpg

文件格式化后,就可以挂载使用了,如下:

4f99e5960dfb52b19affe5905d82382c8d7.jpg

前后对比一下swap分区,发现多了1024MB的空间。

其中free命令用来查看内存的使用情况

-m选项表示以MB为单位显示

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

转载于:https://my.oschina.net/u/3851620/blog/1831713

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值