Linux文件系统.doc_第1页
Linux文件系统.doc_第2页
Linux文件系统.doc_第3页
Linux文件系统.doc_第4页
Linux文件系统.doc_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

文档模板01文档副标题文档标题文档模板01Version 1.02015-03-01DEV-07-0018Copyright2015 ZTEsoft Integration Runtime Environment日期编写/修改人版本记录2015-03-01IREVer 1.0创建日期审阅人版本密级状态意见2015-03-05IREVer 1.0内部公开发布无审阅文档控制页面编写/修改 Linux 磁盘与文件系统一、硬盘硬盘主要是有许多的圆形硬盘片组成,按照盘片能够容纳的数据量,分为单盘和多盘的硬盘硬盘的容量公式:柱面*磁头*扇区*512字节,512字节就是每个扇区的大小 硬盘的分区分区的起始和结束柱面的数据放在主引导分区,即MBR.MBR就是在一块硬盘上的第0个轨道上,这也是计算机启动之后要去使用硬盘室必须要读的第一个区域。这个分区记录了硬盘的分区信息,以及启动可以写入引导程序的位置。MBR的最大限制是,他得大小不能道道存储所有分区和引导信息,因此mbr仅提供最多四个分区记忆。这就是主分区P与扩展分区E,如果超过四个就必须使用3P+E来完成。文件系统:每一个分区就是一个文件系统。逻辑块是在分区进行文件系统格式化时所指定的最小存储单位,这个最小存储单位室以扇区大小为基础的(扇区为硬盘的最小物理存储单位),所以块的大小就是扇区大小的2的n次方倍。块的规划k考虑的问题:。文件读取效率。文件大小可能造成硬盘空间浪费因此在规划磁盘的时候,需要考虑到主机的用途。例如bbs主机由于文章较短,也就是说文件小,那么块小一点;如果主机主要用于存储文件,那么考虑效率,块就大一点。二、LINUX的ext2/ext3/ext4文件系统Ext3文件系统时ext2文件系统的升级版。Ext4 是在ext3的基础之上开发 出来的 Ext2 stands for second extended file system. It was introduced in 1993. Developed by Rmy Card. This was developed to overcome the limitation of the original ext file system. Ext2 does not have journaling feature. On flash drives, usb drives, ext2 is recommended, as it doesnt need to do the over head of journaling. Maximum individual file size can be from 16 GB to 2 TB Overall ext2 file system size can be from 2 TB to 32 TBExt3 Ext3 stands for third extended file system. It was introduced in 2001. Developed by Stephen Tweedie. Starting from Linux Kernel 2.4.15 ext3 was available. The main benefit of ext3 is that it allows journaling. Journaling has a dedicated area in the file system, where all the changes are tracked. When the system crashes, the possibility of file system corruption is less because of journaling. Maximum individual file size can be from 16 GB to 2 TB Overall ext3 file system size can be from 2 TB to 32 TB There are three types of journaling available in ext3 file system. o Journal Metadata and content are saved in the journal.o Ordered Only metadata is saved in the journal. Metadata are journaled only after writing the content to disk. This is the default.o Writeback Only metadata is saved in the journal. Metadata might be journaled either before or after the content is written to the disk. You can convert a ext2 file system to ext3 file system directly (without backup/restore).Ext4 Ext4 stands for fourth extended file system. It was introduced in 2008. Starting from Linux Kernel 2.6.19 ext4 was available. Supports huge individual file size and overall file system size. Maximum individual file size can be from 16 GB to 16 TB Overall maximum ext3 file system size is 1 EB (exabyte). 1 EB = 1024 PB (petabyte). 1 PB = 1024 TB (terabyte). Directory can contain a maximum of 64,000 subdirectories (as opposed to 32,000 in ext3) You can also mount an existing ext3 fs as ext4 fs (without having to upgrade it). Several other new features are introduced in ext4: multiblock allocation, delayed allocation, journal checksum. fast fsck, etc. All you need to know is that these new features have improved the performance and reliability of the filesystem when compared to ext3. In ext4, you also have the option of turning the journaling feature “off”. Creating an ext2, or ext3, or ext4 filesystem Once youve partitioned your hard disk using fdisk command, use mke2fs to create either ext2, ext3, or ext4 file system. Create an ext2 file system: mke2fs /dev/sda1 Create an ext3 file system: mkfs.ext3 /dev/sda1 (or) mke2fs j /dev/sda1 Create an ext4 file system: mkfs.ext4 /dev/sda1 (or) mke2fs -t ext4 /dev/sda1 Converting ext2 to ext3 For example, if you are upgrading /dev/sda2 that is mounted as /home, from ext2 to ext3, do the following. umount /dev/sda2 tune2fs -j /dev/sda2 mount /dev/sda2 /home Note: You really dont need to umount and mount it, as ext2 to ext3 conversion can happen on a live file system. But, I feel better doing the conversion offline. Converting ext3 to ext4 If you are upgrading /dev/sda2 that is mounted as /home, from ext3 to ext4, do the following. umount /dev/sda2 tune2fs -O extents,uninit_bg,dir_index /dev/sda2 e2fsck -pf /dev/sda2 e4fsck -yfDC0 /dev/sda2 mount /dev/sda2 /home Again, try all of the above commands only on a test system, where you can afford to lose all your data.EXT4文件系统的特点大型文件系统ext4文件系统可支持最高1 Exbibyte的分区区4与最大16 Tebibyte的文件。Extentsext4引进了Extent文件存储方式,以取代ext2/3使用的block mapping方式。Extent指的是一连串的连续实体block,这种方式可以增加大型文件的效率并减少分裂文件。ext4支持的单一Extent,在单一block为4KB的系统中最高可达128MB1。单一inode中可存储4笔Extent;超过四笔的Extent会以Htree方式被索引。向下兼容ext4向下兼容于ext3与ext2,因此可以将ext3和ext2的文件系统挂载为ext4分区区。由于某些ext4的新功能可以直接运用在ext3和ext2上,直接挂载即可提升少许性能。ext3文件系统可以部分向上兼容于ext4(也就是说ext4文件系统可以被挂载为ext3分区区)。然而若是使用到Extent技术的ext4将无法被挂载为ext3。预留空间ext4允许对一文件预先保留磁盘空间。目前大多数文件系统做到这点的方式是直接产生一个填满0的文件;ext4和XFS可以使用Linux核心中的一个新的系统调用“fallocate()”取得足够的预留空间。延迟取得空间ext4使用一种称为allocate-on-flush的方式,可以在数据将被写入磁盘(sync)前才开始取得空间;大多数文件系统会在之前便取得需要的空间。这种方式可以增加性能并减少文件分散程度。突破32000子目录限制ext3的一个目录下最多只能有32000个子目录。ext4的子目录最高可达64000,且使用“dir_nlink”功能后可以达到更高(虽然父目录的link count会停止增加)。为了避免性能受到大量目录的影响,ext4默认打开Htree(一种特殊的B-tree)索引功能。该功能已经实现于Linux核心2.6.23版。日志校验和Ext4使用校验和特性来提高文件系统可靠性,因为日志是磁盘上被读取最频繁的部分之一。这个特性还有一个好处就是可以安全地避免日志处理时磁盘I/O的等待,而稍微提高一些性能。日志校验和的技术源于威斯康辛大学的一篇名为IRON File Systems的研究论文(见第六节 transaction checksums校验和处理)5在线磁盘整理对于在线磁盘整理工具有许多草案,但是这些草案都没有被包含在主流的内核当中。即使Ext4包含有许多避免磁盘碎片的技术,但是磁盘碎片还是难免会在一个长时间使用过的文件系统中存在。Ext4将会有一个具有磁盘整理功能的工具6。快速文件系统检查Ext4将未使用的区块标记在inode当中,这样可以使诸如e2fsck之类的工具在磁盘检查时将这些区块完全跳过,而节约大量的文件系统检查的时间。这个特性已经在2.6.24版本的Linux内核中实现。如果想知道某个ext3或ext4文件系统内的相关信息,可以使用dumpe2fs来查看三、查看磁盘和文件系统的信息,以及系统支持的文件系统rootwww # dumpe2fs -bh 装置文件名选项与参数:-b :列出保留为坏轨的部分(一般用不到)-h :仅列出 superblock 的数据,不会列出其他的区段内容!rootwww # dumpe2fs /dev/hdc2dumpe2fs 1.39 (29-May-2006)Filesystem volume name: /1 =这个是文件系统的名称(Label)Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery sparse_super large_fileDefault mount options: user_xattr acl =预设挂载的参数Filesystem state: clean =这个文件系统是没问题的(clean)Errors behavior: ContinueFilesystem OS type: LinuxInode count: 2560864 =inode的总数Block count: 2560359 =block的总数Free blocks: 1524760 =还有多少个 block 可用Free inodes: 2411225 =还有多少个 inode 可用First block: 0Block size: 4096 =每个 block 的大小啦!Filesystem created: Fri Sep 5 01:49:20 2008Last mount time: Mon Sep 22 12:09:30 2008Last write time: Mon Sep 22 12:09:30 2008Last checked: Fri Sep 5 01:49:20 2008First inode: 11Inode size: 128 =每个 inode 的大小Journal inode: 8 =底下这三个与下一小节有关Journal backup: inode blocksJournal size: 128MGroup 0: (Blocks 0-32767) =第一个 data group 内容, 包含 block 的启始/结束号码 Primary superblock at 0, Group descriptors at 1-1 =超级区块在 0 号 block Reserved GDT blocks at 2-626 Block bitmap at 627 (+627), Inode bitmap at 628 (+628) Inode table at 629-1641 (+629) =inode table 所在的 block 0 free blocks, 32405 free inodes, 2 directories =所有 block 都用完了! Free blocks: Free inodes: 12-32416 =剩余未使用的 inode 号码Group 1: (Blocks 32768-65535)# 也就是说,基本上所有的数据还是与 block 的号码有关就是了!很重要!如何知道linux知道那些文件系统rootlinuxgmt tmp# ls /lib/modules/uname -r/kernel/fsautofs4 dlm fat hfs lockd nlscachefiles ecryptfs freevxfs hfsplus msdos squashfscifs exportfs fscache jbd nfs udfconfigfs ext3 fuse jbd2 nfs_common vfatcramfs ext4 gfs2 jffs2 nfsdrootlinuxgmt tmp#查看当前系统以启用的文件系统rootlinuxgmt tmp# cat /proc/filesystemsnodevsysfsnodevrootfsnodevbdevnodevprocnodevcpusetnodevbinfmt_miscnodevdebugfsnodevsecurityfsnodevsockfsnodevusbfsnodevpipefsnodevanon_inodefsnodevfutexfsnodevtmpfsnodevinotifyfsnodeveventpollfsnodevdevptsext2nodevramfsiso9660nodevmqueueext3nodevrpc_pipefsnodevautofs四、文件系统的操作磁盘与目录的容量1、df -a 列出所有文件系统,包扩系统特有的/proc等文件系统-k 以kb为单位显示-m 以mb为单位显示-h 以gb mb kb等格式显示-H 以m=1000kb 取代M=1024kb-连同分区的文件系统名称一起列出范例列出系统内的所有分区范例二:将容量结果以易读方式显示出来将系统内的所有文件系统格式以及名称都列出来解释一下上面的文集系统列出的相关信息的含义第一个室文件系统在那个分区,所以列出设备名称第二个文件系统的类型第三个是1k-blocks第四个是使用了多少第五个字段室可以利用的还有多少第六个字段室使用的百分比第七个字段室挂载点范例四将当前/etc/下面可以使用的磁盘容量以易读的格式显示出来2、du-a列出所有的文件与目录的容量,因为默认仅统计目,录的文件量-h 以易读的方式显示出来-s 列出总量-m 以mb显示范例 列出当前目录下所有文件的总量范例二列出所有文件的总量,但是将单个文件的容量一起显示出来检查更目录下面每个目录所占用的容量五、连接文件或者目录ln连接就好像windows的快捷方式一样。很多的连接文件其实就是指向相同的文件连接的方式由两种,硬链接和软连接首先介绍一下文件的读取方式.首先通过一层一层的目录获取文件相关的关联数据.再到对应的inode获取文件属性,以及文件内容数据所在的块.最后到块区域获取文件的数量Inode 记录信息该文件的拥有者与用户组该文件的访问模式该文件的类型该文件的建立或者状态改变的时间ctime,最近一次的读取时间atime,最近修改时间mtime该文件的大小定义文件属性的标志flag该文件真正内容的指针硬链接:用硬链接设置连接文件时,磁盘空间与Inode的数目不会发生变化。即硬链接只室在某个目录下的块多写入一个关联数据,所以并不会用掉Inode与磁盘空间,硬链接的最大好处就是保证了文件的安全。即不管删除了源文件还是连接文件,其实就是只删除了目录下文件关联数据,并没有更改源文件的Inode与块数据。硬链接是在同一个分区上建立数据关联,所以硬链接是由限制的.不能跨文件系统.不能连接目录符号连接符号链接就是子啊建立一个独立的文件,这个文件让数据的读取指向他链接的文件的内容。由于只是利用文件来作为指向的动作,所以源文件删除之后,符号链接的文件不能打开,会一直像是无法打开某个文件。由于符号连接所建立的文件为一个独立的新文件,所以会占用掉inode与块。语法ln -sf 源文件 目标文件-s表示建立软连接,不加-s 表示建立硬链接-f 目标文件存在,就主动将目标直接删除后在建立范例1:将/etc/passwd复制到/tmp中,并观察inode的变化范例2:将/tmp/passwd 创建硬链接成为passwd-hd仔细观察即使/tmp下多了一个文件,整个inode与块的容量并没有改变原来指向同一个inode ,另外第二栏的连接数也会增加范例三:将/tmp/passwd建立一个符号链接链接文件文件名有多长,文件就由多大 即6整个容量与inode 使用数都发生了变化。范例四:删除源文件passwd 其他两个文件是否还能打开了下面我们对目录创建连接六、磁盘的分区,格式化,检验与载入对于系统管理员来说磁盘的管理是相当重要的。如系统新增磁盘,需要作如下事情.对磁盘分区,已建立可用分区.对分区格式化,已建立可用的文件系统.如果想仔细一点,可以对刚建立好的文件系统进行检测.在linux上,需要建立载入点(目录),并将其建立好的文件系统挂在上分区使用fdisk -l disk-l后面接的所有设备分区的内容,如仅用fdisk l 时,会把整个系统内能够搜索到的设备分区均列出来范例1、查看整个系统中得所有设备范例2、查看指定的设备sda不加数字表示sda整个设备加上m参数会显示fdisk 中得菜单然后按p 打印出所有的分区按q退出只有root才能执行fdisk 进行分区范例3、查看一下系统中得所有分区信息我们新建了一个磁盘sdb现在我们需要两个分区在磁盘sdb上建立分区,使用n 新建,一个磁盘默认只能由四个主分区,如果主分区用完,后面剩余的空间将不能在使用,所以通常情况下建立三个主分区和一个扩展分区或者一个逻辑分区然后按w保存退出打印p查看是否有分区没有就新建一个分区按p键查看是否以建立分区按w键退出删除分区fdisk /dev/sdb 按p查看分区信息,d删除你要选择的分区W保存退出以root身份进行磁盘分区时,在单用户模式下比较安全。在进行fdisk时如果某个分区正在使用,那么很可能系统核心无法重新加载硬盘的分区表,解决方法就是卸载分区,然后fdisk 重新写入分区表。这样就可以成功了注意事项,虽然一个硬盘最大的逻辑分区可以到63 ,但并非所有的linux系统都会将所有的逻辑分区对应磁盘号都写入系统中。格式化磁盘#mke2fs -bicLj 设备名称-b可以设定每个块的大小,支持1024,2048,4096字节三种-i 给一个inode多少容量-c 检查磁盘错误,仅执行一次,如果-c c ,会测试读写-L 后面可以接卷标label ,这个标签后面将-j 本来mke2fs 室ext2 ,加上-j就可以将其格式化成为ext3 -t 类型mke2fs -t ext3 -O extents /dev/sdXX will create a filesystem that is not supported by the ext3 implementation as found in the Linux kernel; and mke2fs -t ext3 -O has_journal /dev/hdXX will create a filesystem that does not have a journal and hence will not be supported by the ext3 filesystem code in the Linux kernel.)首先将sdb1格式化成为ext3文件系统,标签为test_ext3 ,将sdb2格式化成为ext4文件系统将sdb5 格式化为ext2文件系统查看格式化文件系统的默认值的话就看/etc/mke2fs.conf文件现在将ext3 转换成为ext4文件系统首先将sdb5 ext2 转换成为ext3文件系统将/dev/sdb1转换成为ext4文件系统查看sdb5的相关信息与/dev/sdb1的信息进行对比在来查看一下相关的/dev/sdb2的相关信息也可以使用dumpe2fs 来查看分区信息。或者指定-b 和i的大小 2048 和4096建立大型文件以制作loop文件格式化文件挂在创建的文件系统七、制作启动进入Linux的软盘#mktootdisk device /dev/fd0 uname r对软盘低级格式化#fdformat /dev/fd0磁盘检查fsck 和badblocks #fsck -A t Cary 设备名称-t 可以的文件系统类型-A 按照/etc/fstab内容扫描一遍-a 自动修复检查到的问题区-r 与a想法,用户决定是否修复-y 与a类似-C 可以在检验过程中,使用一个长条图来显示当前进度-f 潜质检查,如果fsck没有发现任何unclean 的标志,不会主动进入内部检查 #badblocks#badblocks svw 设备名称-s在屏幕上列出进度-v 在屏幕上看到进度、-w 使用写入的方式来测试,轻易不要使用该参数#sync 直接将系统中暂存在内存中得数据写入到磁盘中。注意系统核心必须支持sync才行八、磁盘的载入与卸载要将文件系统载入到linux系统中,需要使用mount命令来完成#mount -tonL 设备名称代号 载入点-a 按照/etc/fstab 的内容将所有相关的磁盘挂在起来-n 一般来说,当载入文件系统到linux时,都记录到/etc/mtab中,有些时候系统无法写入到/etc/mtab中,就可以加上-n参数来忽略写入mtab操作-L 系统出了利用设备号,还可以使用卷标来完成挂在,最好为每个分区分配一个卷标-t 参数指定文件系统的类型-o参数后面可以接一些额外参数,比如账号密码等等范例1:关在文件系统/dev/sdb1 到./mnt/sdb1#mount /dev/sdb1 /mnt/sdb1范例2:通过标签来关在文件系统范例3:挂在光盘范例四:mount 直接跟设备名的话,系统会主动以/etc/fstab里的规范来关在文件系统范例五:将系统的所有分区已挂在的分区都列出来mount命令只能是root才能执行,如果想将整个系统中记录的文件系统与挂在点对应的数据全部载入,那么执行#mount -a范例六:如何将家目录挂在到指定的挂载点# 范例七:如何挂在iso文件#mount -o loop *.iso /mnt/iso卸载关在的文件系统九、修改磁盘参数有时希望修改磁盘相关的信息,举例来说,磁盘的卷标,日志参数等1、mknod 创建设备命令#mknod 设备名称 bcp Major Minorb 设备名称作为一个外部存储设备,例如硬盘c 设备作为一个输入外部设备文件,鼠标键盘p 设备名称为一个fifo文件major 主要设备号minor 次要设备号范例一建立一个/dev/sdb10 磁盘存储设备#mknod /dev/hda10 b 3 10硬盘代号/dev/hda 3 0-63/dev/hdb 3 64-127/dev/hdc 22 0-63/dev/hdd 22 64-127/dev/sda 8 0-15/dec/sdb 8 16-31首先来看看一下设备的信息现在来穿件一个sdb8 的设备所以通常情况前如果我们意外删除了sdb1设备或者sdb2设备的话我们只要知道磁盘的主号与次号的话就可以直接创建修复现在来查看sdb1的情况现在我们来创建sdb1设备成功完成修复2、e2label来创建标签e2label 设备名称 新设备的标签标签的主要作用就是不论硬盘代号如何变,由于系统是通过卷标来识别。不论将硬盘放在哪个接口,都将不受影响。还有就是丢失fstab表示修复也很方便,否则很麻烦缺点如果硬盘有两个卷标是重复的,那么系统将无法区分哪个是正确的。在RHEL6中现在主推使用UUID来挂在文件系统,这样的话即使表示一样,也不会冲突获取UUID号可用通过使用blikd来进行查看下面介绍一下blkid 的用法#语法blkid #blkid DEVICE不加任何参数表示默认打印出多有的设备的UUID号加上一个参数的话就是打印指定的设备号3、tune2fs -jiL 设备号-j 将ext2转换成为ext3文件系统-l 类似于dumpe2fs -h的功能,将超级快内的数据数据读出来-L 类似e2label 的功能,可以修改删除文件系统卷标4、hdparm如果硬盘有dma模式功能,系统没有你启动他,那么可以启动它,不启动它硬盘的性能会降低一半左右。hdparm -icdmXTt 设备名称-i 系统启动过程中,会使用到的核心驱动程序-c 设置32位访问模式-d 设置是否启用dma模式,-d1表示启动,-d0表示取消-m 设置同步读取多个扇区的模式-X 设置ULTRADMA模式,一半来说udma的模式值加64,即为设置值33mhz dmamode 0-2(X64-X66)66MHZ DMAMODE 3-4(X67-X68)100mhz dma mode 5 (x69)-测试缓存区的访问能力-t 测试硬盘的实际访问能力范例获取硬盘的最大同步扇区值与当前的udma模式#hdparm -i /dev/sda获取主板上有关的信息*代表当前值在mode 6启动udma#hdparm -d1 -c1 -X86 /dev/sda测试硬盘读取性能十、设置启动载入载入裁判,中文编码,U盘1、载入软盘#mount -t ext4 /dev/fd0 /media/floppy#mount -t vfat /dev/fd0 /meida/floppy#umount /dev/fd02、载入windows磁盘#mount -t vfat /dev/hda1 /mnt/win98#mount -t vfat -o iocharset=cp950 /dev/hda1 /mnt/win98挂在优盘#mount -t vfat /dev/sdb1 /mnt/usb启动载入/etc/fstab 和/etc/mtab首先来介绍一下系统载入的限制.根目录是必须载入的,而且一定要先于其他载入点被载入.其他载入点必须以建立目录,可以任意指定,但必须遵循目录结构.所有载入点在同一时间之内,只能载入一次.所有分区在同一时

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论