时间:2017年08月14日星期一shell
说明:本文部份内容均摘取自书籍《Linux命令行与shell脚本编程大全》,版权归原做者全部。《Linux命令行与shell脚本编程大全》(第三版)第八章学习总结编程
本章内容centos
文件系统基础 日志文件系统与写时复制文件系统 文件系统管理 逻辑卷布局 使用Linux逻辑卷管理器
Linux最初采用的是一种简单的文件系统。安全
1.ext文件系统工具
Linux操做系统中引入的最先的文件系统叫做扩展文件系统(extended filesystem,简记为ext)。它为Linux提供了一个基本的类Unix文件系统:使用虚拟目录来操做硬件设备,在物理设备上按定长的块来存储数据。布局
ext文件系统名称中的extended部分来自其跟踪的每一个文件的额外数据,包括性能
文件名 文件大小 文件的属主 文件的属组 文件的访问权限 指向存有文件数据的每一个硬盘块的指针
2.ext2文件系统学习
最先的ext文件系统有很多限制,好比文件大小不得超过2GB。在Linux出现后不久,ext文件就升级到了第二代扩展文件系统,叫做ext2。ext2文件系统是ext文件系统基本功能的一个扩展,但保持了统一样的结构。ext2文件系统扩展了索引节点表的格式来保存系统上每一个文件的更多信息。centos7
日志文件系统为Linux系统增长了一层安全性。它再也不使用以前先将数据直接写入存储设备再更新索引节点表的作法,而是先将文件的更改写入到临时文件(称做日志,journal)中。在数据成功写到存储设备和索引节点表以后,再删除对应的日志条目。若是系统在数据被写入存储设备以前崩溃或断电了,日志文件系统下次会读取日志文件并处理上次留下的未写入的数据。spa
Linux中有3中普遍使用的日志方法,每种的保护等级都不相同,以下
方法 描述 数据模式 索引节点和文件都会被写入日志 丢失数据风险低,但性能差 有序模式 只有索引节点数据会被写入日志,但只有数据成功写入后才删除 在性能和安全性之间取得了良好的折中 回写模式 只有索引节点数据会被写入日志,但不控制文件数据什么时候写入 丢失数据风险高,但仍比不用日志好
1.ext3文件系统
2001年,ext3文件系统被引入Linux内核中,直到最近都是几乎全部Linux发行版默认的文件系统。它采用和ext2文件系统相同的索引节点表结构,但给每一个存储设备增长了一个日志文件,以将准备写入存储设备的数据先记入日志。
2.ext4文件系统
扩展ext3文件系统功能的结果是ext4文件系统。ext4文件系统在2008年受到Linux内核官方支持,如今已经是大多数流行的Linux发行版采用的默认文件系统,好比Ubuntu。
3.Reiser文件系统
2001年,Hans Reiser为Linux建立了第一个称为ReiserFS的日志文件系统。ReiserFS文件系统只支持回写日志模式,只把索引节点表数据写到日志文件。ReiserFS文件系统也所以成为Linux上最快的日志文件系统之一。
4.JFS文件系统
做为可能依然在用的最老的日志文件系统之一,JFS(Journaled File System,日志化文件系统)是IBM在1990年为期Unix衍生版AIX开发的。然而直到第2版,它才被移植到Linux环境中。
说明:IBM官方称JFS文件系统的第2版为JFS2,但大多数Linux系统提到它时都只用JFS
5.XFS文件系统
XFS日志文件系统是另外一种最初用于商业Unix系统而现在走进Linux世界的文件系统。美国硅图公司(SGI)最初在1994年为其商业化的IRIX Unix系统开发了XFS。2002年,它被发布到了适用于Linux环境的版本。
采用了日志式技术,你就必须在安全性和性能之间作出选择。就文件系统而言,日志式的另外一种选择是一种叫做写时复制(copy-on-write,COW)的技术。COW利用快照兼顾了安全性和性能。COW文件系统已日渐流行,其中最流行的两种是ZFS和Btrf。
1.ZFS文件系统
ZFS由Sun公司于2005年研发,是一个稳定的文件系统,与Resier四、Btrfs和ext4平分秋色。但还没有得到GPL许可,在未得到GPL许可以前,ZFS有可能没法成为Linux默认的文件系统。
2.Btrf文件系统
Btrf文件系统是COW的新人,也被称为B树文件系统。由Oracle公司于2007年研发。
命令:fdisk 命令说明:用来帮助管理安装在系统上的任何存储设备上的分区。 命令演示:fdisk /dev/vdb 命令说明:进入fsisk工具的操做界面。(系统为centos7-64bit)
经常使用fdisk命令
命令:描述 p:显示当前分区 n:添加一个新分区 w:将分区表写入磁盘
在将数据存储到分区以前,必须用某种文件系统对其进行格式化
建立文件系统的命令行程序
工具:用途 mkefs:建立一个ext文件系统 mke2fs:建立一个ext2文件系统 mkfs.ext3:建立一个ext3文件系统 mkfs.ext4:建立一个ext4文件系统 mkreiserfs:建立一个ReiserFS文件系统 jfs_mkfs:建立一个JFS文件系统 mkfs.xfs:建立一个XFS文件系统 mkfs.zfs:建立一个ZFS文件系统 mkfs.btrfs:建立一个Btrfs文件系统
并不是全部文件系统工具都已经默认安装
命令演示:type mkfs.ext4 命令说明:查看建立ext4文件系统工具是否可用 命令演示:mkfs.ext4 /dev/sdb1 命令说明:对sdb1分区建立一个ext4文件系统
接下来将它挂载到虚拟目录下的某个挂载点
命令演示:mkdir /mnt/my_partition 命令说明:建立文件目录/mnt/my_partition 命令演示:mount -t ext4 /dev/sdb1 /mnt/my_partition 命令说明:将sdb1分区挂载到/mnt/my_partition目录
说明:这种挂载文件系统的方法只能临时挂载文件系统。当重启Linux系统时,文件系统并不会自动挂载。要强制Linux启动时自动挂载新的文件系统,能够将其添加到/etc/fstab文件。
命令:fsck 命令说明:检查和修复大部分类型的Linux文件系统。 (ext、ext二、ext三、ext四、ReiserFS、JFS、XFS)
fsck命令行选项
选项:描述 -a:若是检测到错误,自动修复文件系统 -A:检查/etc/fstab文件中列出的全部文件系统 -C:给支持进度条功能的文件系统显示一个进度条(只有ext2和ext3) -N:不进行检查,只显示哪些检查会执行 -r:出现错误时提示 -R:使用-A选项时跳过根文件系统 -s:检查多个文件系统时,依次进行检查 -t:指定要检查的文件系统类型 -T:启动时不显示头部信息 -V:在检查时产生详细输出 -y:检测到错误时自动修复文件系统
逻辑卷管理的核心在于如何处理安装在系统上的硬盘分区。在逻辑卷管理的世界里,硬盘称做物理卷(physical volume,PV)。每一个物理卷都会映射到硬盘上特定的物理分区。
逻辑卷管理环境
Linux LVM是由Heinz Mauelshagen开发的,于1998年发布到了Linux社区。它容许你在Linux上用简单的命名行管理一个完整的逻辑卷管理环境。
1.定义物理卷
建立过程的第一步就是将硬盘上的物理分区转换成Linux LVM使用的物理卷区段。使用fdisk命令的t命令改变分区类型。
命令:pvcreate 命令说明:定义用户物理卷的物理分区 命令演示:pvcreate /dev/sdb1 命令说明:定义用户物理卷的/dev/sdb1物理分区 命令:pvdisplay 命令说明:显示已建立的物理卷列表 命令演示:pvdisplay /dev/sdb1 命令说明:查看/dev/sdb1物理分区是否为物理卷
2.建立卷组
下一步是从物理卷中建立一个或多个卷组。
命令:vgcreate 命令说明:建立卷组 命令演示:vgcreate Voll /dev/sdb1 命令说明:使用/dev/sdb1分区上建立的物理卷,建立了一个名为Voll的卷组 命令:vgdisplay 命令说明:查看卷组的细节 命令演示:vgcreate Voll 命令说明:查看名为Voll的卷组的细节
3.建立逻辑卷
Linux系统使用逻辑卷来模拟物理分区,并在其中保存文件系统。
命令:lvcreate 命令说明:建立逻辑卷 命令演示:lvcreate -l 100%FREE -n lvtest Voll 命令说明:在名为Voll的卷组上建立一个名为lvtest的卷组,并指定逻辑区段数 命令:lvdisplay 命令说明:查看逻辑卷的详细状况 命令演示:lvdisplay Voll 命令说明:查看卷组Voll下的逻辑卷信息
4.建立文件系统
运行完lvcreate命令以后,逻辑卷就已经产生了,但它尚未文件系统。
命令演示:mkfs.ext4 /dev/Voll/lvtest 命令说明:在Voll卷组下的lvtest逻辑卷中建立一个ext4文件系统
建立好了新的文件系统以后,能够用标准的Linux mount 命令来将这个卷挂载到虚拟目录中。
命令:mount /dev/Voll/lvtest /mnt/my_partition 命令说明:将/dev/Voll/lvtest卷挂载到/mnt/my_partition目录
5.修改LVM
Linux LVM的好处在于可以动态修改文件系统,所以最好有工具可以让你实现这些操做。
Linux LVM命令
命令:功能 vgchange:激活和禁用卷组 vgremove:删除卷组 vgextend:将物理卷加到卷组中 vgreduce:从卷组中删除物理卷 lvextend:增长逻辑卷的大小 lvreduce:减少逻辑卷的大小
窍门:在手动增长或减少逻辑卷的大小时,要特别当心。逻辑卷中的文件系统须要手动修整来处理大小上的变化。大多数文件系统都包含了可以从新格式化文件系统的命令行程序,好比用于ext二、ext3和ext4文件系统的resize2fs程序。
Tip:8.3这一章节太过于底层,楼主学完也是懵逼状态。目前还未接触到这么底层,有使用的时候,须要重复学习噢。
在Linux上使用存储设备须要懂一点文件系统的知识。当工做在Linux系统下时,懂得如何在命令行下建立和处理文件系统能帮上你的忙。本章介绍了fdisk、fsck、pvcreate、pvdisplay、vgcreate、vgdisplay、lvcreate、lvdisplay、vgremove、vgextend、vgreduce、lvextend、lvreduce命令。
本章学习命令我的总结以下
vgchange:激活和禁用卷组 fdisk:建立分区、查看分区信息等 fsck:检查和修复大部分类型的Linux文件系统 pvcreate:定义物理卷 pvdisplay:查看物理卷 vgcreate:建立卷组 vgdisplay:查看卷组 lvcreate:建立逻辑卷 lvdisplay:查看逻辑卷 vgchange:激活和禁用卷组 vgremove:删除卷组 vgextend:将物理卷加到卷组中 vgreduce:从卷组中删除物理卷 lvextend:增长逻辑卷的大小 lvreduce:减少逻辑卷的大小