![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
GRUB
文章平均质量分 96
Vinc
溪云初起日沉阁,山雨欲来风满楼。
展开
-
GRUB4DOS(十二)适用于FAT32的分区引导扇区启动代码
/* 这份代码将编译后将放到GRLDR文件的0x400开始的地方(即第三个扇区) * 这个扇区的内容将被塞到分区引导扇区 * 其中0x00-0x59见文章下方表1。 * 0x5a - 0x1fc放引导代码。 * 最后两个字节固定是0xAA55。 * * 这份代码将加载到0000:7C00执行。 * 作用是在一个fat32分区中寻找根目录下的GRLD...翻译 2020-02-21 00:07:01 · 1115 阅读 · 0 评论 -
GRUB4DOS(十一) grldr可启动的软盘或硬盘分区的说明
摘抄自:http://bbs.znpc.net/viewthread.php?tid=5587********************************************************************************* grldr可启动的软盘或硬盘分区的说明 ************************...转载 2020-02-20 15:48:55 · 1173 阅读 · 0 评论 -
GRUB4DOS(十) 关于grldr.mbr和grldr
grldr.mbr和任何系统都没有关系,它只负责寻找根目录下的grldr并将控制权交予它,然后grldr通过LST文件加载引导菜单,当LST文件不存在时则进入命令行由客户实用命令引导系统。********************************************************************************* grldr.mbr - 怎样将grld...转载 2020-02-17 16:00:57 · 3307 阅读 · 0 评论 -
GRUB4DOS(九)常用设备类型及map命令用法示例
设备类型:(fd0) 第一个软盘(fd1) 第二个软盘(hd0) 第一个硬盘(hd1) 第二个硬盘(hd-1) 最后一个硬盘(hd) 最后一个硬盘之后的硬盘号码,创建新的虚拟硬盘时使用(cd0) 第一个光驱,相当于 (hd32),由 cdrom --init 创建(cd1) 第二个光驱,...转载 2020-02-13 18:07:37 · 2307 阅读 · 0 评论 -
GRUB4DOS(八)map命令用法和基本原理
map用法:"map [--status] [--mem[=RESERV]] [--hook] [--unhook] [--unmap=DRIVES] [--rehook] [--floppies=M] [--harddrives=N] [--memdisk-raw=RAW] [--a20-keep-on=AKO] [--safe-mbr-hook=SMH] [--int13-scheme=S...原创 2020-02-13 17:49:56 · 2065 阅读 · 0 评论 -
GRUB4DOS(七) chainloader命令源码注释
chainloader命令的使用方法:"chainloader [--force] [--load-segment=LS] [--load-offset=LO][--load-length=LL] [--skip-length=SL] [--boot-cs=CS] [--boot-ip=IP][--ebx=EBX] [--edx=EDX] [--sdi] [--disable-a20]...原创 2020-02-11 22:26:00 · 2219 阅读 · 0 评论 -
GRUB4DOS(六) find命令的实现
find命令的使用方法:"find [--set-root[=DIR]] [--devices=DEVLIST] [--ignore-floppies] [--ignore-cd] [FILENAME] [CONDITION]",说明:在所有设备的所有分区中搜索文件名“ FILENAME”(首先在当前启动设备上寻找),打印包含该文件并满足“ CONDITION”要求的设备列表。 “ C...原创 2020-02-10 17:23:41 · 1965 阅读 · 0 评论 -
GRUB(五)stage2.c注释
接上一篇,最后调用的函数是cmain(),这个函数在stage2.c中定义。在cmain()中主要做以下事情:寻找启动菜单配置文件。 如找不到则尝试寻找程序中的内置菜单。 如果找到则尝试解析并执行该启动菜单配置中的脚本。 如两者都没有找到,则进入命令行模式。主要函数如下//void//reset (void);static int config_len, menu_le...原创 2020-02-10 02:11:47 · 589 阅读 · 0 评论 -
GRUB(四)common.c注释
接上一篇,asm.s中main函数最后调用的是init_bios_info,这个函数将调用bios中断功能读取内存,磁盘,cdrom等信息。其实现如下:/* This queries for BIOS information. */voidinit_bios_info(void){#ifndef STAGE1_5 unsigned long cont, memtmp, addr;...原创 2020-02-08 23:48:17 · 553 阅读 · 0 评论 -
GRUB(三) ASM.S注释
ASM.S生成的代码将放置到第三扇区,紧跟Start.S生成的第二扇区代码。如上一篇代码中展现的这个代码将被start.s加载到内存地址的0x8200或者0x2200中执行。#define ASM_FILE#include "shared.h"#ifdef STAGE1_5# define ABS(x) ((x) - EXT_C(main) + 0x2200)#els...原创 2020-02-08 16:32:11 · 509 阅读 · 0 评论 -
GRUB(二) 扇区1的引导代码注释(start.S)
/* * GRUB -- GRand Unified Bootloader * Copyright (C) 1999,2000,2001 Free Software Foundation, Inc. * * This program is free software; you can redistribute it and/or modify * it under th...原创 2020-02-06 18:50:42 · 515 阅读 · 0 评论 -
GRUB(一) stage1.S源码分析
/* -*-Asm-*- */#include <stage1.h>/*BIOS 自检后将MBR加载到0x7C00,ABS(x)计算地址x在内存中的绝对地址*/#define ABS(x) (x-_start+0x7c00)/* Print message string */#define MSG(x) movw $ABS(x), %si; call message...原创 2020-02-04 23:41:57 · 679 阅读 · 0 评论