grub2与grub区别

时间:2022-11-20 08:24:58
  • 关于版本:
  • GRUB2 使之版本号为1.98之后的grub;GRUB legacy(版本为0.97)是指GRUB,而非GRUB2,grub是指 grub1.97 和以前的,grub 2 指的是 grub1.98和以后的,现在已经发布grub2.00 了。一般还是把grub2 称作grub。

  • 注意,目前我所知道的grub 2 一般用于linux下,windows下继续使用古董 grub4dos0.4.4 顶多使用chenall网友修改的 0.4.5 0.4.6。grub4dos应该是从grub1.97修改到windows下的

  • 检测版本:
  • $ grub-install -v grub-install (GNU GRUB 1.98-1ubuntu10)
  • GRUB2与GRUB的区别:
  • 1.GRUB2引导菜单启动项是从/boot自动生成的,不是有menu.lst配置的。
    2.执行grub-update之后会自动更新启动项列表,自动添加有效的操作系统项目
    3.分区编号发生变化:第一个分区现在是1而不是0,但第一个设备仍然以0开始计数,如hd0

  • 配置文件的不同更为明显:
  • /boot/grub/menu.lst - 已经被/boot/grub/grub.cfg代替。
    /boot/grub.cfg - 即使是root也不要编辑它,它在每次update-grub后自动生成。
    /etc/default/grub - 改变引导菜单外观的主要配置文件
    /etc/grub.d/ - 各种用于生成grub.cfg的脚本文件,每次update-grub时会执行里面的文件
    下面列出几个有用的:
    /etc/grub.d/40_custom - 用户自定义的配置文件模板,它不会在update-grub之后被覆盖。

  • 相关命令:
  • grub-install [OPTION] <install_device>例如,下面这条语句可以在设备sda上恢复grub,详见重装Windows后,修复Ubuntu引导菜单

    grub-install --root-directory=/mnt /dev/sda

    update-grub等价于:(在11.10中,这条指令竟然还是去更新/boot/grub/menu.lst)

  • sudo make-kpkg --initrd --revision 01fcc(必须数字开头)--append-to-version -20120224 --config menuconfig kernel_image modules_image

  • 在上层目录里找到deb安装包,用dpkg安装,生成vmlinuz后,再

    grub-mkconfig -o /boot/grub/grub.cfg
  • thinkpad@ubuntu:/boot/grub$ sudo grub-mkconfig -o /boot/grub/grub.cfg
    Generating grub.cfg ...
    Found linux image: /boot/vmlinuz-3.2.7-20120224
    Found initrd image: /boot/initrd.img-3.2.7-20120224
    Found linux image: /boot/vmlinuz-3.0.0-12-generic
    Found initrd image: /boot/initrd.img-3.0.0-12-generic
    Found Windows 7 (loader) on /dev/sda1
    Skipping Windows 7 (loader) on Wubi system
    done