文章版权归本人所有,未经同意,请勿转载!
-
前提说明
-
- OS: Ubuntu 20.04 amd64
- 启动方式: BIOS
- 版本: grub2-2.02
- 磁盘分区表类型:MBR分区表
- 磁盘文件系统: EXT4
- 安装命令形式: grub-install dev
-
-
安装过程
-
复制文件
注:如果安装时指定了参数--compress,会在目的地保存压缩后的文件,同时文件名不变
-
- 将/usr/lib/grub/i386-pc/*.mod文件复制到/boot/grub/i386-pc/
- 将下列文件从/usr/lib/grub/i386-pc/复制到/boot/grub/i386-pc/
efiemu32.o, efiemu64.o, moddep.lst, command.lst, fs.lst, partmap.lst, parttool.lst, video.lst, crypto.lst, terminal.lst, modinfo.sh
- 将/usr/share/locale/*/LC_MESSAGES/grub.mo复制到/boot/grub/locale/*.mo
- 将/usr/share/locale-langpack/*/LC_MESSAGES/grub.mo复制到/boot/grub/locale/*.mo
- 将/usr/share/grub/themes/starfield/下的常规文件(即S_ISREG文件)全部复制到/boot/grub/themes/startfield/
- 将/usr/share/grub/unicode.pf2复制到/boot/grub/fonts/unicode.pf2
- 向文件/boot/grub/grubenv中写入1024字符,其中首行写入“# GRUB Environment Block”,剩余部分用“#”填充
-
-
生成core.img
- 将下列内容按顺序组装成/boot/grub/i386-pc/core.img:
- diskboot.img, lzma_decompress.img,kernel.img,相关模块,"/boot/grub"所在路径信息
- 其中文件源自/usr/lib/grub/i386-pc/。组装过程中,会进行相关修改。组装形式如下图所示:
-
将/usr/lib/grub/i386-pc/boot.img文件复制到/boot/grub/i386-pc/
-
将/boot/grub/i386-pc/core.img写入到磁盘从第2个扇区起始的空间,尾部按扇区对齐部分会填充0。
-
将/boot/grub/i386-pc/boot.img写入到磁盘的第1个扇区,写入时,会做如下修改
注:修改时,文件/boot/grub/i386-pc/boot.img不会改变
-
如果觉得本文不错,欢迎打赏