【存储知识】文件系统与硬盘存储(分区、格式化、挂载、inode、软链接与硬链接)

一、Linux系统的文件存储结构

在Linux系统中,对计算机中的数据和硬件资源进行管理都是以文件的形式,目录、字符设备、套接字、硬盘、光驱、打印机等都被抽象成文件形式(“Linux系统一切皆文件”)。既然平时我们打交道的都是文件,那么又应该如何找到它们呢?

在Windows操作系统中,想要找到一个文件,要依次进入该文件所在的磁盘分区(也叫盘符),然后再进入该分区下的具体目录,最终找到这个文件。

但是在Linux系统中并不存在C、D、E、F等盘符,Linux系统中的一切文件都是从“根”目录(/)开始的,并按照文件系统层次标准(FHS)采用倒树状结构来存放文件,以及定义了常见目录的用途。

FHS是根据以往无数Linux系统用户和开发者的经验而总结出来的,是用户在Linux系统中存储文件时需要遵守的规则,用于指导用户应该把文件保存到什么位置,以及告诉用户应该在何处找到所需的文件。FHS对于用户来讲只能算是一种道德上的约束,并非必须遵循。

Linux系统中的文件和目录名称是严格区分大小写的。例如,root、rOOt、Root、rooT均代表不同的目录,并且文件名称中不得包含斜杠(/)。

(1) Linux系统中的文件存储结构

 (2)Linux系统中常见的目录名称以及相应内容

目录名称 应放置文件的内容
/boot 开机所需文件—内核、开机菜单以及所需配置文件等
/dev 以文件形式存放任何设备与接口
/etc 配置文件
/home 用户主目录
/bin 存放单用户模式下还可以操作的命令
/lib 开机时用到的函数库,以及/bin与/sbin下面的命令要调用的函数
/sbin 开机过程中需要的命令
/media 用于挂载设备文件的目录
/opt 放置第三方的软件
/root 系统管理员的家目录
/srv 一些网络服务的数据文件目录
/tmp 任何人均可使用的“共享”临时目录
/proc 虚拟文件系统,例如系统内核、进程、外部设备及网络状态等
/usr/local 用户自行安装的软件
/usr/sbin Linux系统开机时不会使用到的软件/命令/脚本
/usr/share 帮助与说明文件,也可放置共享文件
/var 主要存放经常变化的文件,如日志
/lost+found 当文件系统发生错误时,将一些丢失的文件片段存放在这里

(3) 路径

Linux系统的路径指如何定位到某个文件,分为绝对路径和相对路径。

  • 绝对路径:从根目录(/)开始写起的文件或目录名称
  • 相对路径:相对于当前路径的写法

(4)常见的物理(硬件)设备及其文件名称

在Linux系统中一切都是文件,硬件设备也不例外。既然是文件,就必须有文件名称。系统内核中的udev设备管理器会自动把硬件名称规范起来,目的是让用户通过设备文件的名字可以猜出设备大致的属性以及分区信息等;这对于陌生的设备来说特别方便。另外,udev设备管理器的服务会一直以守护进程的形式运行并侦听内核发出的信号来管理/dev目录下的设备文件。

 常用的硬件设备及其文件名称:

硬件设备 文件名称
IDE设备 /dev/hd[a-d]
SCSI/SATA/U盘 /dev/sd[a-z]
virtio设备 /dev/vd[a-z]
软驱 /dev/fd[0-1]
打印机 /dev/lp[0-15]
光驱 /dev/cdrom
鼠标 /dev/mouse
磁带机 /dev/st0或/dev/ht0

 一般的硬盘设备都是以“/dev/sd”开头。而一台主机上可以有多块硬盘,因此系统采用a~z来代表26块不同的硬盘(默认从a开始分配)。

磁盘的分区:

  • 主分区或扩展分区的编号从1开始,到4结束;
  • 逻辑分区从编号5开始(逻辑分区的个数依操作系统而不同,在 linux 系统中, IDE 硬盘最多有 59 个逻辑分区( 5 号到 63 号), SATA 硬盘最多有 11 个逻辑分区( 5 号到 15 号);)。

 【注意】对于分区名称sda3只能表示是编号为3的分区,而不能判断sda设备已经存在了3个分区。

示例:/dev/sda5

表示“这是系统中第一块被识别到的硬件设备中分区编号为5的逻辑分区的设备文件”

二、硬盘设备及分区

硬盘的基础概念

磁盘组成主要包括:盘片、磁头、磁头臂、盘片主轴、步进电机(马达、永磁铁等)、空气过滤片

  1. 一个硬盘有多张盘片叠成,每张盘片都有两个盘面,一般每个盘面都会利用,都可以存储数据,成为有效盘片,也有个别磁盘盘面数为单数。每个有效盘面有一个盘面编号(至上而下,从0开始依次编号)。每个有效盘面上都有可以读写数据的磁头(header)。磁头号与盘面号对应。磁头是利用气流漂浮在盘面上,没有接触到盘面。任何异物或尘埃都可能使得磁头摩擦到盘面而造成数据永久性损坏。
  2. 每张盘片上的存储颗粒成环形一圈圈地排布,每一圈称为磁道(track),每个磁道都有编号(由外至内,从0开始依次编号),每个盘面有300~1024个磁道。
  3. 每条磁道上都有一圈存储颗粒,每512*8bit(512字节,0.5KB)个存储颗粒作为一个扇区(sector)扇区是硬盘上存储的最小物理单位。扇区从1开始编号。不可能发生读半个或1/4个扇区的情况,因为磁头只能定位到某个扇区的开头或结尾,而不能在扇区内部定位。
  4. N个扇区可以组成,N取决于不同的文件系统或是文件系统的配置,簇是此文件系统中的最小存储单位
  5. 所有盘面上的同一磁道构成一个圆柱,称为柱面(cylinder)柱面是系统分区的最小单位
  6. 磁盘存储原理是通过读写头去改变磁盘表面上磁性粒子簇的N、S极,N极表示1,S表示0.

磁盘实物图
磁盘剖面图

磁盘读写原理:

磁盘写入数据时,数据存放顺序是从第一磁道的第一个磁头所有扇区开始,然后是同一柱面的下一磁头,当一个柱面存储空间用完后,将会写入第一盘面相邻的下一磁道,同一柱面的下一磁头,直到文件内容全部写完。

(简而言之,按照从上到下,从外到内,按柱面进行数据读写。柱面、磁头、扇区三者简称CHS,所以扇区地址又称CHS地址。早期小容量磁盘通过磁头读取扇区头标中的CHS地址,进行数据读取。)

目前大容量磁盘使用LBA编址方式Logical Block Address,逻辑块寻址方式)。LBA编址方式磁盘对外提供的地址全部为线性地址,把磁盘想象成只有一个磁道,这个磁道是无限长的直线,扇区是这条直线上的等长线段,从1开始编号。磁头、磁道、扇区的对应关系保存在磁盘控制电路的ROM芯片中。读取磁盘数据时,系统将数据逻辑地址传给磁盘,磁盘的控制电路按照寻址逻辑地址翻译成物理地址,即确定数据所在柱面号、磁头号、扇区号。

MBR引导分区

硬盘设备是由大量的扇区组成的,每个扇区的容量为512字节。其中第一个扇区最重要,它里面保存着主引导记录(Master boot record,MBR)与磁盘分区表(Disk partition table)信息

硬盘主引导记录放有最基本的引导加载程序(boot loader),是系统开机启动的关键环节。引导加载程序是一段指令,用以通知计算机如何访问分区表并并定位操作系统的位置。引导程序会因操作系统不同而不同,但是MBR是不属于任何一个操作系统,具有公共引导的特性。利用引导代码可以实现多重系统引导,多系统引导有两种实现方式:①用Windows操作系统在引导分区中设置一段代码,先加载进入用户选择系统的界面,允许用户选择要进入的系统,再进入指定的操作系统;②改变MBR中的引导代码,该代码直接呈现给用户一个选择系统的界面。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值