使用GRUB

Installing GRUB using grub-install 平时总是弄得grub出错进不来系统,给我来个grub-rescue,我用livecd的Ubuntu进入系统后,重新安装grub到mbr,方法如下: grub-install --boot-directory=/mnt/boot /dev/sda 其中的boot目录就是挂载的boot分区,如果没有boot分区,那就是根目录 下面是安装文档的原文: 3.1 Installing GRU 阅读详情

使用GRUB   转发自http://www.osdever.net/tutorials/grub.php
GRUB的主页为 http://www.gnu.org/software/grub/grub.en.html.
=======================================================================
获取GRUB
=======================================================================
源码:
 ftp://alpha.gnu.org/gnu/grub/grub-0.90.tar.gz
二进制文件:
 ftp://alpha.gnu.org/gnu/grub/grub-0.90-i386-pc.tar.gz
DOS和Windows用户需要PARTCOPY或RAWRITE工具:
 http://www.execpc.com/~geezer/johnfine/index.htm#zero
 http://uranus.it.swin.edu.au/~jn/linux/rawwrite.htm
 http://www.tux.org/pub/dos/rawrite/
=======================================================================
编译GRUB
=======================================================================
UNIX
 configure ; make
DOS和Windows
 ...
=======================================================================
在没有文件系统的的软盘上安装GRUB
=======================================================================
1.得到GRUB的二进制文件(stage1和stage2)
2.把stage1和stage2连接成一个文件:
 (DOS) copy /b stage1 + stage2 boot
 (UNIX) cat stage1 stage2 > boot
3.把boot文件绝对写入软盘:
 (DOS) rawrite boot a:
  -或者-
 (DOS) partcopy boot 0 168000 -f0
 (UNIX) cat boot > /dev/fd0

 由于boot远小于0x168000字节,PARTCOPY将会报错,这样写就没问题了。
=======================================================================
将GRUB安装在带文件系统的软盘上
=======================================================================
1.按上面的方法做一个无文件系统的可启动GRUB盘。
2.把stage1和stage2复制到被格式化成GRUB可认的软盘上。使用GRUB的setup命令,
  这些文件必须方在/boot/grub目录下:
 (DOS) mkdir a:/boot
       mkdir a:/boot/grub
       copy stage1 a:/boot/grub
       copy stage2 a:/boot/grub
 (UNIX) mount /dev/fd0 /mnt
        mkdir /mnt/boot
        mkdir /mnt/boot/grub
        cp stage1 /mnt/boot/grub
        cp stage2 /mnt/boot/grub
3.GRUB被安到软盘上后,stage2文件不能被修改,删除,磁盘整理,或者移动。如
  果被改动,这个盘就不能再启动了。为了防止这样,可以把这个文件设置成只读。
 (DOS) attrib +r +s stage2
 (UNIX) chmod a-w stage2
  这个DOS命令把stage2文件设置成系统只读文件。这是为了防止磁盘整理的需要。
  提示:stage1文件被复制到启动区当中。如果这个文件被移动或删除,这个盘也
  不能启动。
4.重新从没有文件系统的GRUB盘启动电脑。...
5a.
....

=======================================================================
制作一个多引导内核
=======================================================================
多引导内核头
------------
无论什么格式,你的内核必须有一个多引导内核头。此头
1.必须是以双字(四字节)边界对齐。
2.必须了内核文件的头8k内。

***提示:在.text段的头8K内不是说必须从文件起始开始。

ELF内核
-------
GRUB可以直接识别ELF格式文件。如果你的内核是ELF格式,你可以如下简单的使用
多引导头:
 MULTIBOOT_PAGE_ALIGN equ 1<<0
 MULTIBOOT_MEMORY_INFO equ 1<<1
 MULTIBOOT_HEADER_MAGIC equ 0x1BADB002
 MULTIBOOT_HEADER_FLAGS equ MULTIBOOT_PAGE_ALIGN | MULTIBOOT_MEMORY_INFO
 CHECKSUM equ -(MULTIBOOT_HEADER_MAGIC + MULTIBOOT_HEADER_FLAGS)
 ; 多引导头 (in NASM syntax)
 align 4
 dd MULTIBOOT_HEADER_MAGIC
 dd MULTIBOOT_HEADER_FLAGS
 dd CHECKSUM
把这段代放在你的内核代码的开始处,然后编译你的内核。编译完成后,你可以用
GRUB的mbchk测试一下你的内核是否编译成多引导的。
内核装载地址
------------
GRUB从ELF格式内核中读取物理地址(装载地址;LMA)。这个值必须
1. at or above 1 meg, and
2. below the end of physical RAM
If the load address is below 1 meg, you get error #7:
 Loading below 1MB is not supported
*** 提示: 这是GRUB的限制, 不是多引导的。
If the load address is beyond the end of RAM, you get error #28:
 Selected item cannot fit into memory
And if you use a very high address like 0xC0000000, the math
apparently overflows, and you get error #7 again.
*** 提示: mbchk不检测这些错误。
通常,物理地址和VMA一样,可以通过连接脚本或连接命令设置("ld -Ttext=0x100000 ...")
如果你的ld版本支持,物理地址和虚拟地址可以在连接脚本中通过AT在分开设置:
 OUTPUT_FORMAT("elf32-i386")
 ENTRY(entry)
 virt = 0xC0000000; /* 3 gig */
 phys = 0x100000; /* 1 meg */
 SECTIONS
 { .text virt : AT(phys)
   { code = .;
     *(.text)
     . = ALIGN(4096); }
   .data : AT(phys + (data - code))
   { data = .;
     *(.data)
     . = ALIGN(4096); }
   .bss : AT(phys + (bss - code))
   { bss = .;
     *(.bss)
     *(COMMON)
     . = ALIGN(4096); }
   end = .; }
连接后,使用objdump -h测试地址是否都正确。
(还未完成.....)

GRUB配置文件详解(/boot/grub2/grub.cfg、/etc/default/grub、/etc/grub.d/) 编辑。 阅读详情

相关推荐

Claude skill-creator插件深度解析:从创建到优化的完整技能工程化体系

摘要:skill-creator是Anthropic推出的Claude技能开发插件,提供从创建到优化的全流程工程化支持。其核心架构采用渐进式披露机制和多Agent协作模式,包含Grader、Analyzer等专业评估组件。该插件支持自动化评测系统,通过测试用例管理、并行执行和结果聚合实现技能验证;提供迭代优化算法,基于数据驱动改进技能性能。典型应用场景包括标准化技能开发、自动化测试验证和触发优化,显著降低开发门槛并提升技能质量。

虚心若愚 988

Proteus 8 Professional发生关键仿真错误(疑似中文路径导致)

Proteus 8 Professional发生关键仿真错误(疑似中文路径导致) 在软件仿真时出现错误 显示好多红色代码 疑似之前把电脑名命名为中文了 所以缓存路径也是中文 导致Proteus 8 Professional发生关键仿真错误 在以后安装类似软件时都会因为中文路径造成出错 建议要是不嫌麻烦一不做二不休重装系统以绝后患! 解决办法 一.在C盘新建一个纯英文路径与名称 c盘的根目录下 新建Doraemon 文件夹 如下图: 然后我们来到第二步 以Windows...

qq_51802315的博客 3万+

Android11 关于三方应用获取su权限

SELinux,全称Security-Enhanced Linux,是一种基于Linux内核的安全机制。它通过强制访问控制(MAC)来增强Linux系统的安全性,如果不禁用SELinux,完成下面的修改可能会导致设备进入Recovery界面!adb shell getenforce 为Permissive(宽容模式),查看报错日志,发现是客户apk想使用su命令提权,但是没有权限!对于保护系统资源和防止未经授权访问非常有帮助!系统这边做修改,让su权限下放到三方应用.客户的apk运行报错。

sinat_37429535的博客 1901

the desired address is beyond limit for this PLC

问题描述: 通过 Java连接西门子PLC(S7-1200)学习中,出现错误:the desired address is beyond limit for this PLC 下面是测试代码 S7Connector connector = S7ConnectorFactory .buildTCPConnector() .withHost("192.168.0.195") .withPo

Henry_Lin_Wind的博客 2349

汇川AM系列PLC玩转CNC:手把手教你用File模式读取G代码文件(附避坑指南)

本文详细介绍了如何使用汇川AM系列PLC的File模式读取G代码文件,涵盖从CAD设计到PLC配置的全流程。特别针对路径格式、文件类型等常见问题提供避坑指南,帮助工程师快速实现CNC加工的自动化控制。

weixin_33582311的博客 406

全双工AI语音交互:从原理到实践,构建实时对话系统

语音交互技术正从传统的半双工模式向全双工模式演进,以实现更自然、实时的对话体验。全双工交互的核心原理在于模拟人类电话通话,允许双方同时发送和接收音频流,这需要流式语音识别(Streaming ASR)和实时自然语言理解(Real-time NLU)技术的深度整合。其技术价值在于显著降低交互延迟,支持智能打断(Barge-in),从而提升人机对话的流畅度和自然度。在应用场景上,全双工技术是智能助手、实时翻译、车载语音及无障碍交互等领域的关键突破。本文以微软MAI Realtime等模型为例,探讨如何利用开源技

weixin_33693070的博客 404

GRUB Error 28: Selected item cannot fit into memory 解决方法

OK, for anyone else who might come across this, here is the solution: Go to the console and type dmesg > filenameofyourchoice.txt Examine filenameofyourchoice.txt Find this section (was at th

zgl07的专栏 1万+

使用STARTER V5.6软件将项目文件下载到S120驱动器控制单元CF卡中的具体方法演示

使用STARTER V5.6软件将项目文件下载到S120驱动器控制单元CF卡中的具体方法演示

Robot_PLC_HMI_Automation 1913

linux1400错误,Linux基础知识:轻松解决Linux系统Grub错误

27:Unrecognizedcommand解释:无法识别的命令28:Selecteditemcannotfitintomemory解释:选择的对象无法被加载到内存中。例子:[root@monitorboot]#ddif=/dev/zeroof=vmlinuz-2.4.20-31.9bs=1024count=1seek=1读入了1+0个块输出了1+0个块grub》kernel/vmlinuz-2....

weixin_34323587的博客 827

C#串口通信从入门到精通(5)——打开、关闭串口

本文详细介绍如何打开串口

qq_34059233的博客 6783

Dify 第 7 篇 Dify 应用介绍 + 聊天助手&Agent 应用关键点说明

本文介绍了Dify应用的核心概念与使用方法。Dify是基于大模型构建的实际场景应用,提供API、WebApp和易用界面。包含5种应用类型:聊天助手、文本生成、Agent、对话流和工作流。创建方式有模板创建、空白应用和DSL文件三种。重点讲解了聊天助手和Agent应用的关键功能:聊天助手支持提示词优化、知识库引用、文件处理等;Agent应用则强调推理能力、工具调用和任务自动化。文章还详细介绍了应用的调试、发布和管理工具,为开发者提供了全面的应用构建指南。

甘蓝的专栏 1886

GRUB, GRUB2 and GRUB4DOS

用GRUB制作可引导光盘mkisofs -R -b boot/grub/stage2_eltorito -no-emul-boot -boot-load-size 4 -boot-info-table -o grub.iso iso  CDlinuxs mkisofs.sh#!/bin/sh## build CDlinux ISO image

digwtx的专栏 4411

STM32 HAL SDADC DMA

由于项目需要使用STM32F373单片机的SDADC功能对电位计进行检测,网上资料比较少,踩了很多坑,下面进行总结。

weixin_44597885的博客 1196

【GRUB】GRUB2代码初步解析

初步解析GRUB2代码。

jiangwei0512的博客 7257

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

grub 升级到 grub2

为什么80%的码农都做不了架构师?>>> ...

weixin_34128237的博客 1398

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

【GRUB】GRUB2编译与使用

介绍如何编译和使用GRUB2。

jiangwei0512的博客 1万+

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

linux gnu grub,GNU GRUB命令的使用方法与GNU GRUB详细介绍

GNU GRUB 和GRUB是GRand Unified Bootloader的缩写,它是一个多重操作系统启动管理器。用来引导不同系统,如windows,linux。在X86架构的机器中,Linux、BSD 或其它Unix类的操作系统中GRUB、LILO 是大家最为常用,应该说是主流。在PowerPC 架构的机器中,如果安装了Linux的Powerpc 版本,大多是用yaboot 多重引导管理器,...

weixin_36079387的博客 3892

GRUB的使用

读取MBR之二 GRUB使用点介绍一下GRUB的使用。 grub是linux比较常用的bootloader(linux 下还有lilo),它可以用来引导多种文件系统(windows linux dos等). Red Hat Linux 7.2起,grub(GTand Unified Bootloader)取代lilo成为默认的启动装载程序。 MBR只是硬盘的第一个sector内的一个区块,4...

digitalkee的博客 764

Grub调试总结

最近在龙芯平台调研Grub的实现,在这过程中仔细研究了Grub的代码,就做个总结吧! 首先Grub在uefi上也是以一个Grub.efi的方式运行的,但是这个efi是放在操作系统下面的boot/EFI/下面的,uefi在运行过程总后期加载Grub的时候会去这个目录load这个Grub模块。load到内存之后,就开始执行。这里面不做详细的介绍是如何load以及如何运行的,这部分内容都在uefi中有源...

太初有道 6153

开机进入grub或grub rescue怎么办

grub>root (hd0,0) ### 指定grub设定的分区,即内核所在分区 grub>setup (hd0,0) grub>kernel /vmlinuz-2.6.32-573.el6.x86_64 ro root=/dev/mapper/VolGroup-lv_root grub> initrd /initramfs-2.6.32-573.el6.x86_64.img grub>boot ### 第三条命令可以是kernel 或者linux,文件名可通过tab补全

niaooer的博客 4360

GRUB2的配置方法【涉及/etc/default/grub,/etc/grub.d/*】

介绍    GRUB 2 通过运行/etc/grub.d/folder  目录下的脚本来 建立配置文件 (grub.cfg) ,并且/etc/default/grub这个文件也可以配置。update-grub命令(手动运行,或更新内核的时候会被执行)  可以自动更新grub.cfg .这个命令会激活上面的脚本,并且会寻找系统中存在的操作系统和内核。一旦发现操作系统或内核,那么它们会被加入到 G

duanlove(技术路途)专栏 2万+

grub2详解

大约2002年左右,Yoshinori K. Okuji在PUPA重写了GRUB,使他更清晰,安全,健壮,更强大,PUPA最后把他重命名为GRUB2,把原来版本的grub命名为GRUB Legacy,2005年发行了grub legacy(0.97),2007 GNU/Linux 开始在小范围内使用GRUB2,到2009年底大多数主要的发行版都开始默认安装GRUB2。      虽然grub

xiedapang_pang的博客 7171

Linux GRUB配置

linux grub2配置介绍

czw 4897

grub介绍

grub介绍什么是grub?grub的版本grub的安装grub配置文件grub命令如何进入grub命令模式通过grub命令引导操作系统 什么是grub? GRUB 是一个引导加载程序,可以引导各种各样的操作系统,如 FreeBSD、NetBSD、OpenBSD、GNU HURD 和 DOS,以及 Windows 95、98、NT 和 2000。 grub的版本 目前,GRUB分成GRUB le...

weixin_41649658的博客 2187

grub知识详解

文章目录1. grub legacy2. 安装 /boot/grub目录:**3. /boot/grub/grub.conf**splashimage背景文件,4. grub加密 1. grub legacy grub: GRand Unified Bootloader grub就是一种老的bootloader grub 0.97: grub legacy grub 2.x: grub2 grub legacy: stage1: mbr第一个扇区(446字节)不足以找到内核(文件系统驱动肯定比446字节大

weixin_45697293的博客 2579
fscience
博客等级 码龄20年 1粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值