linux启动过程与磁盘分区

前言:

今天整理前段时间学习磁盘分区的知识,觉得有必要理清linux启动的整个过程,整理磁盘分区的知识以及一些疑惑,这样对磁盘分区这一块有更深刻的认识,为后面学习挂载打好基础。

1.linux启动:

没有学习linux之前,觉得启动就是那么回事,打开电源等待系统自动启动,没有想过系统的启动过程具体是怎样的。先贴个图在详细说明:


具体过程:

1)给cup通电,计算机首先自动运行主板bois芯片程序上电自检POST),对CPU、系统主板、基本内存、扩展内存、系统ROM BIOS等器件的测试。

2)若没有严重的问题,当自检完成后,系统进行下一步骤:从硬盘、光盘或者U盘等设备上寻找操作系统进行启动。

3)以硬盘启动为例(通常默认就是从硬盘启动,假如你没设置bois的启动方式的话),硬盘的容量很大,比如500G,1T或者更多,但是BOIS程序将从硬盘的0柱面,0磁道 1扇区的内容(MBR分区),启动bootloader程序,用于通知计算机如何访问分区表并定位操作系统的位置。

4)最后通过bootloder启动grub引导程序进行引导启动你所需要的操作系统,如果你的计算机上安装了很多操作系统的话。

启动计算机是通常可以按F2键进入grub引导界面:


第一个扇区:

第一个扇区很重要,它被破坏了,安装在硬盘上的操作系统就无法启动:下图为第一个扇区的结构:

问题:

一个扇区只有512字节,为什么不是1024字节呢?

 首先,一个扇区是多少字节是可以自己(硬盘生产厂商)定义的,可以是1024字节的。所以说,一个扇区是512字节并不是理论值,而是习惯值。

MBR定义:

一般将MBR分为广义和狭义两种:广义的MBR包含整个扇区(Bootloader引导程序、分区表及魔数),也就是上图所示的MBR;而狭义的MBR仅指引导程序上图黄色部分。

广义上:它由三个部分组成,主引导程序、硬盘分区表(Disk Partition table)和魔数。

第一部分:主引导程序(bootloader)占446个字节;

第二部分:Partition table区(分区表)占64字节,硬盘中分区有多少以及每一分区的大小都记在分区表;

第三部分:结束标志字占2byte,固定为0xAA55或0x55AA,这取决于处理器类型主要用于标识该文件类型。偏移地址01FE--01FF的2个字节值为结束标志0xAA55或0x55AA,称为“魔数”(magic number)。如果该标志错误系统就不能启动。

注意:

由于MBR分区表的最大可寻址的存储空间只有2Tb(232×512字节)。因此,在大硬盘出现的现在,MBR分区方式逐渐被GUID分区表取代。MBR不可能存在于不可分区的媒介如软盘等中。

2.磁盘分区:

分区的一些概念:

1)所谓的分区就是针对分区表的64byte进行设置而已;

2)硬盘默认的分区表仅仅只能写入四组分区信息,也就是只能分为4个主分区;

3)这四组分区信息我们称为主(Primary)分区或者扩展(Extended)分区.。

问题:

为什么64byte只能划分4个主分区,也就是一个主分区为16byte呢?

MBR分区表类型的硬盘规定的每个分区表项长16个字节。

说明:

也就是说:一个硬盘分为两大类分区:主分区和扩展分区,只有主分区是能够安装操作系统。在一个MBR分区表类型的硬盘中最多只能存在4个主分区。如果一个硬盘上需要超过4个以上的磁盘分区的话,那么就需要使用扩展分区了。如果使用扩展分区,那么一个物理硬盘上最多只能3个主分区和1个扩展分区。

两种分区的形式:

4个分区已经完全满足你的需求,可以用第一种分区方式:Primary+Primary+Primary+Primary


当你觉得分区的数量不能满足要求,你可以选择第二种分区方式:Primary+Primary+Primary+Extended


说明:

扩展分区不能直接使用,它必须经过第二次分割成为一个一个的逻辑分区,然后才可以使用。

原理已经清楚了,但是(无力吐槽)磁盘的文件在linux那个目录下,它在linux下是按照什么样的规则命名的?

设备文件:

linux系统下一切都是文件,磁盘是也是设备文件,在LINUX中,为了简化对设备的管理,所有外围的硬件设备被归结为三类在:块设备,字符设备,网络设备:


说明:

块设备:是指可以从设备的任意位置读取一定长度数据的设备,常见的有硬盘,光盘,SD卡(linux下对磁盘的操作:分区,格式化,挂载)。
字符设备:只能一个字节一个字节读写的设备,不能随机读取设备内存中的某一数据,读取数据需要按照先后数据。字符设备是面向流的设备,常见的字符设备有鼠标、键盘、串口、控制台和LED设备等。
网络设备:也称为网络接口(network inferface),如以太网卡。
除了网络设备所有设备文件都在/dev/路径下。

命名方式:

在 DOS/Windows 的世界里,分区是用下列方法命名的:

每个分区都被检查过以便判定它是否可被 DOS/Windows 读取。如果分区类型是兼容的,它会被指派给一个“驱动器字母”。驱动器字母从“C”开始,然后依据要标签的分区数量而按字母顺序推移。驱动器字母可以用来指代那个分区,也可以用来指带分区所含的文件系统。

Red Hat Linux 使用一种更灵活的命名方案:

它所传达的信息比其它操作系统采用的命名方案更多。该命名方案是基于文件的,文件名的格式为:/dev/xxyN  (例如 /dev/sda2)。


说明:

IDE接口:排线较宽,是并行,一次可以同时传输几组数据。IDE硬盘设备在linux命名为/hd。
SATA接口/SCAI接口:排线较窄,是串行,一次只能同时发送一组数据,SATA/SCAI硬盘设备linux命名为/sd。

例子:

/dev/hda表明:第一个 IDE 磁盘;

 /dev/sdb表明:第二个 SCSI/SATA 磁盘;

/dev/hda1表明:第一个IDE磁盘的第一个(主)分区 ;

 /dev/hdb2表明:第二个IDE磁盘的第二个分区;

/dev/sda5表明:第一个SCSI/SATA磁盘的第一个逻辑分区。

                  


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值