无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 4213|回复: 7
打印 上一主题 下一主题

[求助] grub2 中md5sum的使用方式

[复制链接]
跳转到指定楼层
1#
发表于 2017-3-14 15:02:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
想在grub启动时对内核文件进行校验,目前看到md5sum -c 这个命令可以检测文件的完成性,但是如果MD5验证失败后就不启动内核,这个grub.cfg 关于md5sum这一段该怎么写?
2#
发表于 2017-3-15 20:14:49 | 只看该作者
请教一下md5sum -c是怎么用的?

点评

我先在ubuntu系统里面使用命令md5sun initrd.img-4.4.0-57-generic >/boot/file.md5 生成initrd.img-4.4.0-57-generic文件的md5校验文件。然后重启ubuntu,进入grub2 的command界面,然后在grub输入md5sum -c /boot  详情 回复 发表于 2017-3-16 11:56
回复

使用道具 举报

3#
 楼主| 发表于 2017-3-16 11:56:26 | 只看该作者
wintoflash 发表于 2017-3-15 20:14
请教一下md5sum -c是怎么用的?

我先在ubuntu系统里面使用命令md5sun initrd.img-4.4.0-57-generic >/boot/file.md5  生成initrd.img-4.4.0-57-generic文件的md5校验文件。然后重启ubuntu,进入grub2 的command界面,然后在grub输入md5sum -c /boot/file.md5 -p /boot/ 这个命令可以通过这个file.md5文件校验initrd.img-4.4.0-57-generic这个文件,如果initrd.img-4.4.0-57-generic文件被修改过则会校验失败,没有修改则校验成功。我现在想通过校验结果来决定是否启动系统。现在遇到的问题是手动执行md5sum -c /boot/file.md5 -p /boot/ 可以做正确判断,但是现在遇到的问题不能依据这个执行结果做逻辑判断

点评

命令执行失败,返回值为1,执行成功,返回值为0。根据这个用if判断应该可以吧。  详情 回复 发表于 2017-3-16 12:05
回复

使用道具 举报

4#
发表于 2017-3-16 12:05:32 | 只看该作者
helloxixi 发表于 2017-3-16 11:56
我先在ubuntu系统里面使用命令md5sun initrd.img-4.4.0-57-generic >/boot/file.md5  生成initrd.img-4.4 ...

命令执行失败,返回值为1,执行成功,返回值为0。根据这个用if判断应该可以吧。

点评

a=$(md5sum -c /boot/file.md5 -p /boot/) 这个命令取不到返回值,执行报错,是这样取返回值吗  详情 回复 发表于 2017-3-16 17:11
回复

使用道具 举报

5#
 楼主| 发表于 2017-3-16 17:11:14 | 只看该作者
wintoflash 发表于 2017-3-16 12:05
命令执行失败,返回值为1,执行成功,返回值为0。根据这个用if判断应该可以吧。

a=$(md5sum -c /boot/file.md5 -p /boot/)  这个命令取不到返回值,执行报错,是这样取返回值吗

点评

md5sum -c /boot/file.md5 -p /boot/ a=$? 试一试。  详情 回复 发表于 2017-3-16 17:40
回复

使用道具 举报

6#
发表于 2017-3-16 17:40:31 | 只看该作者
helloxixi 发表于 2017-3-16 17:11
a=$(md5sum -c /boot/file.md5 -p /boot/)  这个命令取不到返回值,执行报错,是这样取返回值吗

md5sum -c /boot/file.md5 -p /boot/
a=$?
试一试。

点评

谢谢 可以了 把命令改成这样就可以获取到返回值,成功返回0,失败返回1 ,命令如下: md5sum -c /boot/file.md5 -p /boot/ a=${?}  详情 回复 发表于 2017-3-16 18:50
用你的方法能拿到返回值,但是文件被修改过和没有被修改过返回值都是0。我猜可能是命令执行是成功的,所以返回值都是0 但是校验成功了输出OK,文件被修改校验失败了输出failed 所以无论是ok,还是failed命令的返回  详情 回复 发表于 2017-3-16 18:03
回复

使用道具 举报

7#
 楼主| 发表于 2017-3-16 18:03:44 | 只看该作者
wintoflash 发表于 2017-3-16 17:40
md5sum -c /boot/file.md5 -p /boot/
a=$?
试一试。

用你的方法能拿到返回值,但是文件被修改过和没有被修改过返回值都是0。我猜可能是命令执行是成功的,所以返回值都是0 但是校验成功了输出OK,文件被修改校验失败了输出failed  所以无论是ok,还是failed命令的返回值都是0 除非命令报错
回复

使用道具 举报

8#
 楼主| 发表于 2017-3-16 18:50:23 | 只看该作者
wintoflash 发表于 2017-3-16 17:40
md5sum -c /boot/file.md5 -p /boot/
a=$?
试一试。

谢谢  可以了  把命令改成这样就可以获取到返回值,成功返回0,失败返回1 ,命令如下:
md5sum -c /boot/file.md5 -p /boot/
a=${?}
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-1 12:05

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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