时间:2017-08-14注:本文部分内容摘自《Linux命令行与shell脚本编程大全》一书,版权归原作者所有。《Linux命令行与shell脚本编程大全》(第三版)第八章学习总结第八章:管理文件系统本章内容文件系统基础日志文件系统和写时复制文件系统文件系统管理逻辑卷布局使用Linux逻辑卷管理器8.1探索Linux文件系统8.1.1Linux基本文件系统Linux最初采用的是简单的文件系统。1.ext文件系统Linux操作系统中最早引入的文件系统称为扩展文件系统(extendedfilesystem,简称ext)。它为Linux提供了一个基本的类Unix文件系统:使用虚拟目录来操作硬件设备,在物理设备上以固定长度的块存储数据。ext文件系统名称的扩展部分来自它为每个文件跟踪的额外数据,包括文件名、文件大小、文件大小、文件所有者文件、组文件访问权限以及指向文件所在的每个硬盘块的指针数据存储2.ext2文件系统最早的ext文件系统有很多限制,比如文件大小不能超过2GB。Linux出现后不久,ext文件升级为第二代扩展文件系统,称为ext2。ext2文件系统是ext文件系统基本功能的扩展,但保持了相同的结构。ext2文件系统扩展了inode表的格式,以保存有关系统上每个文件的更多信息。8.1.2日志文件系统日志文件系统为Linux系统增加了一层安全性。它不再沿用以往直接将数据写入存储设备再更新索引节点表的做法,而是先将文件变化写入一个临时文件(称为日志,journal)。数据成功写入存储设备和inode表后,删除相应的日志条目。如果在数据写入存储设备之前系统崩溃或掉电,日志文件系统将在下次读取日志文件并处理上次遗留的未写入数据。Linux中有3种广泛使用的日志方式,每种都有不同的保护级别。以下方法描述了数据模式。索引节点和文件将被写入日志。数据丢失的风险很低,但性能很差。在有序模式下,只会保存索引节点数据。写入日志,但只有在数据写入成功后才删除性能和安全性的一个很好的折衷回写模式只会将inode数据写入日志,但不控制文件数据何时写入和丢失数据风险高,但总比没有日志好1.ext3文件系统2001年,ext3文件系统被引入Linux内核,直到最近它还是几乎所有Linux发行版的默认文件系统。它使用与ext2文件系统相同的inode表结构,但是在每个存储设备上增加了一个日志文件,使得要写入存储设备的数据先记录在日志中。2、ext4文件系统扩展ext3文件系统功能的结果就是ext4文件系统。ext4文件系统在2008年被Linux内核正式支持,现在是大多数流行的Linux发行版(如Ubuntu)默认使用的文件系统。3.Reiser文件系统2001年,HansReiser为Linux创建了第一个名为ReiserFS的日志文件系统。ReiserFS文件系统只支持回写日志方式,只将索引节点表数据写入日志文件。因此,ReiserFS文件系统已成为Linux上最快的日志文件系统之一。4.JFS文件系统JFS(JournaledFileSystem,日志文件系统)作为可能仍在使用的最古老的日志文件系统之一,是IBM在1990年为Unix衍生的AIX开发的。但直到第2版才移植到Linux环境。解释:IBM官方将JFS文件系统的第2版称为JFS2,但大多数Linux系统在提到它时只使用JFS5。Linux世界的文件系统。SiliconGraphics(SGI)最初??于1994年为其商业IRIXUnix系统开发了XFS。2002年发布了适合Linux环境的版本。8.1.3写时复制文件系统使用日志,你必须在安全和性能之间做出选择。就文件系统而言,日志记录的替代方法是一种称为写时复制(COW)的技术。COW使用快照来平衡安全性和性能。COW文件系统变得越来越流行,其中最流行的两个是ZFS和Btrf。一、ZFS文件系统ZFS由Sun于2005年开发,是一个与Resier4、Btrfs、ext4势均力敌的稳定文件系统。但是,它尚未获得GPL许可证。在获得GPL许可证之前,ZFS可能无法成为Linux的默认文件系统。2.Btrf文件系统Btrf文件系统是COW的新来者,也称为B树文件系统。由Oracle公司于2007年开发。8.2操作文件系统8.2.1创建分区命令:fdisk命令描述:用于帮助管理系统上安装的任何存储设备上的分区。命令演示:fdisk/dev/vdb命令说明:进入fsisk工具的运行界面。(系统为centos7-64bit)常用的fdisk命令:说明p:显示当前分区n:添加新分区w:将分区表写入磁盘8.2.2创建文件系统在分区存储数据之前,必须使用一些格式化文件系统创建文件系统的命令行程序工具:用途mkefs:创建一个ext文件系统mke2fs:创建一个ext2文件系统mkfs.ext3:创建一个ext3文件系统mkfs.ext4:创建一个ext4文件systemmkreiserfs:创建ReiserFS文件系统jfs_mkfs:创建JFS文件系统mkfs.xfs:创建XFS文件系统mkfs.zfs:创建ZFS文件系统mkfs.btrfs:创建Btrfs文件系统默认情况下并非所有文件系统工具都安装演示:键入mkfs。ext4命令说明:查看创建ext4文件系统的工具是否可用命令演示:mkfs.ext4/dev/sdb1命令说明:为sdb1分区创建一个ext4文件系统,然后挂载到虚拟目录挂载点命令demo:mkdir/mnt/my_partition命令说明:创建文件目录/mnt/my_partition命令demo:mount-text4/dev/sdb1/mnt/my_partition命令说明:将sdb1分区挂载到/mnt/my_partition目录说明:此方法挂载文件系统只能临时挂载文件系统。重启Linux系统时,文件系统不会自动挂载。要强制Linux在启动时自动挂载新的文件系统,您可以将其添加到/etc/fstab文件中。8.2.3文件系统检查和修复命令:fsck命令描述:检查和修复大多数类型的Linux文件系统。(ext,ext2,ext3,ext4,ReiserFS,JFS,XFS)fsck命令行选项选项:描述-a:如果检测到错误,自动修复文件系统-A:检查/etc/fstab文件中列出的所有文件系统-C:显示支持进度条功能的文件系统的进度条(仅限ext2和ext3)-N:不检查,只显示将进行哪些检查-r:出错时提示-R:使用-A选项时跳转越过根文件系统-s:检查多个文件系统时,依次检查-t:指定要检查的文件系统类型-T:启动时不显示头信息-V:检查时生成详细输出-y:检测8.3逻辑卷管理8.3.1逻辑卷管理布局逻辑卷管理的核心是如何处理系统上安装的硬盘分区。在逻辑卷管理领域,硬盘称为物理卷(PV)。每个物理卷都映射到硬盘上的特定物理分区。逻辑卷管理环境8.3.2Linux中的LVMLinuxLVM由HeinzMauelshagen开发并于1998年发布到Linux社区。它允许您使用简单的命名行在Linux上管理完整的逻辑卷管理环境。8.3.3使用LinuxLVM1.定义创建物理卷的过程的第一步是将硬盘上的物理分区转换为LinuxLVM使用的物理卷段。使用fdisk命令的t命令改变分区类型。命令:pvcreate命令描述:定义用户物理卷的物理分区命令演示:pvcreate/dev/sdb1命令描述:定义用户物理卷的/dev/sdb1物理分区命令:pvdisplay命令描述:显示创建的物理卷list命令演示:pvdisplay/dev/sdb1命令说明:查看/dev/sdb1物理分区是否为物理卷2.创建卷组下一步是从物理卷创建一个或多个卷组。命令:vgcreate命令描述:创建卷组命令演示:vgcreateVoll/dev/sdb1命令描述:使用在/dev/sdb1分区上创建的物理卷创建名为Voll的卷组命令:vgdisplay命令描述:查看卷组详细信息命令演示:vgcreateVoll命令说明:查看名为Voll的卷组的详细信息3、创建逻辑卷Linux系统使用逻辑卷来模拟物理分区,并在其中存储文件系统。命令:lvcreate命令描述:创建一个逻辑卷命令演示:lvcreate-l100%FREE-nlvtestVoll命令描述:在名为voll的卷组上创建一个名为lvtest的卷组,并指定逻辑段数命令:lvdisplay命令描述:查看逻辑卷的详细信息命令演示:lvdisplayVoll命令描述:查看卷组Voll下的逻辑卷信息4.创建文件系统运行lvcreate命令后,逻辑卷已经生成,但是没有有一个文件系统。命令演示:mkfs.ext4/dev/Voll/lvtest命令说明:在Voll卷组下的lvtest逻辑卷中创建ext4文件系统创建新的文件系统后,可以使用标准的Linuxmount命令挂载该卷Mount它在一个虚拟目录中。命令:mount/dev/Voll/lvtest/mnt/my_partition命令说明:将/dev/Voll/lvtest卷挂载到/mnt/my_partition目录下5.修改LVMLinuxLVM的好处是可以动态修改文件系统,因此最好让工具允许您执行此操作。LinuxLVM命令命令:functionvgchange:激活和禁用卷组vgremove:删除卷组vgextend:将物理卷添加到卷组vgreduce:从卷组中删除物理卷lvextend:增加逻辑卷的大小lvreduce:减少逻辑卷大小调整提示:手动增加或减少逻辑卷大小时要格外小心。逻辑卷中的文件系统需要手动调整以适应大小的变化。大多数文件系统包括可以重新格式化文件系统的命令行程序,例如用于ext2、ext3和ext4文件系统的resize2fs程序。提示:8.3章节太low了,楼主学了还是一头雾水。目前,我还没有接触过这么低的层。当我使用它时,我需要反复学习它。8.4总结在Linux上使用存储设备需要一点文件系统知识。在Linux系统上工作时,了解如何在命令行创建和操作文件系统会很有帮助。本章介绍fdisk、fsck、pvcreate、pvdisplay、vgcreate、vgdisplay、lvcreate、lvdisplay、vgremove、vgextend、vgreduce、lvextend、lvreduce命令。本章学习命令个人总结如下vgchange:激活和禁用卷组fdisk:创建分区,查看分区信息等fsck:检查和修复大多数类型的Linux文件系统pvcreate:定义物理卷pvdisplay:查看物理volumesvgcreate:创建卷组vgdisplay:查看卷组lvcreate:创建逻辑卷lvdisplay:查看逻辑卷vgchange:激活和禁用卷组vgremove:删除卷组vgextend:将物理卷添加到卷组vgreduce:从卷组中删除物理卷lvextend:添加逻辑卷lvreduce:减少逻辑卷的大小
