• 【Linux】【Basis】Grub


    GRUB(Boot Loader):
     
    1. grub: GRand Unified Bootloader
        grub 0.x: grub legacy
        grub 1.x: grub2
     
    2. grub legacy:
     
    2.1 运行阶段:
        stage1: mbr
        stage1_5: mbr之后的扇区,让stage1中的bootloader能识别stage2所在的分区上的文件系统;
        stage2:磁盘分区(/boot/grub/)
          PS:stage2及内核等通常放置于一个基本磁盘分区;因为bootloader没法识别非常复杂的文件系统结构,如软raid或者卷组
     
    2.2 功用:
        (1) 提供菜单、并提供交互式接口
          e: 编辑模式,用于编辑菜单;
          c: 命令模式,交互式接口;
        (2) 加载用户选择的内核或操作系统
          允许传递参数给内核
          可隐藏此菜单
        (3) 为菜单提供了保护机制
          为编辑菜单进行认证
          为启用内核或操作系统进行认证
     
    2.3 如何识别设备:
      (hd#,#)
        hd#: 磁盘编号,用数字表示;从0开始编号
        #: 分区编号,用数字表示; 从0开始编号
        例如:(hd0,0)
     
    2.3.1 grub的命令行接口
        help: 获取帮助列表
        help KEYWORD: 详细帮助信息
        find (hd#,#)/PATH/TO/SOMEFILE:
        root (hd#,#)
        kernel /PATH/TO/KERNEL_FILE: 设定本次启动时用到的内核文件;额外还可以添加许多内核支持使用的cmdline参数;
          例如:init=/path/to/init, selinux=0
        initrd /PATH/TO/INITRAMFS_FILE: 设定为选定的内核提供额外文件的ramdisk;必须与内核版本完全匹配
        boot: 引导启动选定的内核;
     
           例子:手动在grub命令行接口启动系统:
                    grub> root (hd#,#)
                    grub> kernel /vmlinuz-VERSION-RELEASE ro root=/dev/DEVICE
                    grub> initrd /initramfs-VERSION-RELEASE.img
                    grub> boot
     
    2.3.2. 配置文件:/boot/grub/grub.conf<-- /etc/grub.conf
                配置项:
                    default=#: 设定默认启动的菜单项;落单项(title)编号从0开始;
                    timeout=#:指定菜单项等待选项选择的时长;
                    splashimage=(hd#,#)/PATH/TO/XPM_PIC_FILE:指明菜单背景图片文件路径;
                    hiddenmenu:隐藏菜单;
                    password [--md5] STRING: 菜单编辑认证;
                    title TITLE:定义菜单项“标题”, 可出现多次;
                        root (hd#,#):grub查找stage2及kernel文件所在设备分区;为grub的“根”;
                        kernel /PATH/TO/VMLINUZ_FILE [PARAMETERS]:启动的内核
                        initrd /PATH/TO/INITRAMFS_FILE: 内核匹配的ramfs文件;
                        password [--md5] STRING: 启动选定的内核或操作系统时进行认证;使用grub-md5-crypt命令生成密码串
     
     
    2.3.3. 进入单用户模式:
                (1) 编辑grub菜单(选定要编辑的title,而后使用e命令);
                (2) 在选定的kernel后附加
                    1, s, S或single都可以;
                (3) 在kernel所在行,键入“b”命令;
     
    2.3.4. 安装grub:
                (1) grub-install
                    grub-install --root-directory=ROOT /dev/DISK
                 
                (2) grub
                    grub> root (hd#,#)
                    grub> setup (hd#)
     
     
    3. 练习、为运行于虚拟机上的CentOS 6添加一块新硬件,提供两个主分区;

      (1) 为硬盘新建两个主分区;并为其安装grub;

      添加新硬盘,vmware上直接add new,选择new disk,然后各种下一步,下面是添加的硬盘

    对/dev/sdb分区

    分成了sdb1和sdb2两个主分区

    格式化成ext4

    创建文件夹并且把两块盘挂在文件夹上

    安装grub在/dev/sdb1上

      (2) 为硬盘的第一个主分区提供内核和ramdisk文件; 为第二个分区提供rootfs;

    吧当前系统的内核和ramdisk文件拷贝到新的boot目录下,注意名字要保持一致(版本号一致,不写也算一致)

      (3) 为rootfs提供bash、ls、cat程序及所依赖的库文件;

    bash

    ls,用循环的方式拷贝的

    cp的就不截图了

    for i in $(ldd /bin/cp|grep -o "/lib64/.* "); do cp -f $i /mnt/root$i; done

    测试下能不能用

      (4) 为grub提供配置文件;

      (5) 将新的硬盘设置为第一启动项并能够正常启动目标主机;

     创建一个新的机器,使用刚才的磁盘作为硬盘,启动时候记得在内核的引导选项上加selinux=0

  • 相关阅读:
    Hibernate知识回顾
    Lucene搜索过程的核心类
    JSP知识回顾
    Java Swing 知识回顾
    Spring知识回顾
    javaDocking 学习
    Lucene搜索范围
    MINA 学习
    java 阿拉伯人民币转换为中文
    oracle提高查询效率方法
  • 原文地址:https://www.cnblogs.com/demonzk/p/6297279.html
Copyright © 2020-2023  润新知