基于LFS-6.3的 将 GRUB-0.97 换为 grub-1.97.2(grub2)

2024-05-27 16:08
文章标签 grub 6.3 lfs grub2 1.97 0.97

本文主要是介绍基于LFS-6.3的 将 GRUB-0.97 换为 grub-1.97.2(grub2),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

从这拿代码
http://ftp.octave.org/gnu/grub/参考资料
https://www.cnblogs.com/f-ck-need-u/p/7094693.html
1. 编译安装
  • 参考
mkdir build
cd build
../configure --prefix=/usr           \--sysconfdir=/etc       \--disable-grub-emu      \--disable-grub-emu-usb  \--disable-grub-fstest   \--disable-efiemu
make
make install---------------安装后的文件/usr# ls -R
.:
bin  etc  lib  sbin  share./bin:
grub-editenv  grub-fstest  grub-mkelfimage  grub-mkimage  grub-mkrescue./etc:
grub.d./etc/grub.d:
00_header  10_linux  30_os-prober  40_custom  README./lib:
grub./lib/grub:
grub-mkconfig_lib  i386-pc  update-grub_lib./lib/grub/i386-pc:
acpi.mod         cat.mod         efiemu64.o         hdparm.mod     lspci.mod       part_gpt.mod    reboot.mod    usb_keyboard.mod
affs.mod         cdboot.img      efiemu.mod         hello.mod      lvm.mod         partmap.lst     reiserfs.mod  usb.mod
afs_be.mod       chain.mod       elf.mod            help.mod       mdraid.mod      part_msdos.mod  scsi.mod      usbms.mod
afs.mod          cmp.mod         ext2.mod           hexdump.mod    memdisk.mod     part_sun.mod    search.mod    usbtest.mod
aout.mod         command.lst     extcmd.mod         hfs.mod        memrw.mod       parttool.lst    serial.mod    vbeinfo.mod
ata.mod          configfile.mod  fat.mod            hfsplus.mod    minicmd.mod     parttool.mod    setjmp.mod    vbe.mod
ata_pthru.mod    config.h        font.mod           iso9660.mod    minix.mod       password.mod    sfs.mod       vbetest.mod
at_keyboard.mod  cpio.mod        fs_file.mod        jfs.mod        mmap.mod        pci.mod         sh.mod        vga.mod
befs_be.mod      cpuid.mod       fshelp.mod         jpeg.mod       moddep.lst      play.mod        sleep.mod     vga_text.mod
befs.mod         crc.mod         fs.lst             kernel.img     msdospart.mod   png.mod         tar.mod       video_fb.mod
biosdisk.mod     datehook.mod    fs_uuid.mod        keystatus.mod  multiboot.mod   probe.mod       terminfo.mod  video.mod
bitmap.mod       date.mod        gfxterm.mod        linux16.mod    normal.mod      pxeboot.img     test.mod      videotest.mod
blocklist.mod    datetime.mod    gptsync.mod        linux.mod      ntfscomp.mod    pxecmd.mod      tga.mod       xfs.mod
boot.img         diskboot.img    grub_script.tab.h  lnxboot.img    ntfs.mod        pxe.mod         true.mod      xnu.mod
boot.mod         dm_nv.mod       gzio.mod           loadenv.mod    ohci.mod        raid5rec.mod    udf.mod       xnu_uuid.mod
bsd.mod          drivemap.mod    halt.mod           loopback.mod   part_acorn.mod  raid6rec.mod    ufs1.mod
bufio.mod        echo.mod        handler.lst        lsmmap.mod     part_amiga.mod  raid.mod        ufs2.mod
build_env.mk     efiemu32.o      handler.mod        ls.mod         part_apple.mod  read.mod        uhci.mod./sbin:
grub-install  grub-mkconfig  grub-mkdevicemap  grub-probe  grub-setup./share:
grub  info  man./share/grub:./share/info:./share/man:
man1  man8./share/man/man1:./share/man/man8:
2. 配置 Using GRUB to Set Up the Boot Process
这里说的是 安装 bootloader
1. 安装 boot.img 到 MBR
2. 安装 core.img 到 /boot/grub
3. 生成 /boot/grub/grub.cfg 并配置 , (这个文件被 /boot/grub/core.img 解析 )
  • 2.1 Install the GRUB files into /boot/grub (安装 core.img 到 /boot/grub)
grub-install --grub-setup=/bin/true /dev/sda // 只安装 /boot/grub/core.img , 不安装 boot.img 到 MBR-----------------------
安装后的文件# ls -R
.:
acpi.mod         cdboot.img      elf.mod      hexdump.mod    memdisk.mod     part_msdos.mod  scsi.mod      usb_keyboard.mod
affs.mod         chain.mod       ext2.mod     hfs.mod        memrw.mod       part_sun.mod    search.mod    usb.mod
afs_be.mod       cmp.mod         extcmd.mod   hfsplus.mod    menu.lst        parttool.lst    serial.mod    usbms.mod
afs.mod          command.lst     fat.mod      iso9660.mod    minicmd.mod     parttool.mod    setjmp.mod    usbtest.mod
aout.mod         configfile.mod  font.mod     jfs.mod        minix.mod       password.mod    sfs.mod       vbeinfo.mod
ata.mod          core.img        fs_file.mod  jpeg.mod       mmap.mod        pci.mod         sh.mod        vbe.mod
ata_pthru.mod    cpio.mod        fshelp.mod   kernel.img     moddep.lst      play.mod        sleep.mod     vbetest.mod
at_keyboard.mod  cpuid.mod       fs.lst       keystatus.mod  msdospart.mod   png.mod         stage1        vga.mod
befs_be.mod      crc.mod         fs_uuid.mod  linux16.mod    multiboot.mod   probe.mod       stage2        vga_text.mod
befs.mod         datehook.mod    gfxterm.mod  linux.mod      normal.mod      pxeboot.img     tar.mod       video_fb.mod
biosdisk.mod     date.mod        gptsync.mod  lnxboot.img    ntfscomp.mod    pxecmd.mod      terminfo.mod  video.mod
bitmap.mod       datetime.mod    gzio.mod     loadenv.mod    ntfs.mod        pxe.mod         test.mod      videotest.mod
blocklist.mod    device.map      halt.mod     loopback.mod   ohci.mod        raid5rec.mod    tga.mod       xfs.mod
boot.img         diskboot.img    handler.lst  lsmmap.mod     part_acorn.mod  raid6rec.mod    true.mod      xnu.mod
boot.mod         dm_nv.mod       handler.mod  ls.mod         part_amiga.mod  raid.mod        udf.mod       xnu_uuid.mod
bsd.mod          drivemap.mod    hdparm.mod   lspci.mod      part_apple.mod  read.mod        ufs1.mod
bufio.mod        echo.mod        hello.mod    lvm.mod        part_gpt.mod    reboot.mod      ufs2.mod
cat.mod          efiemu.mod      help.mod     mdraid.mod     partmap.lst     reiserfs.mod    uhci.mod
  • 2.2 Generate /boot/grub/grub.cfg (生成 /boot/grub/grub.cfg 并配置)
grub-mkconfig -o /boot/grub/grub.cfg/boot/grub/grub.cfg 文件内容
---------------#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by /usr/sbin/grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#### BEGIN /etc/grub.d/00_header ###
set default=0
set timeout=5
### END /etc/grub.d/00_header ###### BEGIN /etc/grub.d/10_linux ###             ------------------ 1
### END /etc/grub.d/10_linux ### 			   ------------------ 2### BEGIN /etc/grub.d/30_os-prober ###
### END /etc/grub.d/30_os-prober ###### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
### END /etc/grub.d/40_custom ###
  • 2.3 测试配置 (测试/boot/grub/grub.cfg 和 /boot/grub/core.img )
// 测试过程
// 1. bios
// 2. grub(位于MBR)
// 3. 加载grub2 ,启动grub2
// 4. grub2
// 5. 加载内核,启动内核重启后,进入 grub-0.97
# grub 命令行下,执行
grub> root (hd0,1)
grub> kernel /boot/grub/core.img
grub> boot然后进入 grub-1.97.2 的命令行# hda (hd0) hda2 为 (hd0,2)
# sda (hd1) sda1 为 (hd1,1)
# grub2 命令行下,执行
set root=(hd0,2) 
linux  /boot/lfskernel-2.6.22.5   root=/dev/hda2
能正常启动
然后将 下面的代码加入 到 12行中间
menuentry "LFS 6.3 kernel 2.6 by source sysvinit from hda2" {set root=(hd0,2)linux  /boot/lfskernel-2.6.22.5   root=/dev/hda2
}
  • 2.4 Updating the Master Boot Record (安装 boot.img 到 /dev/hda 的 MBR)
// linux 命令行下
grub-setup /dev/hda
ubuntu grub 设置
/etc/default/grub
更新grub 配置 : sudo update-grub

这篇关于基于LFS-6.3的 将 GRUB-0.97 换为 grub-1.97.2(grub2)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1007953

相关文章

6.3中值滤波

目录 实验原理 示例代码1 运行结果1 示例代码2 运行结果2 实验原理 中值滤波(Median Filtering)是一种非线性滤波技术,常用于图像处理中去除噪声,特别是在保留边缘的同时减少椒盐噪声(salt-and-pepper noise)。OpenCV中的cv::medianBlur函数可以实现中值滤波。 函数原型 void medianBlur( InputAr

Ubuntu小私房(3)--Grub,Burg 的使用

Grub是什么? GNU GRUB 和GRUB是GRand Unified Bootloader的缩写,它是一个多重操作系统启动管理器。用来引导不同系统,如windows,linux。 GRUB是多启动规范的实现,它允许用户可以在计算机内同时拥有多个 操作系统 ,并在计算机启动时选择希望运行的操作系统。GRUB可用于选择 操作系统 分区上的不同 内核 ,也可用于向这些内核传递启

ubuntu 引导修复,grub2多余选项删除

问题描述:ubuntu无法启动,进入了grub界面,修复后grub2界面选项太多,只想保留需要的。 修复引导: 借助Boot Repair这个神奇的软件,可以在软件界面中一键修复ubuntu启动项 使用方法: 1、首先你需要一张ubuntu的live CD或者自启动u盘(建议和安装的是相同版本),电脑也要连接到互联网(建议是路由器自动拨号的那种,从而无需手动联网)。既然你已经装了ubunt

LFS传输大文件

问题 remote: warning: GH001: Large files detected. You may want to try Git Large File Storage 使用 Git LFS:Git LFS 旨在将大型文件存储在普通 Git 存储库之外,用轻量级引用替换它们。您可以通过运行以下命令来安装和设置 Git LFS: git lfs installgit lfs t

centos6系统编译grub-0.97

问题一:编译报错 centos5.X和centos6.X系列的系统默认使用的是grub legacy(grub-0.97)版本的引导程序,有定制化需求的就需要对grub进行编译。 尝试在centos6.5系统上进行编译: ./configure 之后报错:configure: error: GRUB requires a working absolute objcopy; upgrade y

GRUB引导程序之承前启后的start.S—源码分析

启动阶段     在查看了start.S代码之后,就会对GRUB Legacy启动阶段有了更清晰的认识。在传统的GRUB启动中,一般分为stage1、stage1.5和stage2三个阶段,当然,stage1.5是可以忽略的,这样就直接从stage1跳转到了stage2。stage1.5主要是为stage2构建其所需要的文件系统。     目前只考虑GRUB legacy,不考虑GRUB 2.

UBUNTU 系统开机没有grub启动项

这个情况下由轻到重: 1.备份/etc/default/grub文件 打开/etc/default/grub文件,找到 GRUB_HIDDEN_TIMEOUT=0 这行,使用#注释掉,变成 #GRUB_HIDDEN_TIMEOUT=0  sudo update-grub 如果没有解决,那么重新安装: sudo update-grub sudo grub-install /dev/sda s

git lfs 的使用

安装 curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bashsudo apt-get install git-lfsgit lfs instal 使用 添加大文件追踪 git lfs track "track_file": 会将"track_file"添加至.g

Java 6.3 - 定时任务

为什么需要定时任务? 常见业务场景: 1、支付10min失效 2、某系统凌晨进行数据备份 3、视频网站定时发布视频 4、媒体聚合平台每10min抓取某网站数据为己用 …… 这些场景需要我们在某个特定时间去做某些事情。 单机定时任务技术有哪些? Timer java.util.Timer 是 JDK 1.3 开始就支持的一种定时任务的实现方式。 Timer 内部使用了一个

Embarcadero Dev-C++ 6.3安装教程

1. 准备软件安装包 C++课程所需的Embarcadero Dev-C++ 6.3软件安装包如下图所示: 软件安装包已经上传到百度网盘和阿里云盘,下载链接分别为: ①百度网盘链接: https://pan.baidu.com/s/1a8BbUKrWHljbbEb5DtqxCw?pwd=hgdk ②阿里云盘链接: https://www.alipan.com/s/QyiuPhCmvKq