grub2 中md5sum的使用方式
想在grub启动时对内核文件进行校验,目前看到md5sum -c 这个命令可以检测文件的完成性,但是如果MD5验证失败后就不启动内核,这个grub.cfg 关于md5sum这一段该怎么写? 请教一下md5sum -c是怎么用的? 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/ 可以做正确判断,但是现在遇到的问题不能依据这个执行结果做逻辑判断 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判断应该可以吧。 wintoflash 发表于 2017-3-16 12:05
命令执行失败,返回值为1,执行成功,返回值为0。根据这个用if判断应该可以吧。
a=$(md5sum -c /boot/file.md5 -p /boot/)这个命令取不到返回值,执行报错,是这样取返回值吗 helloxixi 发表于 2017-3-16 17:11
a=$(md5sum -c /boot/file.md5 -p /boot/)这个命令取不到返回值,执行报错,是这样取返回值吗
md5sum -c /boot/file.md5 -p /boot/
a=$?
试一试。 wintoflash 发表于 2017-3-16 17:40
md5sum -c /boot/file.md5 -p /boot/
a=$?
试一试。
用你的方法能拿到返回值,但是文件被修改过和没有被修改过返回值都是0。我猜可能是命令执行是成功的,所以返回值都是0 但是校验成功了输出OK,文件被修改校验失败了输出failed所以无论是ok,还是failed命令的返回值都是0 除非命令报错 wintoflash 发表于 2017-3-16 17:40
md5sum -c /boot/file.md5 -p /boot/
a=$?
试一试。
谢谢可以了把命令改成这样就可以获取到返回值,成功返回0,失败返回1 ,命令如下:
md5sum -c /boot/file.md5 -p /boot/
a=${?}
页:
[1]