b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

【硬盘知识】磁盘基础知识、物理结构硬盘的物理知识

电脑杂谈  发布时间:2021-04-19 08:02:35  来源:网络整理

1、磁盘的基本知识

1. 1物理结构

硬盘的物理结构通常由磁头和磁盘,电机,主控制芯片和电缆组成。当主电机驱动光盘旋转时,辅助电机将一组(磁头)驱动到相应的光盘上,并且要确定是读取磁盘的正面还是背面,磁头会浮在磁盘表面上以画出一个与磁盘同心的圆形轨道(轨道或圆柱体)。此时,磁头的磁感应线圈在磁盘表面上感应出磁性。使用硬盘制造商指定的读取时间或数据间隔找到该扇区,以获取该扇区的数据内容。所有光盘都固定在旋转轴上,该轴是光盘主轴。所有光盘都是绝对平行的。每个磁盘的存储表面上都有一个磁头。磁头和磁盘之间的距离小于头发的直径。所有磁头都连接到磁头控制器,并且磁头控制器负责每个磁头的移动。磁头可以沿着磁盘的半径移动,并且磁盘以每分钟数千转的速度高速旋转,因此磁头可以在磁盘上的指定位置读取和写入数据。

当磁盘旋转时,如果将磁头保持在一个位置,则每个磁头都会在磁盘表面上绘制一个圆形轨道。这些圆形轨道称为轨道。信息以脉冲序列的形式记录在这些磁道中。这些同心圆不是连续记录数据,而是分成弧段(扇形),并且这些弧的角速度是相同的。

在由多个磁盘组成的磁盘组中,圆柱表面(Cylinder)由具有不同磁盘面但在相同半径圆中的多个磁道组成。所有磁盘上的同一磁道形成一个圆柱体,通常称为圆柱体,每个圆柱体上的磁头从上到下从“ 0”开始编号。数据读取/写入是基于柱面进行的,也就是说,当磁头读取/写入数据时,操作将从同一柱面中的“ 0”磁头开始,然后在同一柱面的不同磁盘表面上进行操作,即磁头。在读取/写入同一圆柱体上的所有磁头之后,磁头将转移到下一个圆柱体,因为选择磁头只需要进行电子切换,而选择圆柱体则必须进行机械切换。电子开关非常快,比机械地将磁头移动到相邻磁道要快得多。因此,数据的读取/写入是在圆柱面上进行的,而不是在磁盘面上进行的。也就是说,在一个磁道已满数据之后,将其写入同一柱面的下一个磁盘表面,而在一个柱面已满之后,它将移至下一个扇区以开始写入数据。读取数据也以这种方式进行,从而提高了硬盘的读取/写入效率。

磁盘上的每个磁道均等分为多个弧,这些弧是硬盘的扇区。硬盘的第一个扇区称为引导扇区。操作系统以扇区的形式将信息存储在硬盘上,每个扇区包含512字节的数据和一些其他信息。

在硬盘系统中,硬盘的每个磁盘都有两个侧面(侧面),即上侧和下侧。通常,每一侧都可以使用并可以存储数据。磁盘号也称为磁头号,因为每个有效磁盘都有一个对应的读写磁头。

在linux中,您可以使用fdisk -l查看磁盘的物理结构:

该磁盘有255个磁头,这意味着总共有255个磁盘。 3263个圆柱体(圆柱体),也就是说每个磁盘上有3263个磁道,每扇区63个扇区意味着每个磁道上有63个扇区。命令结果还显示扇区大小的值为512字节。让我们用一支笔来计算磁盘的大小。

255个磁盘* 3263个柱面* 63个扇区*每个扇区512bytes = 26839088640bytes。

结果为2 6. 8G,与磁盘的总大小匹配。

1. 2磁盘读写原理

当系统将文件存储在磁盘上时,它以柱面,磁头和扇区的方式完成,即,第一磁道的第一磁头(即第一磁道的第一磁道)下的所有扇区磁盘),然后,一个柱面的下一个磁头,...,在一个柱面已满后,它将前进到下一个柱面,直到将文件内容写入磁盘为止。

系统还以相同顺序读出数据。读取数据时,是通过告诉磁盘控制器读取扇区所在的柱面号,磁头号和扇区号(物理地址的三个组成部分)来完成的。磁盘控制器直接将磁头组件移至相应的磁柱,对相应的磁头进行门控,并等待所需的扇区在磁头下方移动。当扇区到达时,磁盘控制器将读取每个扇区的标头,将这些标头中的地址信息与预期的磁头和柱面编号(即,寻道)进行比较,然后搜索所需的扇区号。当磁盘控制器找到扇区头时,它将根据其任务是写入扇区还是读取扇区来决定是切换写电路还是读取数据以及尾部记录。找到扇区后,磁盘控制器必须对扇区信息进行后处理,然后再继续搜索下一个扇区。如果正在读取数据,则控制器计算数据的ECC代码,然后将ECC代码与记录的ECC代码进行比较。如果正在写入数据,则控制器将计算此数据的ECC代码并将其与数据一起存储。在控制器对该扇区中的数据进行必要的处理期间,磁盘将继续旋转。实际上,我们的文件大多数时候都是损坏的。当文件没有损坏时,摇杆只需要查找一次磁道并由磁头读取。成功阅读仅需1次;但是如果文件被分成11个位置,则翘板必须用磁头搜索11次,然后读取11次才能完全读取文件。当阅读时间相对不间断时,它会变得很长。

因此,磁盘IO的过程包括:

因此,单个磁盘的IO时间=搜索时间+旋转延迟+访问时间。

候选磁盘分区方案:

实际上,使用哪一个,最重要的是该方法的性能更快。因为同一分区中的数据经常一起读取,所以如果使用第一种类型,则磁头需要在3000多个磁道之间来回跳动,因此磁盘的寻道时间将加倍,并且磁盘的性能会提高将增加一倍。会跌倒。对于方案2,如果对于磁盘C,则只需要在1-1000磁道之间移动磁头,就可以大大减少寻道时间。 (实际上,分区不是从0开始,对应于磁盘第一磁道的柱面将用于安装引导加载程序和磁盘分区表)。因此,方案二的分区方法可以减少磁盘IO时间的查找时间部分,因此所有操作系统都采用方案二,而未使用方案一。

2. Linux下的磁盘命名和分区

在向主机添加硬盘之前,必须首先了解Linux下硬盘和分区的命名方法。

2. 1磁盘命名

在Linux下,SCSI和SATA设备以sd命名,第一个scsi设备为sda,第二个为sdb,依此类推。通常,主板上有两个SCSI接口,因此总共可以安装四个SCSI设备。主SCSI上的两个设备对应于sda和sdb,第二个SCSI端口上的两个设备对应于sdc和sdd。通常,硬盘安装在主SCSI的主接口上,因此是sda或sdb,而光驱通常安装在第二个SCSI主接口上,因此是sdc。 (IDE接口设备以hd命名,第一个设备为hda,第二个设备为hdb,依此类推。)

IDE磁盘

描述配置

/ dev / hda

第一个(主)IDE控制器

大师

/ dev / hdb

第一个(主)IDE控制器

奴隶

/ dev / hdc

第二个(辅助)IDE控制器

大师

/ dev / hdd

第二个(辅助)IDE控制器

奴隶

2. 2分区命名

所谓的磁盘分区是指告诉操作系统“我的磁盘可以在此分区中访问的区域是A磁柱和B磁柱之间的块”,以便操作系统可以知道可以读取/写入/搜索指定块中的文件数据。换句话说,磁盘分区意味着指定分区插槽的开始和结束磁柱。

使用设备名称加一个数字来命名分区。例如,hda1代表硬盘设备hda上的第一个分区。每个硬盘最多可以有四个主分区,用于命名硬盘的主分区。多个主分区中只有一个活动主分区可以用作引导分区。逻辑分区从5开始。对于每个其他分区,每个磁盘上最多可以有24个扩展分区。

2. 3个分区步骤

1.运行fdisk进行分区:

linux硬盘分区_硬盘怎么分区_硬盘如何分区

linux硬盘分区

linux硬盘分区

第一个盒子和第二个盒子已经是分区磁盘,第三个硬盘没有分区。

[root]#fdisk / dev / sdb

命令(m表示帮助):m(输入字母“ m”以获取命令列表)

命令动作

切换可启动标志

b编辑bsd disklabel

c切换dos兼容性标志

d删除分区

l列出了已知的分区类型

m打印此菜单

n添加一个新分区

o创建一个新的空DOS分区表

p打印分区表

q退出但不保存更改

s创建一个新的空Sun disklabel

t更改分区的系统ID

u更改显示/输入单位

v验证分区表

w将表写入磁盘并退出

x附加功能(仅限专家)

命令(m以获取帮助):n

命令动作

e扩展

p主分区(1- 4)

p

分区号(1- 4):1

第一个柱面(1-9729,默认为1):

使用默认值1

最后一个圆柱,+个圆柱或+ size {K,M,G}(1-9729,默认为972 9):

使用默认值9729

命令(帮助时使用m):w(写入并保存分区表)

[root]#mkfs.ext4 -L disk2 / dev / sdb

分为多个区域具有以下目的:

2.格式分区:mkfs -t ext3 / dev / sda1

每个硬盘都分为几个分区,每个分区都有自己的文件系统。 Windows为这些文件系统中的每一个分配一个字母。但是,GNU / Linux使用唯一的树结构来管理文件,并且每个文件系统都安装在树结构中的某个位置。

就像Windows需要C:驱动器一样,GNU / Linux必须能够将根文件系统挂载在文件树的根(/)上。根挂载完成后,您可以在树结构中的各种挂载点上挂载其他文件系统。根结构下的任何目录都可以用作安装点,并且您也可以同时将同一文件系统安装在不同的安装点上。挂载点实际上是Linux中磁盘文件系统的入口目录:

linux硬盘分区

linux硬盘分区

关于文件系统的三个令人困惑的概念:

Linux下的所有内容都是文件!换句话说,Linux操作系统将系统中的所有内容作为文件进行管理。在Windows中,我们常见的硬件设备(打印机,网卡,声卡...),磁盘分区等在Linux中都被视为文件,对设备和分区的访问是对相应文件的读写。

格式化命令:

mkfs.ext3 / dev / sdb1 //将分区格式化为ext3

mkfs.ext2 / dev / sdb1 //将分区格式化为ext2

3.挂载/ dev / sda1 / test

df命令用于查看已安装磁盘的总容量,已用容量,剩余容量等,并且不能添加任何参数。默认情况下,它以k为单位显示。

du命令用于查看目录占用的空间。

linux硬盘分区

linux硬盘分区

4.引导后直接安装

编辑/ etc / fstab文件并添加:/ dev / sda1 / test ext3默认值1 1.重新启动后,选择已安装。

5.摘要

3. Linux文件系统

文件系统是一种用于在存储设备上组织数据和元数据的机制。其最终目标是将大量数据组织到永久性存储设备中,例如硬盘驱动器和磁盘。文件系统是文件的逻辑组织。它以更清晰的方式存储每个文件。数据存储在某个分区中。典型的Linux分区(分区)包含以下部分:

linux硬盘分区

linux硬盘分区

文件是文件系统中数据的划分单位。文件系统使用目录来组织文件,并为文件提供分层结构。在硬盘上实现此分层结构的关键是使用inode来虚拟化公用文件和目录文件对象。在Linux系统中,目录也是一种文件。因此/ home / sammy是指向目录文件sammy的绝对路径。

磁盘和文件系统:

linux硬盘分区

linux硬盘分区

3. 1个inode

inodes是文件存储的关键。在Linux中,文件系统中管理的每个对象(文件或目录)都表示为一个索引节点。索引节点包含管理文件系统中的对象所需的所有元数据(包括可以在对象上执行的操作)。在Linux系统中,文件可以分为几个数据块并存储在分区中。为了收集每个数据块,我们需要与文件相对应的索引节点。每个文件都对应一个索引节点。该索引节点包含指向该文件的每个数据块的多个指针。当操作系统需要读取文件时,只需要找到相应的索引节点,收集分散的数据块,便可以收获文件。

linux硬盘分区

linux硬盘分区

读取文件:

在Linux中,我们通过解析路径一路找到基于目录文件的文件。除了包含的文件名之外,目录中的条目还具有相应的inode编号。当我们输入$ cat /var/test.txt时,Linux将在根目录文件中找到var目录文件的inode编号,然后基于inode合成var数据。然后,根据var中的记录,找到text.txt的inode编号,沿着inode中的指针收集数据块,并合成text.txt的数据。在整个过程中,将引用三个inode:

linux硬盘分区

linux硬盘分区

因此,当我们读取文件时,实际上是在目录中找到文件的inode编号,然后根据inode指针组合数据块并将其放入内存中以进行进一步处理。创建文件时,我们为文件分配一个空白的inode,在文件所属的目录中记录其inode编号,然后选择空白的数据块,让inode的指针指向这些数据块并将其放置在内存数据中。

3. 2循环设备

在类似Unix的系统中,/ dev / loop是一个伪设备,它允许像块设备一样访问文件。在目录上挂载包含文件系统的文件通常需要两个步骤:

使用圆形设备节点连接文件。将循环设备安装在目录上

具体步骤:

dd if = / dev / zero of = file.img bs = 1k count = 10000 //创建丢失的初始化文件/ dev / loop0 file.img //创建循环设备mke2fs -c / dev / loop0 10000 / /创建文件系统mkdir / mnt / point1 //创建挂载点mount -t ext2 / dev / loop0 / mnt / point1 //挂载

3. 3文件系统的结构

linux硬盘分区

linux硬盘分区

用户空间包含一些应用程序(例如,文件系统用户)和GNU C库(glibc),它们为文件系统调用(打开,读取,写入和关闭)提供了用户界面。系统调用接口就像一个开关,将系统调用从用户空间发送到内核空间中的相应端点。

VFS是基础文件系统的主界面。它是Linux内核中的软件抽象层。 。该组件导出一组接口,然后将它们抽象到各种文件系统。每个文件系统的行为可能会有很大的不同。文件系统对象有两个缓存(inode和dentry)。他们缓存最近使用的文件系统对象。由于存在VFS,Linux允许许多不同的文件系统共存并支持跨文件系统的文件操作。它通过一些数据结构和方法为诸如ext2和vfat之类的实际文件系统提供了一种接口机制。

每个文件系统实现(例如ext 2、 JFS等)都导出一组公用接口,供VFS使用。缓冲区高速缓存在文件系统和相关块设备之间高速缓存请求。例如,对底层设备驱动程序的读写请求将通过缓冲区高速缓存传递。这允许将请求缓存在其中,从而减少了对物理设备的访问次数并加快了访问速度。您可以使用sync命令将缓冲区高速缓存中的请求发送到存储介质(强制所有未写入的数据先发送到设备驱动程序,然后再发送到存储设备)。

linux硬盘分区

linux硬盘分区_硬盘怎么分区_硬盘如何分区

linux硬盘分区

3. 4 VFS(虚拟文件系统)

Linux允许许多不同的文件系统共存,例如ext2,ext3,vfat等。通过使用同一组文件I / O系统调用,无论特定的文件系统格式如何,您都可以在Linux上对任何文件进行操作。它所在的位置;此外,可以跨文件系统执行文件操作。如下图所示,我们可以使用cp命令将数据从vfat文件系统格式的硬盘复制到ext3文件系统格式的硬盘;此操作涉及两个不同的文件系统。

linux硬盘分区

linux硬盘分区

过程:VFS调用vfat的文件读取方法将a.txt的数据读取到内存中;将内存中的a.txt数据映射到b.txt对应的内存空间后,VFS调用ext3的文件写入方法,将b.txt写入磁盘。从而实现最终的跨文件系统复制操作。

“一切都是文件”是Unix / Linux的基本哲学之一。在Unix / Linux中,不仅普通文件,而且目录,字符设备,块设备,套接字等都被视为文件。尽管它们的类型不同,但是它们提供了相同的操作界面集。操作文件时,需要先打开它;当您打开文件时,VFS将知道与该文件相对应的文件系统格式;当VFS将控制权转移到实际文件系统时,实际文件系统将针对不同的文件类型做出特定的区分。执行不同的操作。这是“一切都是文件”的根源。

linux硬盘分区

linux硬盘分区

从物理介质读取文件的特定过程:

linux硬盘分区

linux硬盘分区

当用户应用程序调用文件I / O read()操作时,系统调用sys_read()被激活,sys_read()查找文件所在的特定文件系统,并将控制权转移到文件系统。最后,特定的文件系统与物理介质进行交互并从该介质读取数据。

3. 5 Linux文件系统类型3. 5. 1 ReiserFS

ReiserFS是文件系统格式。 Linux内核支持2. 4. 1版的ReiserFS。 ReiserFS最初是Novell的SuSE Linux Enterprise使用的默认文件系统。在2006年10月12日之前,它宣布将在将来的版本中将ext3作为默认设置。与同样在Linux Kernel 2. 4下的ext2和ext3相比,当处理4KB以下的小文件(启用尾包)时,ReiserFS的速度提高了10到15倍[3]。但是,某些目录操作在ReiserFS上不同步(包括unlink(2))),这可能会导致某些严重依赖基于文件的锁定机制的应用程序中的数据损坏。存储在组合B +树中的文件,目录项(目录项)和索引节点中的阻止列表(间接项),所有这些都具有唯一的标识号作为B +树的索引值。

3. 5. 2 ext2文件系统

ext2文件系统(也称为第二个扩展文件系统)旨在克服Linux早期版本中使用的Minix文件系统的缺点。这个文件系统已经在Linux中广泛使用了很多年。但是ext2中没有日志,基本上已经被ext3和最新的ext4取代了。

3. 5. 3 ext3文件系统

ext3文件系统在标准ext2文件系统中添加了一个日志功能,因此它是非常稳定的文件系统的演进式发展。在大多数情况下,它提供合理的性能,并且仍在改进中。因为它在可靠的ext2文件系统中添加了日记功能,所以可以将现有的ext2文件系统转换为ext3文件系统,并在需要时将其转换回去。

3. 5. 4 ext4文件系统

Ext4是对ext3的扩展而启动的。它通过增加存储限制和提高性能来满足大型文件系统的需求。为了保持ext3的稳定性,在2006年6月,将扩展名拆分为一个新的文件系统,即ext4。 ext4文件系统于2008年12月正式发布,并包含在2. 6. 28内核中。

3. 5. 5 vfat文件系统

vfat文件系统(也称为FAT3 2))没有日志记录功能,并且缺少完整的Linux文件系统实现所需的许。它可以用于Windows和Linux系统之间的数据交换,因为Windows和Linux可以读取。除非要在Windows和Linux之间共享数据,否则请勿在Linux上使用此文件系统。

3. 5. 6 XFS文件系统

XFS文件系统具有日志功能,包含一些强大的功能,并且针对可伸缩性进行了优化。 XFS通常非常快。在大文件操作方面,XFS在所有测试中均处于领先地位。 XFS的性能非常接近ReiserFS,并且在大多数测试指标中都超过了ext3。

3. 5. 7 IBM JFS文件系统

当前在IBM企业服务器中使用的IBM日记文件系统(JFS)专为高吞吐量服务器环境而设计。它适用于Linux,并包含在多个发行版中。要创建JFS文件系统,请使用mkfs.jfs命令。

3. 6选择文件系统

选择合适的下一代Linux文件系统一直很简单。那些只追求原始性能的人通常倾向于使用ReiserFS,而那些更关注数据完整性功能的人则更喜欢ext3 / 4。但是,随着Linux版本的XFS的发布,事情突然变得令人困惑。特别是,人们开始怀疑ReiserFS是否仍然是下一代文件系统性能的领导者。

3. 7创建文件系统

Linux使用mkfs命令创建文件系统,并使用mkswap命令创建交换空间。 mkfs命令实际上是某些特定文件系统命令的前端,例如ext3的mkfs.ext3,ext4的mkfs.ext4和ReiserFS的mkfs.reiserfs。您的文件系统上安装了什么文件系统支持?使用ls / sbin / mk *命令获得答案。

原文:/ sammyliu / p / 452131 5. html

参考文件:

/ article / view / 620

/ leejun2005 / blog / 290073

.tw / linux_basic / 0230filesystem.php

/ vamei / p / 350656 6. html

/ developerworks / cn / linux / l-linux-kernel /

/ developerworks / cn / linux / l-cn-vfs /

/ developerworks / cn / linux / filesystem / l-fs9 /

/ wiki / ReiserFS


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/dianqi/article-369324-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      • 何纪鹏
        何纪鹏

        中国人抵制苹果手机

      热点图片
      拼命载入中...