linux选择磁盘的安装文件系统,鸟哥的 Linux 私房菜 -- Linux 磁盘与文件系统管理...

在过去非常多的文章都写到启动管理程序是安装到 superblock 内的,但是我们由官方的 How to

文件知道,图解(图 1.3.1)的结果是将可安装启动信息的

boot sector (启动扇区) 独立出来,并非放置到 superblock 当中的!

那么也就是说过去的文章写错了?这其实还是可以讨论讨论的!

经过一些搜寻,鸟哥找到几篇文章(非官方文件)的说明,大多是网友分析的结果啦!如下所示:(注10)

这几篇文章有几个重点,归纳一下如下:

superblock 的大小为 1024 bytes;

superblock 前面需要保留 1024 bytes 下来,以让启动管理程序可以安装。

分析上述两点我们知道 boot sector 应该会占有 1024 bytes 的大小吧!但是整个文件系统主要是依据 block 大小来决定的啊!

因此要讨论 boot sector 与 superblock 的关系时,不得不将 block 的大小拿出来讨论讨论喔!

block 为 1024 bytes (1K) 时:

如果 block 大小刚好是 1024 的话,那么 boot sector 与 superblock 各会占用掉一个 block ,

所以整个文件系统图示就会如同图 1.3.1 所显示的那样,boot sector 是独立于 superblock 外面的!

由于鸟哥在基础篇安装的环境中有个 /boot 的独立文件系统在 /dev/hdc1 中,使用 dumpe2fs

观察的结果有点像底下这样(如果你是按照鸟哥的教学安装你的 CentOS 时,可以发现相同的情况喔!):

[root@www ~]# dumpe2fs /dev/hdc1

dumpe2fs 1.39 (29-May-2006)

Filesystem volume name: /boot

....(中间省略)....

First block: 1

Block size: 1024

....(中间省略)....

Group 0: (Blocks 1-8192)

Primary superblock at 1, Group descriptors at 2-2

Reserved GDT blocks at 3-258

Block bitmap at 259 (+258), Inode bitmap at 260 (+259)

Inode table at 261-511 (+260)

511 free blocks, 1991 free inodes, 2 directories

Free blocks: 5619-6129

Free inodes: 18-2008

# 看到最后一个特殊字体的地方吗? Group0 的 superblock 是由 1 号 block 开始喔!

由上表我们可以确实的发现 0 号 block 是保留下来的,那就是留给 boot sector 用的啰!

所以整个分割槽的文件系统分区有点像底下这样的图示:

ddaf96f05fa892b1da051f7505332b0f.gif

图 6.1.1、1K block 的 boot sector 示意图

block 大于 1024 bytes (2K, 4K) 时:

如果 block 大于 1024 的话,那么 superblock 将会在 0 号!我们撷取本章一开始介绍

dumpe2fs 时的内容来说明一下好了!

[root@www ~]# dumpe2fs /dev/hdc2

dumpe2fs 1.39 (29-May-2006)

....(中间省略)....

Filesystem volume name: /1

....(中间省略)....

Block size: 4096

....(中间省略)....

Group 0: (Blocks 0-32767)

Primary superblock at 0, Group descriptors at 1-1

Reserved GDT blocks at 2-626

Block bitmap at 627 (+627), Inode bitmap at 628 (+628)

Inode table at 629-1641 (+629)

0 free blocks, 32405 free inodes, 2 directories

Free blocks:

Free inodes: 12-32416

我们可以发现 superblock 就在第一个 block (第 0 号) 上头!但是 superblock 其实就只有 1024bytes 嘛!

为了怕浪费更多空间,因此第一个 block 内就含有 boot sector 与 superblock 两者

!举上头的表格来说,因为每个 block 占有 4K ,因此在第一个 block 内 superblock 仅占有 1024-2047

( 由 0 号起算的话)之间的咚咚,至于 2048bytes 以后的空间就真的是保留啦!而 0-1023 就保留给 boot sector 来使用。

6fbdac68922f0e4111c4c59337955f08.gif

图 6.1.2、4K block 的 boot sector 示意图

因为上述的情况,如果在比较大的 block 尺寸(size)中,我们可能可以说你能够将启动管理程序安装到 superblock

所在的 block 号码中!就是上表的 0 号啰!但事实上还是安装到 boot sector 的保留区域中啦!所以说,

以前的文章说启动管理程序可以安装到 superblock 内也不能算全错~但比较正确的说法,应该是安装到该 filesystem

最前面的 1024 bytes 内的区域,就是 boot sector 这样比较好!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值