免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: chishanmingshen

[实践] grub stage1.5的疑问。。。 [复制链接]

论坛徽章:
0
发表于 2014-06-18 11:52 |显示全部楼层
回复 9# chishanmingshen


    以前在调试硬盘上Fedora 6的grub时,就是这样的情况。现在是啥情况,就不清楚了,好像都是grub2.0的天下吧

论坛徽章:
15
射手座
日期:2014-02-26 13:45:082015年迎新春徽章
日期:2015-03-04 09:54:452015年辞旧岁徽章
日期:2015-03-03 16:54:15羊年新春福章
日期:2015-02-26 08:47:552015年亚洲杯之卡塔尔
日期:2015-02-03 08:33:45射手座
日期:2014-12-31 08:36:51水瓶座
日期:2014-06-04 08:33:52天蝎座
日期:2014-05-14 14:30:41天秤座
日期:2014-04-21 08:37:08处女座
日期:2014-04-18 16:57:05戌狗
日期:2014-04-04 12:21:33技术图书徽章
日期:2014-03-25 09:00:29
发表于 2014-06-18 12:26 |显示全部楼层
kerryxi 发表于 2014-06-18 09:09
回复 5# chishanmingshen

我也有相同的疑问,stage2如何找到相关的kernel、initrd、grub.conf之类的文件的呢?/boot分区上是有文件系统的,比如ext3/4,如果stage2不能识别文件系统,那怎么找到需要的文件呢?哪些文件不可能放在固定的位置吧?

论坛徽章:
0
发表于 2014-06-19 10:53 |显示全部楼层
找了一下以前的grub-0.97代码确认了一下,stage1.5和stage2都是带有文件系统模块的。

stage2的源文件依赖:
pre_stage2_exec_SOURCES = asm.S bios.c boot.c builtins.c char_io.c \
        cmdline.c common.c console.c disk_io.c fsys_ext2fs.c \
        fsys_fat.c fsys_ffs.c fsys_iso9660.c fsys_jfs.c fsys_minix.c \
        fsys_vtos.c fsys_reiserfs.c fsys_ufs2.c fsys_vstafs.c fsys_xfs.c gunzip.c \
        hercules.c md5.c serial.c smp-imps.c stage2.c terminfo.c tparm.c

stage2的目标依赖:
stage2: pre_stage2 start
        -rm -f stage2
        cat start pre_stage2 > stage2

stage1.5的存在是为了把stage2放在硬盘的文件系统上面,所以stage1.5就必须要有fs。找到了stage2,stage2仍然需要通过文件系统的调用才能找到相关的boot文件。如果把stage2直接安装在硬盘的boot sector,就不需要stage1.5

论坛徽章:
15
射手座
日期:2014-02-26 13:45:082015年迎新春徽章
日期:2015-03-04 09:54:452015年辞旧岁徽章
日期:2015-03-03 16:54:15羊年新春福章
日期:2015-02-26 08:47:552015年亚洲杯之卡塔尔
日期:2015-02-03 08:33:45射手座
日期:2014-12-31 08:36:51水瓶座
日期:2014-06-04 08:33:52天蝎座
日期:2014-05-14 14:30:41天秤座
日期:2014-04-21 08:37:08处女座
日期:2014-04-18 16:57:05戌狗
日期:2014-04-04 12:21:33技术图书徽章
日期:2014-03-25 09:00:29
发表于 2014-06-19 11:10 |显示全部楼层
kerryxi 发表于 2014-06-19 10:53
找了一下以前的grub-0.97代码确认了一下,stage1.5和stage2都是带有文件系统模块的。

stage2的源文件依赖 ...

感谢!还有个问题,你确认stage2是放在硬盘的固定扇区上的?这个好像不太对,我看我的环境中:
[root@A10097139 grub]# ll /boot/grub
total 273
-rw-r--r--. 1 root root     70 Oct 12  2012 device.map
-rw-r--r--. 1 root root  13380 Oct 12  2012 e2fs_stage1_5
-rw-r--r--. 1 root root  12620 Oct 12  2012 fat_stage1_5
-rw-r--r--. 1 root root  11748 Oct 12  2012 ffs_stage1_5
-rw-------  1 root root    921 May 30 18:01 grub.conf
-rw-r--r--. 1 root root  11756 Oct 12  2012 iso9660_stage1_5
-rw-r--r--. 1 root root  13268 Oct 12  2012 jfs_stage1_5
lrwxrwxrwx. 1 root root     11 Oct 12  2012 menu.lst -> ./grub.conf
-rw-r--r--. 1 root root  11956 Oct 12  2012 minix_stage1_5
-rw-r--r--. 1 root root  14412 Oct 12  2012 reiserfs_stage1_5
-rw-r--r--. 1 root root   1341 May 29  2012 splash.xpm.gz
-rw-r--r--. 1 root root    512 Oct 12  2012 stage1
-rw-r--r--. 1 root root 125976 Oct 12  2012 stage2
-rw-r--r--. 1 root root  12024 Oct 12  2012 ufs2_stage1_5
-rw-r--r--. 1 root root  11364 Oct 12  2012 vstafs_stage1_5
-rw-r--r--. 1 root root  13964 Oct 12  2012 xfs_stage1_5
/boot分区上能看到stage2和stage1.5的文件,如果是放在固定扇区、不依赖文件系统的话,这个应该看不到吧?

论坛徽章:
0
发表于 2014-06-19 13:24 |显示全部楼层
回复 13# humjb_1983


    stage2有两种安装方式,可以固定在boot sector,也可以放在硬盘上面,和grub的安装程序有关。你的机器的情况是正常的。

论坛徽章:
15
射手座
日期:2014-02-26 13:45:082015年迎新春徽章
日期:2015-03-04 09:54:452015年辞旧岁徽章
日期:2015-03-03 16:54:15羊年新春福章
日期:2015-02-26 08:47:552015年亚洲杯之卡塔尔
日期:2015-02-03 08:33:45射手座
日期:2014-12-31 08:36:51水瓶座
日期:2014-06-04 08:33:52天蝎座
日期:2014-05-14 14:30:41天秤座
日期:2014-04-21 08:37:08处女座
日期:2014-04-18 16:57:05戌狗
日期:2014-04-04 12:21:33技术图书徽章
日期:2014-03-25 09:00:29
发表于 2014-06-19 13:42 |显示全部楼层
如果stage2是放在文件系统中的,那么就说明放在MBR中的stage1就必须要识别文件系统了,但问题又来了,MBR总共就这么丁点大,看似不太可能再这么有限的空间中实现相关的文件系统识别吧?
感谢!

论坛徽章:
4
酉鸡
日期:2014-03-21 23:19:50狮子座
日期:2014-08-01 22:11:40酉鸡
日期:2015-01-10 21:31:442015年辞旧岁徽章
日期:2015-03-03 16:54:15
发表于 2014-06-19 14:42 |显示全部楼层
感觉还是没搞清楚啊。。。

论坛徽章:
15
射手座
日期:2014-02-26 13:45:082015年迎新春徽章
日期:2015-03-04 09:54:452015年辞旧岁徽章
日期:2015-03-03 16:54:15羊年新春福章
日期:2015-02-26 08:47:552015年亚洲杯之卡塔尔
日期:2015-02-03 08:33:45射手座
日期:2014-12-31 08:36:51水瓶座
日期:2014-06-04 08:33:52天蝎座
日期:2014-05-14 14:30:41天秤座
日期:2014-04-21 08:37:08处女座
日期:2014-04-18 16:57:05戌狗
日期:2014-04-04 12:21:33技术图书徽章
日期:2014-03-25 09:00:29
发表于 2014-06-19 15:30 |显示全部楼层
kerryxi 发表于 2014-06-19 15:07
回复 15# humjb_1983

你的意思是:stage2固定放在文件系统(boot分区上的)的固定的扇区上?但这个如何实现?文件系统都是按照自己的磁盘布局方式来存放文件数据,如果能将固定扇区上的数据转换为文件系统中可识别的文件格式?为何ls /boot/grub/能看到stage2文件?

另外,你说的“boot区”具体是啥概念?MBR就一个扇区吧?你说的“64个sectors”是啥?
谢谢!

论坛徽章:
0
发表于 2014-06-19 16:54 |显示全部楼层
回复 18# humjb_1983


    你的意思是:stage2固定放在文件系统(boot分区上的)的固定的扇区上?但这个如何实现?文件系统都是按照自己的磁盘布局方式来存放文件数据,如果能将固定扇区上的数据转换为文件系统中可识别的文件格式?为何ls /boot/grub/能看到stage2文件?

-> 这个是先安装好linux系统,stage2在/boot/grub上面,grub安装程序能够读出stage2文件的物理扇区地址。 这样stage2相当于是固定在磁盘上面了。

另外,你说的“boot区”具体是啥概念?MBR就一个扇区吧?你说的“64个sectors”是啥?
-》MBR是1个扇区,但MBR到第一个硬盘系统分区之间还有63个空闲扇区,这个到网上搜搜即可,这个是通用的MBR分区规范。

论坛徽章:
15
射手座
日期:2014-02-26 13:45:082015年迎新春徽章
日期:2015-03-04 09:54:452015年辞旧岁徽章
日期:2015-03-03 16:54:15羊年新春福章
日期:2015-02-26 08:47:552015年亚洲杯之卡塔尔
日期:2015-02-03 08:33:45射手座
日期:2014-12-31 08:36:51水瓶座
日期:2014-06-04 08:33:52天蝎座
日期:2014-05-14 14:30:41天秤座
日期:2014-04-21 08:37:08处女座
日期:2014-04-18 16:57:05戌狗
日期:2014-04-04 12:21:33技术图书徽章
日期:2014-03-25 09:00:29
发表于 2014-06-21 09:35 |显示全部楼层
stage2在/boot/grub上面,grub安装程序能够读出stage2文件的物理扇区地址
---/boot/grub是在文件系统种的,grub安装程序如何能读出扇区地址?需要先能识别文件系统?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

DTCC2020中国数据库技术大会

【架构革新 高效可控】2020年12月21日-23日第十一届中国数据库技术大会将在北京隆重召开。

大会设置2大主会场,20+技术专场,将邀请超百位行业专家,重点围绕数据架构、AI与大数据、传统企业数据库实践和国产开源数据库等内容展开分享和探讨,为广大数据领域从业人士提供一场年度盛会和交流平台。

http://dtcc.it168.com


大会官网>>
  

北京盛拓优讯信息技术有限公司. 版权所有 16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122
中国互联网协会会员  联系我们:huangweiwei@it168.com
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP