学习 Linux_01: 引导程序
学习 Linux_01: 引导程序
当PC启动时,执行ROM中的BIOS程序:首先自检,然后从引导驱动器上的主引导记录(MBR)加载第一个扇区。MBR包含主分区表,因此可执行代码少于512byte,这部分代码叫做:第一阶段启动加载程序。加载过程为,加载MBR->运行,发现标记为active的引导驱动器上主分区->加载分区引导记录->运行该记录加载该分区一组块。
当一个引导程序获取控制权之后,它可能做的一件事就是加载另一个引导程序。这称为链式加载(chain loading)
GRUB(Grand Unified Bootloader)
GRUB包含三个文件:
stage1:引导扇区引导程序的备份,只有512字节(前446字节为引导程序),作用是在系统启动时装载STAGE1.5/2并将控制权交给后者
stage1.5:(选择装入)用来识别不同文件系统格式的stage2,由于紧接着mbr,fs再怎么也只能从0面1柱面1扇区开始,这样就两个好处:一来stage1可以方便的找到他,二来stage2可以通过它来解释,stage1.5是为了配合stage2安装的,例如当初安装stage2的时候如果是安装在了ext2文件系统上,stage1.5就是用来解释ext2的文件。
stage2:除了加载自己,所有功能都由它实现
start.s:加载stage1.5或stage2
整个过程为:
Bios->stage1->start.s(->stage1.5)->stage2
恢复
另一个安装损坏了MBR(本质上是stage1部分坏了)
比如又一次安装了windows,此时覆盖掉了stage1,只要想办法进入到linux,运行grub-install就可以了。具体的方法是通过启动盘(软盘,U盘,安装盘)
移动一个分区(本质上是stage2搬家了)
避免这个问题的方法是使用UUIDs,这样只需要更新配置文件而不需要更新/etc/fsab,在使用USB驱动器的时候特别有用
另一个方法是使用一个独立的boot分区,这个分区不易变动,专职启动(将stage2装于此)
构建一个自含式启动软盘或 CD-ROM
将stage1~stage2都装在CD-ROM或软盘上,用来启动
另外学到的一些知识:
grub-install命令是安装stage1到mbr或者dbr,:
grub-install /dev/sda 或
grub-install '(hd0)'
grub-install /dev/sda11或
grub-install '(hd0,10)'
grub自带命令root,setup是配置整个过程的,是按照默认的方式运行(通过help得到的知识是:自动安装grub到root指定的设备,使用的是root指定设备上的映像)
也可以将stage1和stage2直接拷贝到软盘中,这样会破坏fs,使用的是dd命令进行拷贝
转载于:https://www.cnblogs.com/observer/archive/2011/10/04/2199058.html
学习 Linux_01: 引导程序相关推荐
- 学习 Linux,101: 引导程序
概述 在本文中,学习如何为一个 Linux 系统设计一个磁盘分区布局.您将学习: 为独立的分区或磁盘分配文件系统和交换空间: 根据系统的预定用途调整设计: 确保系统能够启动. 本文讨论 PC 引导过程 ...
- 学习 Linux,101: 引导系统
2019独角兽企业重金招聘Python工程师标准>>> 系列文章: http://www.ibm.com/developerworks/cn/views/linux/libraryv ...
- linux 0.01内核分析与操作系统设计 pdf,《Linux 0.01内核分析与操作系统设计——创造你自己的操作系统》...
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 readme 本光盘为<Linux 0.0.1内核分析与操作系统设计--创造你自己的操作系统>一书的配套光盘,读者可自由取其源文件做学习,研究 ...
- linux1.0内核下载,《Linux 0.01 内核分析与操作系统设计》(Linxu 0.01Source)
中文名: Linux_0_01_内核分析与操作系统设计 英文名: Linxu 0.01Source 发行时间: 2003年 地区: 大陆 对白语言: 普通话 简介: 清华 卢军<Linux0.0 ...
- Linux0.1源码分析,《Linux 0.01内核分析与操作系统设计——创造你自己的操作系统》...
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 readme 本光盘为<Linux 0.0.1内核分析与操作系统设计--创造你自己的操作系统>一书的配套光盘,读者可自由取其源文件做学习,研究 ...
- 谈谈如何学习Linux操作系统?
本文首先向 "技术成就梦想"博主致敬,http://ixdba.blog.51cto.com/2895551/569329,感谢他所付出的诸多努力.科研项目以及未来发展驱动,lin ...
- linux网络配置命令笔记,初学者学习linux笔记与练习-第二天。一些基本命令以及初级网络配置...
菜鸟学习linux笔记与练习-----第二天.一些基本命令以及初级网络配置 基本命令 ??uname -a -s ??hostname显示主机名 若是要永久生效,则编辑以下文件 ??#vim /etc ...
- 如何学习Linux / 新手入门
如何学习Linux / 新手入门 一.从基础开始:常常有些朋友在Linux论坛问一些问题,不过,其中大多数的问题都是很基础的.例如:为什么我使用一个命令的时候,系统告诉我找不到该目录,我要如何限制使用 ...
- 谈谈如何学习Linux操作系统
谈谈如何学习Linux操作系统 献给初学者:为了能把这篇不错的文章分享给大家.所以请允许我暂时用原创的形式展现给大家. @hcy 更多资源:http://blog.sina.com.cn/iihcy ...
最新文章
- mysql 避免使用NULL字段
- python装饰器作用-Python装饰器的通俗理解
- java中字符串的截取
- 不懂业务创新的工程师,不是好的架构师 | 深度
- hook java_Java 实现 Hook 对鼠标键盘监听 - 沐早'S NOTEBOOK - CSDN博客
- iOS CoreAnimation
- 创建选修专业表oracle,数据库及数据表的创建与删除 (Oracle实验)
- 深度学习与神经网络概述
- WebStorm 2018.3.4破解方式
- Eclipse JSP 页面设置 charset=UTF-8
- Vue-条件判断与循环遍历
- android 文件md5校验失败怎么办,更新包md5校验失败的4个原因和解决方法!游戏lol更新md5验证失败...
- java acr122 读取数据_acr122读写器软件下载-Acr122读写软件 1.59 官方版 - 河东下载站...
- 测试通达信指标胜率的软件,如何检测通达信选股公式的成功率?不懂得可以收藏起来自己测一下...
- 二阶带阻有源滤波器设计与仿真测试
- CSS3相比CSS新增哪些功能
- gateway断言工厂Path,Weight
- shader篇-阴影
- Aras Innovator: AML包
- H264编码常用参数整理
热门文章
- windows服务器修改端口号,windows服务器修改远程连接端口图解
- Spring中BeanPostProcessors后置处理器到底在哪里拦截
- java做日历怎么对齐日期_如何使用Java日历从日期中减去X天?
- java线程池笔记及相关代码
- STM32看门狗总结
- 阿里云centos mysql_阿里云ECS服务器CentOS7上安装MySql服务-阿里云开发者社区
- GCC __builtin_expect与kernel指令序列优化
- [BUUCTF-pwn]——[HarekazeCTF2019]baby_rop2
- redis3.0 java spring_spring整合redis以及使用RedisTemplate的方法
- 利用正则匹配数字后边的字符_图解正则——字符匹配