几种PC常见的bootloader,在损坏几次后的总结

lilo grub grub2 grub4dos

grub :
在早期的Linux系统中大多使用grub进行引导,随着grub2的推出,grub已停止开发,
现在称grub为grub lercay.其衍生版本为grub4dos,现在还在开发,其配置单通常
位于/boot/grub/menu.lst,grub又分为了stage1,stage1_5,stage2.
grub2:
GRand Unified Bootloader,version 2,其结构已经完全重写和完整。
grub2结构:/boot/grub/grub.cfg,/etc/grub.d/,/etc/default/grub.
/boot/grub/grub.cfg是启动菜单配置,和grub的menu.lst差不多,不同的是,grub.cfg是由update-grub命令生成,每次系统内核更新时都需要执行该操作,若是手动修改了该文件,下次更新时又会重刷。在这个目录下还有各种驱动,以支持各种文件系统及外设。/etc/grub.d/目录下由多种启动脚本,一个脚本对应一个启动项,
比如我的目录下是这样
00_header        10_linux      20_memtest86+  40_custom README
05_debian_theme  20_linux_xen  30_os-prober  41_custom
00_header为系统保留的启动项,主要进行一些初始设置,比如加载ext2文件系统支持,设置硬盘分区格式为MS-DOS等,10_开头的是当前系统的启动项,30_是个探测脚本,它会探测出所有分区上是否有启动记录并加入grub的启动菜单。而系统的启动顺序正式根据这些脚本来判断的,比如将30_os-prober改为06_os-prober那么,其他分区的系统就会出现在该系统之前。/etc/default/grub是一个官方给出的参数定义,包括分辨率,默认启动项,背景等。每次执行update-grub正是根据后两个目录生成grub.cfg,想手动修改增加减少启动项,修改/etc/grub.d/下文件才是一劳永逸的方法,免得系统一更新,又要重写grub.cfg.

以ubuntu发行版来说,在ubuntu9.10后便不再使用grub作为引导程序,而使用grub2作为引导程序,最新的ubuntu12.04搭载的grub2版本为1.99.系统中命令update-grub和update-grub2都是一个命令,只是做了个链接。

grub启动流程可分为MBR -> stage1 -> stage2 ->os
grub2启动变为:MBR -> Boot.img -> core.img  -> os 
与grub一样,这些镜像也都放在/boot/grub/下.现在linux内核把IDE和SATA的设备结点都改为sda sda1 sda5 sda6...一致,而grub/grub2仍采用(hd0),(hd0,0)...这样的格式,所以对应linux分区sda1(主分区)grub为(hd0,0),sda5(第一逻辑分区)为(hd0,4),手动修改grub.cfg时需要区分。

grub/grub2的修复:
两种grub的结构不同,所以修复方法也不同。
需要修复grub或者说是MBR,通常是由于中病毒或者装双系统时才会出现,对于MBR中病毒,linux还未听说。在装有linux系统的情况下,再装windows系列时,都会重写MBR。
ubuntu下:
grub修复:
使用live-cd进入系统,打开终端:
输入:
:find /boot/grub/stage1
:suso grub   //以root进入grub 终端
:root (hd0,x) //设置启动分区位置
:setup (hd0)  //写MBR到sda
:quit
:reboot
   
grub2修复:
使用live-cd进入OS,打开终端
:sudo -i
:mount 根分区目录 /mnt  //  
:grub-install --root-directory=/mnt /dev/sda  // 参数指定该命令是运行在/mnt下面的分区中的,与chroot命令一样。

另外如果只是分区里面的grub.cfg损坏,也只需要进入该分区重新生成grub.cfg即可
即:chroot /mnt update-grub  //系统根分区已经挂载到/mnt中

想grub4dos这种也可以用来修复grub,前提有个grub4dos启动盘,(为什么不是有windows,因为如果是grub引导,不能引导linux,那肯定windows也不能启动),然后进入grub终端输入:
:find --set-root /boot/grub/core.img
:kernel /boot/grub/core.img
:boot
如果能找到,则可以正常进入系统了:然后重写MBR
#:grub-install /dev/sda  

总结来说,想要修复grub(MBR部分),即变相的进入系统,然后重写,当然如果是不要linux了,只保留windows,那重写MBR方法就多了,最简单找个安装盘,进DOS执行:
fdisk mbr即可。如果不小心把linux分区直接给格式化了,那就还是直接重装系统...


### 回答1: 实现S32K144 bootloader几种方式可以分为以下几种: 1. 使用串口下载:在S32K144微控制器上,通过串口与计算机进行通信,通过串口接收来自计算机的固件数据,然后将固件写入到微控制器的Flash存储器中。这是一种简单且常见的实现方式,但下载速度较慢。 2. 使用CAN或LIN总线下载:通过使用CAN或LIN总线,将固件数据从计算机发送到S32K144微控制器。可以利用CAN或LIN总线的高速传输特性,实现更快的固件下载速度。 3. 使用USB下载:通过USB接口与计算机进行连接,利用USB接口的高速传输特性,将固件数据下载到S32K144微控制器中。这种方式常用于需要较快下载速度的应用场景。 4. 使用SD卡或EEPROM下载:将固件数据存储在SD卡或EEPROM中,然后通过读取SD卡或EEPROM中的数据,将固件下载到S32K144微控制器中。这种方式适用于没有网络连接或其他外部接口的场景。 5. 通过无线通信下载:利用无线通信技术,如Wi-Fi或蓝牙,将固件数据从计算机无线传输到S32K144微控制器中。这种方式适用于需要远程下载固件的场景。 在实现S32K144 bootloader时,需要根据具体的应用需求选择合适的方式,并通过编写相应的固件下载和存储算法来实现固件的安全、高效地下载。同时,还需考虑固件升级的稳定性、兼容性以及系统的灵活性等因素。 ### 回答2: 实现S32K144的Bootloader几种方式。一种常见的方式是通过UART或CAN总线进行固件的传输和更新。这种方式下,S32K144会通过外部UART或CAN接口与PC或其他设备进行通信,接收新的固件并进行更新。 另一种方式是使用USB进行固件传输和更新。这种方式下,S32K144可以通过USB接口连接到PC或其他设备,通过USB通信协议进行固件的传输和更新。 还有一种方式是使用SPI或I2C总线进行固件的传输和更新。这种方式下,S32K144会通过SPI或I2C接口与其他设备进行通信,接收新的固件并进行更新。 此外,还可以使用SD卡或者其他外部存储设备进行固件更新。S32K144可以通过SD卡或者其他存储设备读取新的固件文件,并进行更新。 在实现Bootloader的过程中,需要编写相应的固件代码,实现固件的接收、存储和更新功能。同时还需要注意安全性,加入合适的校验和验证机制,以确保固件的完整性和安全性。 总的来说,实现S32K144 Bootloader的方式主要包括UART/CAN、USB、SPI/I2C和外部存储设备等多种方式,具体选择取决于系统需求和设计要求。 ### 回答3: 实现S32K144 bootloader几种方式有以下几种: 1.串口加载方式:通过串口将固件或应用程序传输到目标系统的内存中。在目标系统启动时,检测串口上是否有传输请求,如果有,则进入串口加载模式,接收传输的数据并将其存储到内存中,然后从内存中执行。 2.SD卡加载方式:通过SD卡将固件或应用程序传输到目标系统的存储设备中。在目标系统启动时,检查SD卡是否插入,如果插入则进入SD卡加载模式,读取SD卡中的数据,并将其存储到内存中,然后从内存中执行。 3.以太网加载方式:通过以太网将固件或应用程序传输到目标系统的存储设备中。在目标系统启动时,检测以太网是否连接,如果连接则进入以太网加载模式,接收以太网中的数据并将其存储到内存中,然后从内存中执行。 4.USB加载方式:通过USB将固件或应用程序传输到目标系统的存储设备中。在目标系统启动时,检测USB连接状态,如果连接则进入USB加载模式,接收USB中的数据并将其存储到内存中,然后从内存中执行。 以上是实现S32K144 bootloader几种常见方式,不同的方式适用于不同的应用场景和需求。开发者可以根据具体的需求选择合适的方式来实现S32K144 bootloader
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值