磁盘分区
    分区表
    文件系统
    硬件驱动
    目录项,inode,和数据区之间的关联
    stat命令可以查看inode结构

    文档:

    https://blog.csdn.net/luyajun97/article/details/88801659?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.edu_weight&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.edu_weight

    Q:如何查看分区和目录及使用情况?
    fdisk查看硬盘分区表
    df:查看分区使用情况
    du: 查看文件占用空间情况
    Q: 为什么要分区,如何分区?
    – 可以把不同资料,分别放入不同分区中管理,降低风险。
    – 大硬盘搜索范围大,效率低
    – 磁盘配合只能对分区做设定
    – /home /var /usr/local经常是单独分区,因为经常会操作,容易产生碎片。

    Q:所有的磁盘分区都必须被挂载上才能使用,那么我们机器上的硬盘分区是如何被挂载的?
    A:这主要是它利用了/etc/fstab文件。每次内核加载它知道从这里开始mount文件系统。每次系统启动会根据该文件定义自动挂载。若没有被自动挂载,分区将不能使用。 如下是我的/etc/fstab的定义,主要是根据装机的分区来的:
    #
    proc /proc proc defaults 0 0
    #/dev/sda1被自动挂载到 /
    UUID=cb1934d0-4b72-4bbf-9fad-885d2a8eeeb1 / ext3 relatime,errors=remount-ro 0 1
    # /dev/sda5 被自动挂载到分区/home
    UUID=c40f813b-bb0e-463e-aa85-5092a17c9b94 /home ext3 relatime 0 2
    #/dev/sda7 被自动挂载到/work
    UUID=0f918e7e-721a-41c6-af82-f92352a568af /work ext3 relatime 0 2
    #分区 /dev/sda6被自动挂载到swap
    UUID=2f8bdd05-6f8e-4a6b-b166-12bb52591a1f none swap sw 0 0

    Q:移动硬盘如何挂载?如何挂载一个新的分区?
    移动硬盘有驱动模块会自动挂载,如果有个新硬盘,要先进行分区,并通过mount命令挂载到某个文件夹。如果要自动挂载则可以修改/etc/fstab文件.

    linux简单开机过程:(文件系统相关)

    电脑开机—》BIOS(是一段程序)中的数据对计算机的健康状态的自身检查 将这段程序映射到内存最开始的那个段中(内存分为三段 BIOS段和内核空间和用户空间)

    根据BIOS中设定的启动次序去寻找启动设备的MBR BOIS中设置的启动顺序去启动对应的系统:设置的种类有:硬盘,光盘,U盘(winPE安装系统的时候设置设备的启动顺序—》U盘先启动)

    找到上述的设备种类进行加载,把BootLoader加载到内存中(BIOS就退出了,把指令交给bootLoader)—》读取分区表(64个字节)—》在分区中找到系统内核,把操作系统的内核读进内存中进行解析—》把控制权交给内核—》内核启动自身—》内核根据配置找到文件系统的位置—》启动文件系统。

    剩余的空间可能分成数个分区(partition)。每个分区有一个相关的分区表(Partition table),记录分区的相关信息。这个分区表是储存在分区之外的。分区表说明了对应分区的起始位置和分区的大小。
    文件系统硬件相关 - 图1

    文件查找的命令:

    文件查找

    which:

    which [filename]

    该命令用于查询通过PATH路径到该路径内查找可执行文件。

    如:Which passwd:查找可执行文件passwd

    whereis:

    whereis [-bmsu] [keyword]

    该命令用于把相关字的文件和目录都列出来。(Linux 会将文件都记录在一个文件数据库里面,该命令式从数据库去查询,所以速度比较快,Linux每天会更新该数据库)

    locate:

    locate [filename]

    该命令用于把相关字的文件和目录都列出来。查找数据特别快,也是通过数据库方式来查询。但是数据库一周更新一次,所以可能有些存在数据查不到。可以去修改配置文件。

    find:

    find [path] [参数] [keyword]

    该命令用于在指定路径下查找文件。不是通过数据来查询,所以速度会比较慢。