皮皮网

【线上教育源码】【多仓库源码】【logbook源码讲解】grub 源码分析

2024-12-27 17:46:15 来源:城主红包源码搭建

1.源码方式安装特定版本 Linux Kernel 步骤
2.GRUB2基本命令
3.LINUX系统下grub菜单的源码几个技巧
4.如何制作grub启动光盘

grub 源码分析

源码方式安装特定版本 Linux Kernel 步骤

       源码方式安装特定版本Linux Kernel 步骤详解

       本文将详细介绍通过源码方式安装指定版本Linux Kernel(本文以6.2.0版本为例)的步骤。在安装过程中,分析您需要下载软件仓库(upstream),源码配置内核以适应特定需求,分析并最终完成内核的源码安装。此外,分析线上教育源码您将学习如何更新Grub配置以确保系统使用新内核启动。源码

       安装前准备:确认操作系统为RHEL(Linux)环境,分析并拥有root权限。源码所有命令默认在root权限下执行。分析确保基础的源码Linux开发工具已安装,安装过程中如需补充工具则会自动进行。分析多仓库源码

       步骤1:下载并切换到特定版本的源码Linux Kernel仓库

       1.1 下载Linux Kernel仓库至/home目录,后续命令将自动安装于适当位置,分析无需更改文件名。源码对于6.2.0版本,无需特别修改文件名。

       步骤2:配置内核以自定义属性

       2.1 使用配置工具自定义内核属性。有多种方式:完全重新配置或导入并修改之前的配置文件(.config),最终生成新的配置文件(.config),旧配置文件则命名为(.config.old)。

       步骤3:编译Linux Kernel生成bzImage文件

       步骤4:默认安装Linux Kernel模块,存储于/lib/modules文件夹。logbook源码讲解

       步骤5:安装Linux Kernel,自动安装至/boot文件夹下,包含System.map-6.2.0-upstream、initramfs-6.2.0-upstream.img、vmlinuz-6.2.0-upstream,更新链接关系至新生成文件。

       更新Grub配置

       1.1 设置启动内核,使用--set-default参数后跟启动的Linux Kernel版本。

       1.2 选择启动cmdline(非必要),使用--remove-args和--args参数添加或删除cmdline参数。

       1.3 查看Grub配置。mybatis源码接口

       1.4 生成新的Grub配置文件,位置根据服务器启动方式决定。

       重新启动计算机并配置Linux Kernel

       若服务器包含其他Linux Kernel版本,指定特定版本内核并设置启动命令行参数。

       1.1 修改启动命令行参数(若需要)。

       1.2 重新安装Linux Kernel,删除旧版本文件。操作原因:安装过程自动链接相关文件,重新设置链接关系。删除旧文件标记为.old。

       1.3 重新生成/boot/grub/grubenv文件,蜜罐系统源码并验证配置。

       1.4 重启计算机。

       检查安装结果

       通过命令检查Linux Kernel版本,确认安装过程无误。

       本文详细介绍了源码方式安装特定版本Linux Kernel的完整步骤,包括下载仓库、配置内核、编译及安装内核,以及更新Grub配置。最后,通过重启计算机验证安装结果。希望此指南能够帮助您顺利完成Linux Kernel的安装。

GRUB2基本命令

       GRUB2是一个强大的启动管理器,提供了丰富的命令以满足各种操作需求。首先,你可以通过执行lsmod命令来查看当前已经加载的模块,这有助于了解系统的模块状态。如果需要装载某个模块,可以使用insmod mod_name,卸载则用rmmod mod_name,对于不清楚的命令,help [command]会提供详细的使用指导。

       对于目录操作,ls [options] [dir]功能强大。默认情况下,它会列出所有硬盘设备,如果提供参数,就会显示指定目录的内容。完整的命令列表可以在/boot/grub/command.lst文件中查阅,包括但不限于boot、halt、reboot等。

       值得注意的是,很多命令在模块中,如果命令未找到,只需通过insmod加载对应的模块即可。你可以通过定制内核,将所需的命令包包含其中,以满足特定需求。获取源代码通常使用CVS,但存在一个已知bug,影响启动时的菜单显示,可以通过下载并应用补丁解决,补丁文件为grub2-menu.diff。

       编译步骤如下:首先,使用CVS获取源代码,然后对代码进行补丁处理。接着,执行./configure和./make编译。定制内核时,可以使用./grub-mkimage命令,如fat和pc模块用于支持不同的文件系统。最后,将生成的内核文件(如core.img)、启动文件、模块、配置文件等复制到特定的/boot/grub目录下,并编写配置文件grub.cfg来完成启动管理器的设置。

扩展资料

       Grub 2 是新一代的Grub,它实现了一些Grub中所没有的功能:

LINUX系统下grub菜单的几个技巧

       grub软件包的安装

       1,安装rpm或者源码包

       2,安装到mbr中

       *编写/boot/grub/grub.conf文件

       *grub-install  /dev/hda

       制作grub启动盘(将自动载软盘上创建一个/boot目录)

       mke2fs  /dev/fd0

       mount /dev/fd0 /mnt/floppy

       grub-install --root-directory=/mnt/floppy/'(fd0)'

       利用grub引导盘恢复被覆盖的引导系统

       先安装windows在安装linux,grub可以很好的识别并启动windows,这个过程中grub并不能直接加载windows核心引导文件,而是调用windows自身的引导器boot.ini通常是windows所在分区的引导扇区,但是再次安装windows系统时,将重写mbr.这就造成了只能启动新安装的windows,而无法启动linux,因为grub本身就安装在mbr中,被新安装windows的引导覆盖了

       grubroot                    (查看根)

       grubfind /boot/grub/grub.conf   (查看grub.conf在哪个分区)

       grubroot (hd0,0)

       grubsetup (hd0)               (把grub重新安装到hd0的mbr中)

       grub配置文件说明

       default saved 指定默认启动项为上次保存值

       default 0  默认从第一个菜单启动

       splashimage (hd0,0) /boot/grub/splash.xpm.gz  指定grub背景

       timeout 指定菜单延迟的时间

       title Red Hat linux  指定菜单的名称

       root (hd0,0)  设置grub的根设备 root为linux内核所在的分区

       kernel /boot/vmlinuz-2.4.-8 ro root=LABEL=/  加载linux内核

       initrd /boot/initrd-2.4.-8.img 使用initrd命令加载镜像文件

       title winxp  定义windows启动菜单

       map (hd0) (hd1)  用map命令交换磁盘或分区在BIOS中的标志符,用于启动在第二个硬盘中的windows

       map (hd1) (hd0)

       root (hd1,0)    设置真实windows所在的分区为grub的根设备

       makeactive    设置根设备为活动分区(针对windows不能从非活动分区启动)

       chainloader+1  调用Windows分区的启动引导器来引导windows系统

       savedeafult -- 保存当前启动项为默认启动菜单

如何制作grub启动光盘

       å°†ä¸‹è½½å¾—到的grldr直接改名为grldr.bif,然后使用UltraISO新建一个ISO镜像,选择“启动光盘-加载引导信息”加载grldr.bif。

       è¿™æ˜¯ï¼Œä½ æ–°å»ºçš„ISO镜像已经具备了光盘启动功能,grub菜单文件menu.lst此时应该放在光盘根目录,不然grldr启动后找不到。

       ç½‘上不少文章讲述了如何将grub装在软盘上,当硬盘引导信息被破坏时,这张软盘就可以派上用场。但是对于一些没有软驱的用户,或者使用软驱不方便的笔记本用户,如果能用光盘引导系统,则会方便很多。本文将说明如何制作这张光盘。

       é¦–先假设我们有一个运作良好的linux发行版(含cdrtools软件包),cd或dvd刻录机(已经配置好,可以在linux运作正常,关于如何设置,网上的文章很多),grub软件包。

       æˆ‘的系统是redhat linux 9.0,但这个发行版的grub包中不含有我们最需要的stage2_eltorito文件(这个文件是制作grub启动光盘的最重要的文件)所以我下载了0.版的grub,地址:ftp://alpha.gnu.org/gnu/grub/grub-0..tar.gz

       æŽ¥ä¸‹æ¥æ˜¯å®‰è£…grub,和多数源码包安装的方式一样,我们需要:

       tar zxvf grub-0..tar.gz

       cd grub-0.

       ./configure

       make

       make install

       å¥½äº†ï¼Œgrub安装完成(得到了stage2_eltorito,为了节省大家的时间,我提取了这个文件,如果哪位可以上传供大家下载,mail我)

       çŽ°åœ¨æˆ‘们这样做,可以得到自己的grub光盘镜像:

       mkdir iso

       mkdir -p iso/boot/grub

       cp /stage2_eltorito所在的路径/stage2_eltorito iso/boot/grub

       cp /boot/grub/menu.lst iso/boot/grub

       mkisofs -R -b boot/grub/stage2_eltorito -no-emul-boot -boot-load-size 4 -boot-info-table -o grub.iso iso

       å¥½äº†ï¼ŒçŽ°åœ¨grub.iso就是你所需要的镜像了

       ç„¶åŽç”¨cdrecord或者前端把镜像刻在cdr/rw就可以了

       cdrecord -v dev=0,0,0 /grub.iso的路径/grub.iso speed=8

       ä¸Šé¢çš„命令,根据自己的情况修改

       å¥½äº†ï¼Œè¿™æ ·æˆ‘们就得到了一张grub启动光盘。

       å½“然,由于制作grub启动光盘只需要多k字节,所以在制作iso的时候,你可以放一些其他有用的东西在iso文件夹下,做成镜像。