本文整理自LinuxSir论坛guochao74兄《Linux的启动加密》一文

话说Grub有个机制,就是在执行某命令之前可以暂停,等待认证(验证)密码。可以根据这一原理实现启动前加密。具体实现如下:

首先,需要在Grub配置文件menu.lst的全局配置区(即所有启动项开始前的区域)设置认证密码,方法如下:

这样,即可设置密码为you_password。当然你如果不想这样在明文中暴露自己的密码的话,可以通过–md5 md5加密后的字串来设置这个参数,当然MD5加密后的密码字串需要你自己生成:

如果你不喜欢

设置好了密码,随后自然就是使用了。方法更简单,只需要在要加密的操作前面加上lock即可,比如你要在加载内核前加密,就可以这样:

lock

kernel (hd0,0)/boot/vmlinuz root=/dev/sda1

很简单吧!这个lock指令可以加载在任何执行指令的前面。

PS:这里有个疑问,如果我不通过默认的启动项启动,而是自己通过CMD方式启动,这样的加密方式还有用么,有待验证

muxueqz兄提供了一个解决方案,把passwd一句添加到全局(而不是某个启动项)即可!