linux – GRUB stage 1.5的代码驻留在磁盘上的位置是什么?它加载的地址是什么?
|
我安装了grub v1.98,在拆解MBR后,我找到了以下不明白的代码片段:
看来这段代码试图设置阶段1.5代码的磁盘地址,然后加载并运行它.但是,我怎么能弄清楚它试图读取哪个物理块?更重要的是,舞台1.5代码的目的地是什么? 0x7000? 我指的是Windows 7的MBR,后续启动代码加载0x7c00.鉴于MBR首先在地址0x7c00加载,它包含一段代码,将MBR从0x7c00复制到0x0600,然后在原始代码损坏的情况下分支到0x0600.将加载阶段1.5代码与地址0x7000冲突的原始代码?更重要的是,我还发现:
在MBR的开头.似乎代码试图做同样的事情,在Windows 7的MBR中将原始MBR从0x7c00复制到0x0600,除了第一个jmp指令.这些代码实际上会执行吗?如果是,那么什么时候会控制跳跃.(我相信答案是肯定的,但是被领先的jmp困惑了).
最佳答案
GRUB 1.98是GRUB版本2.在版本2中,不再有阶段1.5. 在GRUB v2阶段1加载core.img,它可以存储在任何LBA48位置,通常在MBR和第一个分区之间,但它也可以存储在分区中.在GPT的非EFI情况下,应为其创建自定义分区.该位置硬连线到第1阶段. 另见:http://www.gnu.org/software/grub/manual/grub.html#Images (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- linux – 如何将信号从一个程序发送到另一个程序?
- linux – 什么是一些信息丰富且有用的shell提示? (Bash,cs
- linux – 如何在Red Hat 3.4.6-3中安装yum
- linux – 如何配置php-fpm将日志记录到nginx virtualhosts中
- 如何将参数传递给Linux守护进程/服务
- CentOS系统yum源配置修改、yum安装软件包源码包出错解决办法
- 如何在Linux中为普通用户禁用CD-ROM和USB?
- linux – 用户在密码安全性升级后无法使用crontab
- linux / gcc:来自C/C++程序的ldd功能
- Linux内核:来自“open”系统调用的printk不起作用
