Linux文件系统与磁盘管理

有哪些文件系统:

FAT:微软在Dos/Windows系列操作系统中共使用的一种文件系统的总称。   
    exFAT(Extended File Allocation Table File System,扩展FAT,即扩展文件分配表):是扩展文件分配表主界

面 Microsoft在Windows
    Embeded 5.0以上(包括Windows CE 5.0、6.0、Windows Mobile5、6、6.1)中引入的一种适合于闪存的

文件系统,为了解决FAT32等不支持4G及其更大的文件而推出。

对于闪存,NTFS文件系统不适合使用,exFAT更为适用。
  
    NTFS(New Technology File System):是 WindowsNT 环境的文件系统。
   
    CDFS:大部分的光盘的文件系统,只有小部分光盘使用其他文件系统。这些文件系统只能在CD-R或CD-RW

上读取。
   
    RAW:没有被NT文件系统(FAT或NTFS)格式化的磁盘分区

Ext(Extended file system):是为linux核心所做的第一个文件系统。采用Unix文件系统(UFS)的元数据结

构,以克服MINIX文件系统性能不佳的问题。它是在linux上,第一个利用虚拟文件系统实现出的文件系统,

在linux核心0.96c版中首次加入支持。
        Ext2:GNU/Linux 系统中标准的文件系统,其特点为存取文件的性能极好,对于中小型的文件更显示出

优势,这主要得利于其簇快取层的优良设计。
        Ext3:一种日志式文件系统,是对ext2系统的扩展,它兼容ext2。日志式文件系统的优越性在于:由于

文件系统都有快取层参与运作,如不使用时必须将文件系统卸下,以便将快取层的资料写回磁盘中。因

此每当系统要关机时,必须将其所有的文件系统全部shutdown后才能进行关机。如果在文件系统尚未

shutdown前就关机 (如停电) 时,下次重开机后会造成文件系统的资料不一致,故这时必须做文件系

统的重整工作,将不一致与错误的地方修复。然而,此一重整的工作是相当耗时的,特别是容量大的文

件系统,而且也不能百分之百保证所有的资料都不会流失。为了克服此问题,使用所谓‘日志式文件系统

(Journal File System) ’。此类文件系统最大的特色是,它会将整个磁盘的写入动作完整记录在磁盘的某

个区域上,以便有需要时可以回溯追踪。由于详细纪录了每个细节,故当在某个过程中被中断时,系统

可以根据这些记录直接回溯并重整被中断的部分,而不必花时间去检查其他的部分,故重整的工作速度

相当快,几乎不需要花时间。
        Ext4:Ext3 的改进版,修改了 Ext3 中部分重要的数据结构,而不仅仅像 Ext3 对 Ext2 那样,只是增加

了一个日志功能而已。Ext4 可以提供更佳的性能和可靠性,还有更为丰富的功能       
   
    Btrfs:它被称为是下一代 Linux 文件系统。据说它采用了很多先进的文件系统设计,不仅解决了 ext2/3 的扩

展性问题,还让人们看到了下一代文件系统所具有的许多其他特性。
   
    ZFS:源自于Sun Microsystems为Solaris操作系统开发的文件系统。ZFS是一个具有高存储容量、文件系统

与卷管理概念整合、崭新的磁盘逻辑结构的轻量级文件系统,同时也是一个便捷的存储池管理系统。
   
    ReiserFS:一种文件系统格式,作者是Hans Reiser及其团队Namesys,1997年7月23日他将ReiserFS文件

系统在互联网上公布。
   
    JFS(JOURNAL FILE SYSTEM):一种字节级日志文件系统,借鉴了数据库保护系统的技术,以日志的形式

记录文件的变化。JFS通过记录文件结构而不是数据本身的变化来保证数据的完整性。这种方式可以确保在

任何时刻都能维护数据的可访问性。
   
    VMFS(VMware Virtual Machine File System) :一种高性能的群集文件系统.
   
    XFS: Silicon Graphics,Inc. 于 90 年代初开发的文件系统。它至今仍作为 SGI 基于 IRIX 的产品(从工作

站到 超级计算机)的底层文件系统来使用。现在,XFS 也可以用于 Linux。
   
    UFS:基于BSD高速文件系统的传统UNIX文件系统,是Solaris的默认文件系统。默认启用UFS 日志记录功能。
   
    VxFS(VeritasFileSystem):首个商业日志记录文件系统。通过日志记录功能,元数据更改首先写入到日志,然

后再写入到磁盘。
   
    ReFS(Resilient File System,弹性文件系统):在Windows 8.1和Server 2012中新引入的一个文件系统。ReFS

是与NTFS大部分兼容的,其主要目的 是为了保持较高的稳定性,可以自动验证数据是否损坏,并尽力恢复数据。

linux文件系统:

  文件系统指文件存在的物理空间,linux系统中每个分区都是一个文件系统,都有自己的目录层次结构。

linux会将这些分属不同分区的、单独的文件系统按一定的方式形成一个系统的总的目录层次结构。一个

操作系统的运行离不开对文件的操作,因此必然要拥有并维护自己的文件系统。

  Llinux文件系统使用索引节点来记录文件信息,作用像windows的文件分配表。
    索引节点是一个结构,它包含了一个文件的长度、创建及修改时间、权限、所属关系、磁盘中的位置

等信息。一个文件系统维护了一个索引节点的数组,每个文件或目录都与索引节点数组中的唯一一个

元素对应。系统给每个索引节点分配了一个号码,也就是该节点在数组中的索引号,称为索引节点号。

linux文件系统将文件索引节点号和文件名同时保存在目录中。所以,目录只是将文件的名称和它的索引节

点号结合在一起的一张表,目录中每一对文件名称和索引节点号称为一个连接。

  对于一个文件来说有唯一的索引节点号与之对应,对于一个索引节点号,却可以有多个文件名与之对

应。因此,在磁盘上的同一个文件可以通过不同的路径去访问它。

  可以用ln命令对一个已经存在的文件再建立一个新的连接,而不复制文件的内容。

连接有软连接硬连接之分,软连接又叫符号连接。

  它们各自的特点是:
    硬连接:原文件名和连接文件名都指向相同的物理地址。

目录不能有硬连接;硬连接不能跨越文件系统(不能跨越不同的分区)
         文件在磁盘中只有一个拷贝,节省硬盘空间;

  由于删除文件要在同一个索引节点属于唯一的连接时才能成功,因此可以防止不必要的误删除。

  符号连接:用ln -s命令建立文件的符号连接符号连接是linux特殊文件的一种,作为一个文件,它的数据

是它所连接

的文件的路径名。类似windows下的快捷方式。

  可以删除原有的文件而保存连接文件,没有防止误删除功能。   
   
    整个Linux系统都通过虚拟文件系统交换(Virtual FileSystem Switch, VFS)的核心功能去读取文件系统,即整

个Linux认识的文件系统都是VFS在管理,用户并不需要知道每个分区上的文件系统是什么,VFS会主动帮个

用户做读取工作。所以,系统管理员只要设置好各主要文件系统对应的文件系统模块,核心的VFS会主动接

管该文件系统的访问模式。用户在不知道每个文件系统是什么的情况下,就能自由运用系统上的各种文件系

统。

    Linux常见的支持的文件系统有:
        传统文件系统:ext2/minix/MS-DOS/FAT/iso9660
        日志式文件系统:ext3/ReiserFS/Windows的NTFS, IBM的JFS/SGI的XFS
        网络文件系统:NFS/SMBFS
       
  
  查看支持的文件系统:cat /proc/filesystems
   

磁盘管理相关命令:

du:查看使用空间的,默认显示目录下每个文件的大小,但是与df命令不同的是Linux du命令是对文件和目录磁

盘使用的空间的查看

  选项:

  -a或-all 显示目录中个别文件的大小。
-b或-bytes 显示目录或文件大小时,以byte为单位。
-c或--total 除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和。
-k或--kilobytes 以KB(1024bytes)为单位输出。
-m或--megabytes 以MB为单位输出。
-s或--summarize 仅显示总计,只列出最后加总的值。
-h或--human-readable 以K,M,G为单位,提高信息的可读性。
-x或--one-file-xystem 以一开始处理时的文件系统为准,若遇上其它不同的文件系统
目录 则略过。
-L<符号链接>或--dereference<符号链接> 显示选项中所指定符号链接的源文件大小。
-S或--separate-dirs 显示个别目录的大小时,并不含其子目录的大小。
-X<文件>或--exclude-from=<文件> 在<文件>指定目录或文件。
--exclude=<目录或文件> 略过指定的目录或文件。
-D或--dereference-args 显示指定符号链接的源文件大小。
-H或--si 与-h参数相同,但是K,M,G是以1000为换算单位。
-l或--count-links 重复计算硬件链接的文

  df:显示磁盘分区上的可使用的磁盘空间。默认显示单位为KB。可以利用该命令来获取硬盘被占用了多少空间,目

前还剩下多少空间等信息。

  选项:

  -a或--all:包含全部的文件系统;
--block-size=<区块大小>:以指定的区块大小来显示区块数目;
-h或--human-readable:以可读性较高的方式来显示信息;
-H或--si:与-h参数相同,但在计算时是以1000 Bytes为换算单位而非1024 Bytes;
-i或--inodes:显示inode的信息;
-k或--kilobytes:指定区块大小为1024字节;
-l或--local:仅显示本地端的文件系统;
-m或--megabytes:指定区块大小为1048576字节;
--no-sync:在取得磁盘使用信息前,不要执行sync指令,此为预设值;
-P或--portability:使用POSIX的输出格式;
--sync:在取得磁盘使用信息前,先执行sync指令;
-t<文件系统类型>或--type=<文件系统类型>:仅显示指定文件系统类型的磁盘信息;
-T或--print-type:显示文件系统的类型;
-x<文件系统类型>或--exclude-type=<文件系统类型>:不要显示指定文件系统类型
的磁盘信息;
  linlin@ubuntu:~/linlin/c_code$ df
df: /mnt/hgfs: Protocol error
Filesystem 1K-blocks Used Available Use% Mounted on
udev % /dev
tmpfs % /run
/dev/sda1 % /
tmpfs % /dev/shm
tmpfs % /run/lock
tmpfs % /sys/fs/cgroup
tmpfs % /run/user/

其中:

Filesystem:表示该文件系统是在哪个分区,所以列出设备名称
      1k-blocks:表示下面单位是1KB, 可利用-h或-m改变容量
      Used:已使用的硬盘空间
      Available:剩下的磁盘空间大小
      Use%: 磁盘使用率
      Mounted on:磁盘载入的目录所在(载入点)                
   
    在磁盘规划中,每个磁盘最多允许4个主分区,其他分区就放在扩展分区中。
   
    mknod: 创建Linux中的字符设备文件和块设备文件。
        字符设备:按块为单位,随机访问的设备
        块设备:按字符为单位,线性设备
    语法格式:mknod 选项 NAME TYPE 主/次
    选项:
    -Z:设置安全的上下文;
    -m:设置权限模式;
   
    blkid:查询系统的块设备(包括交换分区)所使用的文件系统类型、LABEL、UUID等信息
   
    fdisk:用于观察硬盘实体使用情况,也可对硬盘分区。它采用传统的问答式界面。
    语法格式:fdisk 选项 参数
    选项:
    -b<分区大小>:指定每个分区的大小;
    -l:列出指定的外围设备的分区表状况;
    -s<分区编号>:将指定的分区大小输出到标准输出上,单位为区块;
    -u:搭配"-l"参数列表,会用分区数目取代柱面数目,来表示每个分区的起始地址;
  管理命令:
      p:显示当前磁盘上的分区
      n:创建新分区
          p,主分区
          e,扩展分区
      d:删除分区
      w:保存退出
      q:不保存退出
      t:修改分区类型
      l:显示所支持的所有类型

文件系统管理命令:

   mkfs:创建文件系统,mkfs本身并不执行建立文件系统的工作,而是去调用相关的程序来执行。
         常用选项:
         -t<文件系统类型>:指定要建立何种文件系统;
   
    fsck:检查并修复Linux文件系统
        常用选项:
        -t 文件系统类型:指定文件系统类型
        -a:自动修复

管理ext系列文件系统:

  mke2fs:创建磁盘分区上的“etc2/etc3”文件系统。
        语法格式:mke2fs 选项 参数
        常用选项:

        -j:创建ext3类型文件系统
-b 块大小:指定块大小,默认为4096
可取值:
-L label:指定分区卷标
可用卷标指定文件系统
-m NUMBER:指定预留给超级用户的块数百分比
-i 字节数:指定多少个字节一个iNode,这里给出的数值应该为2^n倍
-N NUMBER:指定iNode个数
-F:强制创建文件系统
-E:用户指定额外的文件系统属性

e2label: 查看或定义卷标
        语法格式:e2label 设备文件 卷标
       
        tune2fs: 调整文件系统的相关属性
        常用选项:

        -j:不损坏原有数据的情况下,将ext2升级为ext3
-L label:用于设定或修改卷标
-m NUMBER:调整预留百分比
-r 数字:指定预留块数
-o:设定默认挂载选项

      dumpe2fs:显示文件系统信息。
        -h:只显示超级快信息
       
        e2fsck:专用于修复ext类型文件系统
        -f:强制检查
        -p:自动修复
       
       
       
       
   
   
      
  
  
  

Linux文件系统与磁盘管理的更多相关文章

  1. Linux系统的磁盘管理

    Linux系统的磁盘管理有三个命令:df.du.fdisk. df:列出Linux中所有文件系统的整体磁盘使用量: du:对文件和目录所占用磁盘空间的查看: fdisk:用于磁盘分区时列出所有的磁盘. ...

  2. linux 文件系统和磁盘

    linux 文件系统和磁盘 1.文件系统 ext2, ext3, ext4 , XFS ext3和ext4为日志文件系统 文件系统格式 : 磁盘格式化为 inode和block inode是索引,记录 ...

  3. linux基础之磁盘管理与文件系统

    上面一篇文章(https://www.cnblogs.com/ckh2014/p/7224851.html)介绍了硬盘的基本结构,那么一块磁盘如何应用取存储数据呢? 它的步骤是这样的: 识别硬盘 -- ...

  4. linux文件系统-基本磁盘2

    直入主题-基本磁盘 硬盘数据按照不同特点和作用大致分为5部分:MBR区.DBR区.FAT区.DIR区和DATA区 1.MBR MBR(Main Boot Record 主引导记录区)位于整个硬盘的0磁 ...

  5. Linux进阶之磁盘管理及LVM逻辑卷

    本节内容 磁盘管理 LVM 一.磁盘管理 1.硬盘接口 种类及其应用: IDE接口硬盘多用于家用产品,部分应用于服务器 SATA SCSI接口硬盘主要应用于服务器 SAS只在高端服务器上,价格昂贵 2 ...

  6. linux 操作系统之磁盘管理

    磁盘管理 存储设备:硬盘 , U盘 , 移动硬盘 , 光盘 , 软件. 组装一台电脑 无法被修改 df -h #查看磁盘分区的情况 , 可用的. 查看磁盘或者目录的内容 df “df” 常用的 “-i ...

  7. Linux浅谈磁盘管理及案例

    磁盘管理 MBR原理图 从该图可理解到为什么主分区只能是四个. 可以不分区,但为了统一管理,提高访问效率 设备不同,生成设备名称不同 管理分区命令: lsblk查看块设备 fdisk创建MBR分区 f ...

  8. linux基本命令之磁盘管理命令(ls,cd,pwd,mkdir,rmdir,clear, touch)

    linux磁盘管理命令 1.ls(list)命令:列出目录内容. 格式:ls [参数][文件或目录] ls -a或-all表示列出所有文件和目录,以点开始的是影藏文件,例如,.bash_history ...

  9. linux 学习随笔-磁盘管理

    1:df 用于查看已挂载磁盘的容量信息 -i 查看inodes使用情况 -h 以合适的单位显示 -k -m 分别以k M单位显示 2:du 查看某个文件或者目录占用的空间 du [-abckmsh] ...

随机推荐

  1. Sphinx排序模式

    目前SPHINX支持6种排序模式.分别是: 1. SPH_SORT_RELEVANCE2. SPH_SORT_ATTR_DESC3. SPH_SORT_ATTR_ASC4. SPH_SORT_TIME ...

  2. 如何移除浏览器一启动就打开lunchpage.org

    lunchpage.org 就是一个劫持网站.症状就是你打开你电脑上的任何浏览器都会重定向到一个广告页面.这个很烦! 解决方法: 1. 安装 Zemana AntiMalware 便携版. 2. 打开 ...

  3. 任务备忘(已经完成):用python写一个格式化xml字符串的程序

    功能: 1.将xml中多余的空格,换行符去掉,让xml字符串变成一行. 2.将xml中添加缩进,使用print能正确打印添加缩进后的字符串. 思路: 采用正则表达式来判断xml中字符串的类型: 1.文 ...

  4. nginx 配置虚拟主机访问PHP文件 502错误的解决方法

    最近配置Nginx 服务器虚拟主机 访问目录发现报502错误 百度了很多方法 都不管用  我擦 各种抓狂----- 原本Nginx配置如下: 网上找了很多方法: 查看日志   借助nginx的错误日志 ...

  5. Python 装饰器 property() 函数

    描述:property() 函数的作用是在新式类中返回属性值. @property 装饰器简单理解就是负责把一个方法变成属性调用 下面理解property()方法语法: class property( ...

  6. Python+selenium(操作隐藏元素)

    测试过程中,偶尔会碰到一些页面的隐藏元素,如下,是小编举的一个简单的例子: test.html <html> <head></head> <body> ...

  7. CentOS 中 YUM 安装桌面环境

    CentOS 作为服务器的操作系统是很常见的,但是因为需要稳定而没有很时髦的更新,所以很少做为桌面环境.在服务器上通常不需要安装桌面环境,最小化地安装 CentOS(也就是 minimal CentO ...

  8. [luoguP1437] [HNOI2004]敲砖块(DP)

    传送门 可以得到一个性质,如果打掉第i列的第j个,那么第i列的1~j-1个也会打掉. 如果第i列打j个,那么第i+1列至少打j-1个. #include <cstdio> #include ...

  9. linux rdesktop远程Win7老是提示密码错误问题解决

    最近使用rdesktop远程Win7老是提示密码错误,输了N次,无比确认密码是正确的. 在Win7系统本身登录也是正常的. 但rdesktop远程就是报密码错误. 开始怀疑更新了最新版本问题,但是使用 ...

  10. google play上获取apk文件

    先说一种测试不通过的方法(chrome浏览器添加Direct APK downloader拓展程序),浪费了我很多的时间,结果发现根本用不了,记录一下过程给大家参考. 使用chrome浏览器,点击左上 ...