在CentOS启动时自动加载内核模块overlayfs操作
<p>在CentOS中自动加载内核模块,可以在/etc/sysconfig/modules/目录中增加一个脚本,在此脚本中加载所需的模块。</p>
<p>
下面是我所用的一个名为overlayfs.modules的脚本,用来在我的CentOS 7.X中自动加载overlayfs模块:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_15945">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
<div class="line number6 index5 alt1">
6</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash preprocessor bold">#! /bin/sh</code>
</div>
<div class="line number2 index1 alt1">
</div>
<div class="line number3 index2 alt2">
<code class="bash plain">/sbin/modinfo</code> <code class="bash plain">-F filename overlayfs> </code><code class="bash plain">/dev/null</code> <code class="bash plain">2>&1</code>
</div>
<div class="line number4 index3 alt1">
<code class="bash keyword">if</code> <code class="bash plain">[ $? -</code><code class="bash keyword">eq</code> <code class="bash plain">0 ]; </code><code class="bash keyword">then</code>
</div>
<div class="line number5 index4 alt2">
<code class="bash spaces"> </code><code class="bash plain">/sbin/modprobe</code> <code class="bash plain">overlayfs</code>
</div>
<div class="line number6 index5 alt1">
<code class="bash keyword">fi</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
脚本首先检查overlayfs模块文件是否存在,如果存在,则调用/sbin/modprobe命令加载此模块。</p>
<p>
把这个文件放在/etc/sysconfig/modules/目录中,并为其增加可执行权限。这样,下次重启系统时,模块就会被自动加载。</p>
<p>
<span><strong>补充知识:</strong></span><strong>Centos7 开机自动加载 模块 ko</strong></p>
<p>
假设现在有一个内核模块文件名为 c1004.ko</p>
<p>
1.首选复制编译完成的模块到内核设备目录</p>
<blockquote>
<p>
sudo cp c1004.ko /lib/modules/$(uname -r)/kernel/drivers/</p>
</blockquote>
<p>
2.创建模块启动文件</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_878291">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash functions">sudo</code> <code class="bash functions">cat</code> <code class="bash plain">> </code><code class="bash plain">/etc/modules-load</code><code class="bash plain">.d</code><code class="bash plain">/c1004</code><code class="bash plain">.conf <<EOF</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash comments"># Load c1004.ko at boot</code>
</div>
<div class="line number3 index2 alt2">
<code class="bash plain">c1004</code>
</div>
<div class="line number4 index3 alt1">
<code class="bash plain">EOF</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
3.更新模块,然后重启</p>
<blockquote>
<p>
sudo depmod</p>
<p>
reboot</p>
</blockquote>
<p>
4.重启后检查模块是否已经正常安装</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_30620">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain">lsmod |</code><code class="bash functions">grep</code> <code class="bash plain">c1004</code>
</div>
<div class="line number2 index1 alt1">
</div>
<div class="line number3 index2 alt2">
<code class="bash comments"># 输出类似下面内容说明自启动 OK</code>
</div>
<div class="line number4 index3 alt1">
<code class="bash plain">c1004 30081 0</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
如果运行 insmod c1004.ko 报错则需要重新编译驱动文件。</p>
<p>
卸载驱动 rmmod c1004</p>
<p>
以上这篇在CentOS启动时自动加载内核模块overlayfs操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。</p>
<p>
原文链接:https://blog.csdn.net/mesos/article/details/51777710</p>
頁:
[1]