本文主要是介绍基于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
能正常启动
然后将 下面的代码加入 到 1行 2行中间
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)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!