无忧启动论坛

 找回密码
 注册
搜索
WEPE笔记本电脑手机维修小包 IT发烧友的必备工具最纯净的「微PE装机优盘」UEPON大师作品卡瑞飞系统和装机二合一超级U盘
杏雨梨云专业量产版USB-CD启动U盘,装机专用系统gho:最纯净好用系统下载站广告联系 QQ:184822951 微信:wuyouceo
查看: 1952|回复: 10

[求助] GRUB2如何判断当前启动介质?

  [复制链接]
发表于 2018-10-18 21:26:55 | 显示全部楼层 |阅读模式
内置变量$root输出的可以是hd0,msdos1也可以是cd0,那么怎么通过命令来判断当前是hd还是cd?仅仅是确认是硬盘或者是光盘,然后就可以自动判断加载不一样的菜单了。。。
发表于 2018-10-19 07:49:36 | 显示全部楼层
本帖最后由 wintoflash 于 2018-10-19 10:56 编辑

if regexp 'cd' "$root"; then
        menuentry "cd menu" {}
elif regexp 'hd' "$root"; then
        menuentry "hd menu" {}
fi

点评

grub2.02里面没有regexp这个命令,不知道有没有其他类似于grep的命令?  详情 回复 发表于 2018-10-19 09:51
回复

使用道具 举报

 楼主| 发表于 2018-10-19 09:51:19 | 显示全部楼层
wintoflash 发表于 2018-10-19 07:49
if regexp 'cd' "$root"; then
        menuentry "cd menu" {}
else if regexp 'hd' "$root"; then

grub2.02里面没有regexp这个命令,不知道有没有其他类似于grep的命令?

点评

有的. insmod regexp  详情 回复 发表于 2018-10-19 10:09
回复

使用道具 举报

发表于 2018-10-19 10:09:27 | 显示全部楼层
caocaofff 发表于 2018-10-19 09:51
grub2.02里面没有regexp这个命令,不知道有没有其他类似于grep的命令?

有的.
insmod regexp

点评

果然成功了,谢谢  详情 回复 发表于 2018-10-19 10:49
请教一下:对于BIOS,如何判断bootmgr所在分区是否是激活分区?  详情 回复 发表于 2018-10-19 10:18
回复

使用道具 举报

发表于 2018-10-19 10:18:32 | 显示全部楼层

请教一下:对于BIOS,如何判断bootmgr所在分区是否是激活分区?

点评

search --set=device -f /bootmgr probe --set=flag -b $device if [ "$flag" = "bootable" ]; then ... fi  详情 回复 发表于 2018-10-19 10:40
回复

使用道具 举报

发表于 2018-10-19 10:40:40 | 显示全部楼层
本帖最后由 wintoflash 于 2018-10-19 10:41 编辑
青青草 发表于 2018-10-19 10:18
请教一下:对于BIOS,如何判断bootmgr所在分区是否是激活分区?


search --set=device -f /bootmgr
probe --set=flag -b $device
if [ "$flag" = "bootable" ]; then
...
fi
只适用于msdos(mbr)分区表,不适用于gpt。

点评

谢谢!如果要判断是否是FAT分区呢?  详情 回复 发表于 2018-10-19 11:21
回复

使用道具 举报

 楼主| 发表于 2018-10-19 10:49:21 | 显示全部楼层

果然成功了,谢谢
回复

使用道具 举报

发表于 2018-10-19 11:21:11 | 显示全部楼层
本帖最后由 青青草 于 2018-10-19 11:22 编辑
wintoflash 发表于 2018-10-19 10:40
search --set=device -f /bootmgr
probe --set=flag -b $device
if [ "$flag" = "bootable" ]; then
...


谢谢!如果要判断是否是FAT(FAT16、FAT32)分区呢?

点评

probe --set=fstype -f $device  详情 回复 发表于 2018-10-19 12:33
回复

使用道具 举报

发表于 2018-10-19 12:33:09 | 显示全部楼层
青青草 发表于 2018-10-19 11:21
谢谢!如果要判断是否是FAT(FAT16、FAT32)分区呢?

probe --set=fstype -f $device

点评

probe --set=fstype -f $device if [ "$fstype" = "FAT" ]; then ... fi 这样写可以么?  详情 回复 发表于 2018-10-19 13:21
回复

使用道具 举报

发表于 2018-10-19 12:36:46 | 显示全部楼层
不错,这段命令很有用!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2019-6-27 12:14

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表