linux 磁盘分区详解.docx

上传人:b****3 文档编号:10786084 上传时间:2023-05-27 格式:DOCX 页数:55 大小:42.41KB
下载 相关 举报
linux 磁盘分区详解.docx_第1页
第1页 / 共55页
linux 磁盘分区详解.docx_第2页
第2页 / 共55页
linux 磁盘分区详解.docx_第3页
第3页 / 共55页
linux 磁盘分区详解.docx_第4页
第4页 / 共55页
linux 磁盘分区详解.docx_第5页
第5页 / 共55页
linux 磁盘分区详解.docx_第6页
第6页 / 共55页
linux 磁盘分区详解.docx_第7页
第7页 / 共55页
linux 磁盘分区详解.docx_第8页
第8页 / 共55页
linux 磁盘分区详解.docx_第9页
第9页 / 共55页
linux 磁盘分区详解.docx_第10页
第10页 / 共55页
linux 磁盘分区详解.docx_第11页
第11页 / 共55页
linux 磁盘分区详解.docx_第12页
第12页 / 共55页
linux 磁盘分区详解.docx_第13页
第13页 / 共55页
linux 磁盘分区详解.docx_第14页
第14页 / 共55页
linux 磁盘分区详解.docx_第15页
第15页 / 共55页
linux 磁盘分区详解.docx_第16页
第16页 / 共55页
linux 磁盘分区详解.docx_第17页
第17页 / 共55页
linux 磁盘分区详解.docx_第18页
第18页 / 共55页
linux 磁盘分区详解.docx_第19页
第19页 / 共55页
linux 磁盘分区详解.docx_第20页
第20页 / 共55页
亲,该文档总共55页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

linux 磁盘分区详解.docx

《linux 磁盘分区详解.docx》由会员分享,可在线阅读,更多相关《linux 磁盘分区详解.docx(55页珍藏版)》请在冰点文库上搜索。

linux 磁盘分区详解.docx

linux磁盘分区详解

  系统引导过程及硬盘分区结构论述

  作者:

zhy2111314

  来自:

LinuxSir.Org

  摘要:

本文是理论性文档,主要讲述系统引导过程以及硬盘的物理结构;

  

  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

  正文

  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

  

  一、系统引导过程简介

  系统引导过程主要由以下几个步骤组成(以硬盘启动为例)

  1、开机;

  2、BIOS加电自检(POST---PowerOnSelfTest),内存地址为0fff:

0000;

  3、将硬盘第一个扇区(0头0道1扇区,也就是BootSector)读入内存地址0000:

7c00处;

  4、检查(WORD)0000:

7dfe是否等于0xaa55.若不等于则转去尝试其他介质;如果没有其他启动介质,则显示”NoROMBASIC”,然后死机;

  5、跳转到0000:

7c00处执行MBR中的程序;

  6、MBR先将自己复制到0000:

0600处,然后继续执行;

  7、在主分区表中搜索标志为活动的分区.如果发现没有活动分区或者不止一个活动分区,则停止;

  8、将活动分区的第一个扇区读入内存地址0000:

7c00处;

  9、检查(WORD)0000:

7dfe是否等于0xaa55,若不等于则显示“MissingOperatingSystem”,然后停止,或尝试软盘启动;

  10、跳转到0000:

7c00处继续执行特定系统的启动程序;

  11、启动系统.

  以上步骤中

(2),(3),(4),(5)步由BIOS的引导程序完成;(6),(7),(8),(9),(10)步由MBR中的引导程序完成.

  一般多系统引导程序(如SmartBootManager,BootStar,PQBoot等)都是将标准主引导记录替换成自己的引导程序,在运行系统启动程序之前让用户选择想要启动的分区.而某些系统自带的多系统引导程序(如LILO,NTLoader等)则可以将自己的引导程序放在系统所处分区的第一个扇区中,在Linux中即为两个扇区的SuperBlock.

  注:

以上步骤中使用的是标准的MBR,多系统引导程序的引导过程与此不同.

  

  二、硬盘结构及参数

  3D参数(DiskGeometry):

CHS(Cylinder/Head/Sector)C-Cylinder柱面数表示硬盘每面盘片上有几条磁道,最大为1024(用10个二进制位存储);H-Head磁头数表示硬盘总共有几个磁头,也就是几面盘片,最大为256(用8个二进制位存储);S-Sector扇区数表示每条磁道上有几个扇区,最大为63(用6个二进制位存储).

  

  1、引导扇区

  

  BootSector组成

  BootSector也就是硬盘的第一个扇区,它由MBR(MasterBootRecord),DPT(DiskPartitionTable)和BootRecordID三部分组成.MBR又称为主引导记录,占用BootSector的前446个字节(0~0x1BD),存放系统主引导程序(它负责从活动分区中装载并且运行系统引导程序).DPT即主分区表占用64个字节(0x1BE~0x1FD),记录磁盘的基本分区信息.主分区表分为四个分区项,每项16个字节,分别记录每个主分区的信息(因此最多可以有四个主分区).BootRecordID即引导区标记占用两个字节(0x1FE~0x1FF),对于合法引导区,它等于0xaa55,这是判别引导区是否合法的标志).

  BootSecor具体结构如图:

  

  2、分区表结构简介

  分区表由四个分区项构成,每一项结构如下:

  BYTEState:

分区状态,0=未激活,0x80=激活(注意此项);

  BYTEStartHead:

分区起始磁头号;

  WORDStartSC:

分区起始扇区和柱面号,底字节的底6位为扇区号,高2位为柱面号的第9,10位,高字节为柱面号的低8位;

  BYTEType:

分区类型,如0x0B=FAT32,0x83=Linux等,00表示此项未用;

  BYTEEndHead:

分区结束磁头号;

  WORDEndSC:

分区结束扇区和柱面号,定义同前;

  DWORDRelative:

在线性寻址方式下的分区相对扇区地址(对于基本分区即为绝对地址);

  DWORDSectors:

分区大小(总扇区数).

  在DOS或Windows系统下,基本分区必须以柱面为单位划分(Sectors*Heads个扇区),如对于CHS为764/256/63的硬盘,分区的最小尺寸为256*63*512/1048576=7.875MB.

  由于硬盘的第一个扇区已经被引导扇区占用,所以一般来说,硬盘的第一个磁道(0头0道)的其余62个扇区是不会被分区占用的.某些分区软件甚至将第一个柱面全部空出来.

  扩展分区结构如图:

  

  硬件不同了

  3D参数(DiskGeometry):

CHS(Cylinder/Head/Sector)C-Cylinder柱面数表示硬盘每面盘片上有几条磁道,最大为1024(用10个二进制位存储);H-Head磁头数表示硬盘总共有几个磁头,也就是几面盘片,最大为256(用8个二进制位存储);S-Sector扇区数表示每条磁道上有几个扇区,最大为63(用6个二进制位存储).

  应该注明以上是以前的磁盘结构。

比如我的硬盘就只有两个盘面,单盘,但是有257heads,磁道:

7297cylinders。

扇区为63。

  在Linux系统中存储设备的两种表示方法

  作者:

北南南北

  来自:

LinuxSir.Org

  摘要:

硬盘和硬盘分区在Linux都表示为设备,按我们通俗的说法来说,就是怎么来表示或描述硬盘和或硬盘分区,但这种描述应该是科学和具体的;比如IDE硬盘,在Linux可以表示为/dev/hda、/dev/hdb...;SCSI接口的硬盘、SATA接口的硬盘表示为/dev/sda、/dev/sdb......;而IDE接口的硬盘/dev/hda,也可以表示为hd0,而SCSI接口的如果是/dev/sda,另一种表示方法是sd0;

  理解两种表示方法有何用?

至少GRUB引导管理器用到这些知识;另外我们mount(挂载)文件系统(分区),也会用到这些知识;

  目录索引

  一、对于IDE接口的硬盘的两种表示方法;

  1、IDE接口硬盘,对于整块硬盘的两种表示方法;

  2、IDE接口硬盘分区的两种表示方法;

  

  1)硬盘分区的第一种表示方法/dev/hd[a-z]X;

  2)硬盘分区的第二种表示方法(hd[0-n],y);

  二、关于SATA和SCSI接口的硬盘的两种表示方法;

  三、usb及1394接口的存储设备和软驱设备;

  四、关于存储设备的不同的表示方法的应用;

  1、/dev/hd[a-z]表示方法的应用;

  

  1)用于mount挂载文件系统(分区)之用;

  2)用于GRUB中指定Linux的根分区的位置;

  2、hd[0-n]表示方法的应用;

  五、关于本文;

  六、参考文档;

  六、相关文档;

  

  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++

  正文

  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++

  

  一、对于IDE接口的硬盘的两种表示方法;

  

  1、IDE接口硬盘,对于整块硬盘的两种表示方法;

  IDE接口中的整块硬盘在Linux系统中表示为/dev/hd[a-z],比如/dev/hda,/dev/hdb......以此类推,有时/dev/hdc可能表示的是CDROM,还是以具体的fdisk-l输出为准吧;

  另一种表示方法是hd[0-n],其中n是一个正整数,比如hd0,hd1,hd2......hdn;

  如果机器中只有一块硬盘,无论我们通过fdisk-l列出的是/dev/hda还是/dev/hdb,都是hd0;如果机器中存在两个或两个以上的硬盘,第一个硬盘/dev/hda另一种方法表示为hd0,第二个硬盘/dev/hdb,另一种表法是hd1;

  感觉大家对hd0,hd1这种表示方法并不寞生,现在新的机器,在BIOS中,在启动盘设置那块,硬盘是有hd0,hd1之类的,这就是硬盘表示方法的一种;

  对于/dev/hda类似的表示方法,也并不寞生吧;我们在Linux通过fdisk-l就可以查到硬盘是/dev/hda还是/dev/hdb;

  

  [root@localhost~]#fdisk-l

  Disk/dev/hda:

80.0GB,80026361856bytes

  255heads,63sectors/track,9729cylinders

  Units=cylindersof16065*512=8225280bytes

  DeviceBootStartEndBlocksIdSystem

  /dev/hda1*19707791493+7HPFS/NTFS

  /dev/hda2971972970356667+5Extended

  /dev/hda5971291515623181bW95FAT32

  /dev/hda6291641319767488+83linux

  /dev/hda7413255901171938683linux

  /dev/hda8559168069767488+83linux

  /dev/hda9680796572290062683linux

  /dev/hda1096589729578308+82linuxswap/Solaris

  

  请注意第一行,Disk/dev/hda:

80.0GB,80026361856bytes,这个就是表示机器中只有一个硬盘设备/dev/hda,体积大小为80.0G;下面的就是硬盘的分区,每个分区都有详细的信息,在这里不详细说了;

  

  2、IDE接口硬盘分区的两种表示方法;

  

  1)硬盘分区的第一种表示方法/dev/hd[a-z]X;

  硬盘的分区也有两种表示方法,一种是/dev/hd[a-z]X,这个a-z表示a、b、c......z,X是一个从1开始的正整数;比如/dev/hda1,/dev/hda2..../dev/hda6,/dev/hda7......值得注意的是/dev/hd[a-z]X,如果X的值是1到4,表示硬盘的主分区(包含扩展分区);逻辑分区从是从5开始的,比如/dev/hda5肯定是逻辑分区了;

  我用fdisk-l就能列出一个硬盘的分区表,比如:

  

  [root@localhost~]#fdisk-l

  Disk/dev/hda:

80.0GB,80026361856bytes

  255heads,63sectors/track,9729cylinders

  Units=cylindersof16065*512=8225280bytes

  DeviceBootStartEndBlocksIdSystem

  /dev/hda1*19707791493+7HPFS/NTFS

  /dev/hda2971972970356667+5Extended

  /dev/hda5971291515623181bW95FAT32

  /dev/hda6291641319767488+83linux

  /dev/hda7413255901171938683linux

  /dev/hda8559168069767488+83linux

  /dev/hda9680796572290062683linux

  /dev/hda1096589729578308+82linuxswap/Solaris

  

  

  2)硬盘分区的第二种表示方法(hd[0-n],y);

  

  我们前面已经说过了整块硬盘也有两种表示方法,一种是/dev/hd[a-z]的,另种方法是hd[0-n];

  一个硬盘分区首先要大确认在哪个硬盘,然后再确认他所在的位置;做个比喻,比如我住在XXX宾馆YYY号房间,我仅仅是告诉别人我在XXX宾馆不够的,还要告诉他YYY房间,这样来找我的人才能找到我;所以我们要知道一个硬盘分区,除了知道/dev/hd[a-z]以外,还要知道他在哪个位置,也就有前面所说的/dev/hd[a-z]X的说法,确认了分区在/dev/hd[a-z]后,还要通过X来确认具体位置;

  本标题中说的是另外一种表示方法(hd[0-n],y),hd[0-n]我们知道这是硬盘的表示方法之一,如果不懂,请看看前面的东西吧;那这里的y是什么意思呢?

y的值是/dev/hd[a-z]X中的X-1;

  用实例来理解吧;

  

  [root@localhost~]#fdisk-l

  Disk/dev/hda:

80.0GB,80026361856bytes

  255heads,63sectors/track,9729cylinders

  Units=cylindersof16065*512=8225280bytes

  DeviceBootStartEndBlocksIdSystem

  /dev/hda1*19707791493+7HPFS/NTFS

  /dev/hda2971972970356667+5Extended

  /dev/hda5971291515623181bW95FAT32

  /dev/hda6291641319767488+83linux

  /dev/hda7413255901171938683linux

  /dev/hda8559168069767488+83linux

  /dev/hda9680796572290062683linux

  /dev/hda1096589729578308+82linuxswap/Solaris

  

  /dev/hda1等同(hd0,0)

  /dev/hda2等同(hd0,1)注:

看好了,这个是扩展分区,在Linux还是Windows是不能挂载的;

  /dev/hda5等同(hd0,4)

  /dev/hda6等同(hd0,5)

  /dev/hda7等同(hd0,6)

  /dev/hda8等同(hd0,7)

  ......

  /dev/hda10同(hd0,9)

  对于机器中只有一个硬盘来说,无论在Linux通过/dev/hda还是/dev/hdb,用hd[0-n]表示方法,都是hd0;所以如果您如果硬盘中列出来的是;

  

  [root@localhost~]#fdisk-l

  Disk/dev/hdb:

80.0GB,80026361856bytes

  255heads,63sectors/track,9729cylinders

  Units=cylindersof16065*512=8225280bytes

  DeviceBootStartEndBlocksIdSystem

  /dev/hdb1*19707791493+7HPFS/NTFS

  /dev/hdb2971972970356667+5Extended

  /dev/hdb5971291515623181bW95FAT32

  /dev/hdb6291641319767488+83linux

  /dev/hdb7413255901171938683linux

  /dev/hdb8559168069767488+83linux

  /dev/hdb9680796572290062683linux

  /dev/hdb1096589729578308+82linuxswap/Solaris

  

  对于机器中只有一个硬盘来说,如果通过fdisk-l列出来的是/dev/hdb的分区表;对应关系和/dev/hda列出的分区表对应关系一样;

  /dev/hdb1等同(hd0,0)

  /dev/hdb2等同(hd0,1)注:

看好了,这个是扩展分区,在Linux还是Windows是不能挂载的;

  /dev/hdb5等同(hd0,4)

  /dev/hdb6等同(hd0,5)

  /dev/hdb7等同(hd0,6)

  /dev/hdb8等同(hd0,7)

  ......

  /dev/hdb10等同(hd0,9)

  注意:

如果机器中有两块硬盘,那/dev/hda另一种表示方法就是hd0,/dev/hdb的另一种表示方法是hd1;这样我们就理解(hd[0-n],y)的写法了吧;这样机器只有单个硬盘或者多个硬盘,我们都知道怎么写了;对不对?

可能也不对,那就请指正吧;

  

  二、关于SATA和SCSI接口的硬盘的两种表示方法;

  理解方法和IDE接口的硬盘相同,只是把hd换成sd;

  如果您的机器中比如有一个硬盘是/dev/hda,也有一个硬盘是/dev/sda,那/dev/sda的硬盘应该是sd0;具体每个分区用(sd[0-n],y)的表示方法和IDE接口中的算法相同,比如/dev/sda1就是(sd0,0);

  

  三、usb及1394接口的存储设备和软驱设备;

  usb存储设备也目前在内核中在两种驱动方法,一种是模拟SCSI硬盘,通过fdisk-l出现的是/dev/sd[0-n];如果是模拟SCSI设备的方法来驱动。

那usb存储设备在Linux的另一种表示方法和前面所说的SCSI和SATA的相同;

  但目前新版本的内核中,想抛弃模拟SCSI,我们通过fdisk列系统存在的存储设置时会出现/dev/uba类似的;但目前这个驱动并不成熟,比如大数据量表现不稳定;其实USB接口的存储设备,在Linux表现还是比较差;

  1394接口存储调备,在Linux中也是模拟SCSI,我们通过fdisk-l后,出现的也是/dev/sd[0-n],另一种表示方法(sd[a-z],y)的理解请参照前面所说的;1394接口的存储设备在Linux表现极好,USB存储如果相对1394接口的存储表现来说,应该不值不提,建议大家购买1394接口的存储设备;

  软驱在Linux中,是/dev/fd0设备这是一般情况,另一种表示为fd0;

  CDROM或DVDROM,以及COMBO,一般的情况下是/dev/hdc;看下面的例子,无论是/dev/cdrom还是/dev/dvd,最后都指向了/dev/hdc;

  

  [root@localhost~]#ls-la/dev/cdrom

  lrwxrwxrwx1rootroot32005-12-14/dev/cdrom->hdc

  [root@localhost~]#ls-la/dev/dvd

  lrwxrwxrwx1rootroot32005-12-14/dev/dvd->hdc

  

  

  四、关于存储设备的不同的表示方法的应用;

  

  1、/dev/hd[a-z]表示方法的应用

  

  

  1)用于mount挂载文件系统(分区)之用;

  我们在前面所说的,硬盘的分区/dev/hd[a-z]X表示方法,一般是用于挂载和读取文件系统之用的;

  

  [root@localhost~]#fdisk-l

  Disk/dev/hda:

80.0GB,80026361856bytes

  255heads,63sectors/track,9729cylinders

  Units=cylindersof16065*512=8225280bytes

  DeviceBootStartEndBlocksIdSystem

  /dev/hda1*19707791493+7HPFS/NTFS

  /dev/hda2971972970356667+5Extended

  /dev/hda5971291515623181bW95FAT32

  /dev/hda6291641319767488+83linux

  /dev/hda7413255901171938683linux

  /dev/hda8559168069767488+83linux

  /dev/hda9680796572290062683linux

  /dev/hda1096589729578308+82linuxswap/Solaris

  

  比如我要挂载/dev/hda9到系统中;所以过程应该是这样的;

  [root@localhost~]#mkdir/opt/data/注:

建立挂载点目录;

  [root@localhost~]#mount/dev/hda9/opt/data/注:

挂载;

  

  是不是挂载好了呢?

看下面的信息,显示已经挂载好了,所以这时我们就能向/opt/data目录写东西了,写的所有东西都记录在了/dev/hda9上;

  

  [root@localhost~]#df-lh

  Filesystem容量已用可用已用%挂载点

  /dev/hda711G9.2G1.1G90%/

  /dev/shm236M0236M0%/dev/shm

  /dev/hda922G3.9G18G18%/opt/data

  

  注意:

挂载得需要内核支持,另外分区也得建立文件系统,请参考相关文档;

  

  2)

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2