【Linux】【Basis】Grub

GRUB BootLoader详解
本文深入探讨GRUB(BootLoader)的工作原理,包括grublegacy的不同运行阶段、核心功能及设备识别方式。同时介绍了GRUB命令行接口的使用方法、配置文件详解以及如何通过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

 

转载于:https://www.cnblogs.com/demonzk/p/6297279.html

内容概要:本文系统介绍了算术优化算法(AOA)的基本原理、核心思想及Python实现方法,并通过图像分割的实际案例展示了其应用价值。AOA是一种基于种群的元启发式算法,其核心思想来源于四则运算,利用乘除运算进行全局勘探,加减运算进行局部开发,通过数学优化器加速函数(MOA)和数学优化概率(MOP)动态控制搜索过程,在全局探索与局部开发之间实现平衡。文章详细解析了算法的初始化、勘探与开发阶段的更新策略,并提供了完整的Python代码实现,结合Rastrigin函数进行测试验证。进一步地,以Flask框架搭建前后端分离系统,将AOA应用于图像分割任务,展示了其在实际工程中的可行性与高效性。最后,通过收敛速度、寻优精度等指标评估算法性能,并提出自适应参数调整、模型优化和并行计算等改进策略。; 适合人群:具备一定Python编程基础和优化算法基础知识的高校学生、科研人员及工程技术人员,尤其适合从事人工智能、图像处理、智能优化等领域的从业者;; 使用场景及目标:①理解元启发式算法的设计思想与实现机制;②掌握AOA在函数优化、图像分割等实际问题中的建模与求解方法;③学习如何将优化算法集成到Web系统中实现工程化应用;④为算法性能评估与改进提供实践参考; 阅读建议:建议读者结合代码逐行调试,深入理解算法流程中MOA与MOP的作用机制,尝试在不同测试函数上运行算法以观察性能差异,并可进一步扩展图像分割模块,引入更复杂的预处理或后处理技术以提升分割效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值