zoukankan      html  css  js  c++  java
  • [转+整理]LINUX学习笔记(1):磁盘结构及分区

    整理自:

    http://vbird.dic.ksu.edu.tw/linux_basic/0130designlinux_2.php

    http://lengjianxxxx.blog.163.com/blog/static/811884020073228627532/

    一:各硬件与对应LINUX档案名

    装置

    装置在Linux内的档名

    IDE硬盘机

    /dev/hd[a-d]

    SCSI/SATA/U盘硬盘机

    /dev/sd[a-p]

    U盘快闪碟

    /dev/sd[a-p](与SATA相同)

    软盘机

    /dev/fd[0-1]

    打印机

    25针: /dev/lp[0-2]
    U盘: /dev/usb/lp[0-15]

    鼠标

    U盘: /dev/usb/mouse[0-15]
    PS2: /dev/psaux

    当前CDROM/DVDROM

    /dev/cdrom

    当前的鼠标

    /dev/mouse

    磁带机

    IDE: /dev/ht0
    SCSI: /dev/st0

    二、多磁盘与LINUX对应名:

    硬盘分为IDE和SATA两种,首先以IDE举例:

    PC一般提供两个IDE借口插槽(primary/secondary),一个IDE排线可以接2个IDE设备(硬盘/光驱)(Master/Slave),故LINUX中设备名如下图所示:

    IDEJumper

    Master

    Slave

    IDE1(Primary)

    /dev/hda

    /dev/hdb

    IDE2(Secondary)

    /dev/hdc

    /dev/hdd

     

    SATA设备名则由Linux核心侦测到磁的顺序决定,与实际插槽代号无关:例如PC SATA1和SATA5插槽有两个硬盘及一个U盘,则依次为:/dev/sda,/dev/sdb/,dev/sdc。

     

    三、磁盘结构

    磁盘结构示意图:

     

     一般情况下:硬盘包含一个或者多个盘片,每个盘片对应正反两个磁面,每个磁面会用来记录数据,并对应一个磁头来读取数据。每个磁面被划分为面、磁道和扇区。各面上磁道号相同的磁道合起来,称为一个柱面(cylinder)

    磁道:读写硬盘时,磁头依靠磁盘的高速旋转引起的空气动力效应悬浮在盘面上,与盘面的距离不到1微米(约为头发直径的百分之一)。由于磁盘是旋转的,则连续写入的数据是排列在一个圆周上的。我们称这样的圆周为一个磁道(Track)。如果读写磁头沿着圆形薄膜的半径方向移动一段距离,以后写入的数据又排列在另外一个磁道上。

    扇区:磁道数可以从几百到数千不等;一个磁道上可以容纳数KB的数据,而主机读写时往往并不需要一次读写那么多,于是,磁道又被划分成若干段,每段称为一个扇区(Sector)。一个扇区一般存放512字节的数据。扇区也需要编号,同一磁道中的扇区,分别称为1扇区,2扇区。。。。这里需要注意的是,硬盘在划分扇区时,和一般的软盘有一定的区别。软盘的一个磁道中,扇区号依次编排。而在硬盘的一个磁道中,扇区号是按照某个间隔跳跃着编排的。我们举一个例子来说明:在某个硬盘上,以实际存储位置而论,2号扇区并不是1号扇区后的第一个,而是第5个,3号扇区又是2号扇区后的第5个,以此类推。这个"5"就是我们说的交叉因子。当然,这个交叉因子的设定并不是绝对的,每个种类的硬盘为根据自身的情况加以变化。选择适当的交叉因子,可使硬盘驱动器读写扇区的速度与硬盘的旋转速度相匹配,提高存储数据的速度。

     计算机对硬盘的读写,出于效率的考虑,是以扇区为基本单位的。即使计算机只需要硬盘上存储的某个字节,也必须一次把这个字节所在的扇区中的512字节全部读入内存,再使用所需的那个字节,每个扇区并不仅仅是由512个字节组成的,在这些由计算机存取的数据的前、后两端,都另有一些特定的数据,这些数据构成了扇区的界限标志,标志中含有扇区的编号和其他信息。计算机就凭借着这些标志来识别扇区。

    MBR(Master Boot Recorder)主要开机扇区,记录了两个重要的东西,分别是:开机管理程序,与磁盘分区表 ( partition table )。所以我们所做的硬盘分区,也就是在修改partition table。磁盘分区表只有64bytes,只能保存4个分区记录:Primary ( 主分区 ) 及 Extended ( 扩展分区 ) ,使用标识: /dev/had[1~4],其中,Extended 只能有一个,因此,你如果要分区成四块磁盘分区的话,那么最多就是可以:(P + P + P + P)或者(P + P + P + E)。

    由扩展分区(partition table)可以划分出逻辑分区(logical partition),使用 /dev/had[5~n]。逻辑分区也有分区表,放在Extended中第一分区,故个数也是有限制的。

    总结:Primary ( 主分区 ) 及 Extended ( 扩展分区 ) 与逻辑分区(Logical)的特性:

    • Primary 与Extended 最多可以有4个(硬盘的限制)
    • Extended 最多只能有一个(操作系统的限制)
    • Logical是在Extended中 重新划分的分区
    • Primary ( 主分区 ) 及 Logical ( 扩展分区 ) 可以格式化并进行数据存取,Extended 无法格式化;
    • Logical的数量依操作系统而不同,在Linux系统中,IDE硬盘最多有59个(5号到63号), SATA硬盘则有11个 (5号到15号)。

    四、启动流程

     CMOS是记录各项硬件参数且嵌入在主板上面的储存器,BIOS是程序,直接写入硬件CMOS,是硬件启动加载的第一个程序。

    1、 读取BIOS,获得MBR位置

    2、 读取MBR,获得启动管理程序(boot loader)

    3、 读取boot loader,读取核心文件,加载操作系统,或者转入4

    4、 转交给其他loader(多操作系统的多重启动),递归3。

    启动管理程序的工作运行示意图

    WINDOWS安装会覆盖掉MBR以及所在分区的启动区域。Linux可以将boot loader安装在MBR或其他分区的启动区域, 而且Linux的loader可以手动配置菜单,加入Windows启动的选项;

  • 相关阅读:
    POJ 3710 Christmas Game#经典图SG博弈
    POJ 2599 A funny game#树形SG(DFS实现)
    POJ 2425 A Chess Game#树形SG
    LeetCode Array Easy 122. Best Time to Buy and Sell Stock II
    LeetCode Array Easy121. Best Time to Buy and Sell Stock
    LeetCode Array Easy 119. Pascal's Triangle II
    LeetCode Array Easy 118. Pascal's Triangle
    LeetCode Array Easy 88. Merge Sorted Array
    ASP.NET MVC 学习笔记之 MVC + EF中的EO DTO ViewModel
    ASP.NET MVC 学习笔记之面向切面编程与过滤器
  • 原文地址:https://www.cnblogs.com/songxinya/p/3274320.html
Copyright © 2011-2022 走看看