免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3202 | 回复: 17

[系统管理] linux启动的疑问 [复制链接]

论坛徽章:
0
发表于 2012-05-28 13:05 |显示全部楼层
/boot目录可以挂载到单独的分区,也可以不单独建立分区,比如只有一个/分区。
这个是怎么理解的?
1.假设/boot单独分区:
读取/boot是在挂载/之前,也在加载驱动之前,那就是说驱动还没加载就可以读/boot分区了?在读取/boot分区之前启动的引导程序已经有磁盘驱动了?
2.假设/boot在分区/内,没有单独分区
这时需要先挂载/吧,但是/的挂载不是在读取/boot之后吗?

这种问题是怎么理解的?



论坛徽章:
3
CU十二周年纪念徽章
日期:2013-10-24 15:41:34狮子座
日期:2014-03-27 15:44:382015年辞旧岁徽章
日期:2015-03-03 16:54:15
发表于 2012-05-28 13:32 |显示全部楼层
机器最先读grub分区,/boot会在grub记录的分区。不管/boot是单独的还是在/下

论坛徽章:
13
15-16赛季CBA联赛之同曦
日期:2016-01-28 19:52:032015亚冠之北京国安
日期:2015-10-07 14:28:19NBA常规赛纪念章
日期:2015-05-04 22:32:03处女座
日期:2015-01-15 19:45:44卯兔
日期:2014-10-28 16:17:14白羊座
日期:2014-05-24 15:10:46寅虎
日期:2014-05-10 09:50:35白羊座
日期:2014-03-12 20:52:17午马
日期:2014-03-01 08:37:27射手座
日期:2014-02-19 19:26:54子鼠
日期:2013-11-30 09:03:56狮子座
日期:2013-09-08 08:37:52
发表于 2012-05-28 13:52 |显示全部楼层
本帖最后由 ulovko 于 2012-05-29 13:31 编辑

BIOS 通过INT 13跟MBR 聊天,MBR把剩下的事情都交托给boot loader(grub)
kernel和initrd 都是通过BIOS 的 INT 13 来读取的,这个跟驱动没有任何关系的!!
BIOS 至少可以读取1024cylinder 以内的数据!!! (不要告诉我你不知道)

脑了半天你一直想驱动的事呢。。
  关于INT 13 : http://en.wikipedia.org/wiki/INT_13
GNU GRUB Manual 1.99.html.zip (70.99 KB, 下载次数: 16)

论坛徽章:
0
发表于 2012-05-28 13:53 |显示全部楼层
启动时一阶引导程序是从mbr加载的
一阶引导程序接着从/boot分区加载二阶引导程序

其实我的疑问是,这个一阶引导程序包含了磁盘驱动?还是说不需要加载什么磁盘驱动一阶引导程序就能读取磁盘分区?
还是我哪里理解有误?

论坛徽章:
0
发表于 2012-05-28 13:56 |显示全部楼层
多谢楼上两位,我先看看

论坛徽章:
4
CU大牛徽章
日期:2013-03-13 15:29:07CU大牛徽章
日期:2013-03-13 15:29:49CU大牛徽章
日期:2013-03-13 15:30:192015年迎新春徽章
日期:2015-03-04 09:57:09
发表于 2012-05-28 23:42 |显示全部楼层
楼主应该先理解linux系统的树形结构/是根,下面的任意木有都能挂在一个分区上。

论坛徽章:
2
午马
日期:2015-01-27 11:22:392015年辞旧岁徽章
日期:2015-03-03 16:54:15
发表于 2012-05-29 00:51 |显示全部楼层
本帖最后由 to407 于 2012-05-29 00:51 编辑

回复 1# anonymous0502


    我想你的疑问在于,  为什么在启动时候 先去尝试找/boot/分区,再去找/分区.


    这个问题很好回答, 因为这边/boot/分区和/分区不是同一个分区.  而这两个分区在挂载到os文件系统之前,  我们不是以"/boot/" 或者 "/" 来寻找这些分区的, 而是以类似
  1. (hd0,0) 或者 /dev/sda1
复制代码
这些寻盘方式来完成

拿一个grub2的例子来讲给你听
### BEGIN /etc/grub.d/10_linux ###
menuentry 'Fedora (3.3.5-2.fc16.x86_64)' --class fedora --class gnu-linux --class gnu --class os {
        load_video
        set gfxpayload=keep
        insmod gzio
        insmod part_msdos
        insmod ext2
       set root='(hd0,msdos7)'
        search --no-floppy --fs-uuid --set=root ca50b452-528c-4f2e-a34b-e55d432ea446
        echo 'Loading Fedora (3.3.5-2.fc16.x86_64)'
        linux   /boot/vmlinuz-3.3.5-2.fc16.x86_64 root=UUID=ca50b452-528c-4f2e-a34b-e55d432ea446 ro rd.md=0 rd.lvm=0 rd.dm=0  KEYTABLE=us quiet SYSFONT=latarcyrheb-sun16 rhgb rd.luks=0 LANG=en_US.UTF-8
        echo 'Loading initial ramdisk ...'
        initrd /boot/initramfs-3.3.5-2.fc16.x86_64.img
}

论坛徽章:
0
发表于 2012-05-29 10:05 |显示全部楼层
回复 7# to407

谢谢回复,其实我是很好奇为什么可以在加载驱动之前就能读取/boot或/磁盘分区,驱动的加载不是在加载内核之后吗,但是内核的加载是需要从/boot里读取。
英文资料内容较多还没看多少,所以这里还没明白。
   

论坛徽章:
381
CU十二周年纪念徽章
日期:2014-01-04 22:46:58CU大牛徽章
日期:2013-03-13 15:32:35CU大牛徽章
日期:2013-03-13 15:38:15CU大牛徽章
日期:2013-03-13 15:38:52CU大牛徽章
日期:2013-03-14 14:08:55CU大牛徽章
日期:2013-04-17 11:17:19CU大牛徽章
日期:2013-04-17 11:17:32CU大牛徽章
日期:2013-04-17 11:17:37CU大牛徽章
日期:2013-04-17 11:17:42CU大牛徽章
日期:2013-04-17 11:17:47CU大牛徽章
日期:2013-04-17 11:17:52CU大牛徽章
日期:2013-04-17 11:17:56
发表于 2012-05-29 10:06 |显示全部楼层
楼主应该研究下grub的stage1,1.5,2....

论坛徽章:
0
发表于 2012-05-29 10:11 |显示全部楼层
回复 9# chenyx

在看,官方那个有关引导启动的说明写得太少了,只有看grub manual了{:2_166:}
   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP