<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>SkyWang_blog</title><description>记录生活</description><link>https://blog.skywangdev.com/</link><atom:icon>https://gw.alicdn.com/imgextra/i2/O1CN01m9YYjS1QBeW5DOm3I_!!6000000001938-2-tps-400-400.png</atom:icon><atom:logo>https://gw.alicdn.com/imgextra/i2/O1CN01m9YYjS1QBeW5DOm3I_!!6000000001938-2-tps-400-400.png</atom:logo><image><url>https://gw.alicdn.com/imgextra/i2/O1CN01m9YYjS1QBeW5DOm3I_!!6000000001938-2-tps-400-400.png</url><title>SkyWang_blog</title><link>https://blog.skywangdev.com/</link></image><follow_challenge><feedId>41147805276726275</feedId><userId>42909600318350336</userId></follow_challenge><item><title>第8期 - iperf3测速</title><link>https://blog.skywangdev.com/posts/8/</link><guid isPermaLink="true">https://blog.skywangdev.com/posts/8/</guid><description>&lt;img src=&quot;https://data.skywangdev.com/blog/S-10.jpeg&quot; width=&quot;800&quot;&gt;
&lt;p&gt;使用 iperf3 来测试不同主机之间的连接速度。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;安装 iperf3&lt;/li&gt;
&lt;/ol&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;# CentOS&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;yum -y install iperf3&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;dnf install iperf3&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;# Ubuntu&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;apt-get -y install iperf3&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;# Alpine&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;apk add iperf3&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;# Arch Linux&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;pacman -S iperf3&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;# Windows 版 iperf3 下载地址&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;# https://files.budman.pw/&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;# https://github.com/ar51an/iperf3-win-builds&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;ol start=&quot;2&quot;&gt;
&lt;li&gt;iperf3 测速用法&lt;/li&gt;
&lt;/ol&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;iperf3 -s -p 5201&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;其中&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;-s&lt;/code&gt; 参数表示服务器端&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-p&lt;/code&gt; 指定使用端口（默认端口 5201。别忘了防火墙放行端口）&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-D&lt;/code&gt; 以守护进程后台运行，追加 -D 参数&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;然后在本机发起测速。&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;iperf3 -c 1.1.1.31 -p 5201 -t 30 -P 5 -R&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;其中&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;-c&lt;/code&gt; 参数表示客户端并指定测速服务器地址&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-p&lt;/code&gt; 指定服务器端口&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-t&lt;/code&gt; 指定测试时长（单位秒）&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-P&lt;/code&gt; 指定并发连接数（越高越能测试到速度极限）&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-R&lt;/code&gt; 为反向测试，表示下载测速（不加参数则测试上传速度）&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-u&lt;/code&gt; 要测试 UDP 连接，追加 -u 参数&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-i&lt;/code&gt; 指定测试间隔，单位为秒&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;[SUM] 行就是测试数据（以 receiver 为准），带宽测速平均每秒 74.9 Mbits。&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;root@cloudcone-42:~# iperf3 -c 1.1.1.31 -p 5201 -i 1 -t 10 -P 5 -R&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;Connecting to host 1.1.1.31, port 5201&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;Reverse mode, remote host 1.1.1.31 is sending&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;[  5] local 64.69.40.42 port 55344 connected to 1.1.1.31 port 5201    # 启动了 5 了线程，开头方括号内数字为线程编号，主要为了在接下来的数据中可以分辨出各个线程。&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;[  7] local 64.69.40.42 port 55356 connected to 1.1.1.31 port 5201    # 五个线程都成功连接上了服务器，端口号默认5001&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;[  9] local 64.69.40.42 port 55366 connected to 1.1.1.31 port 5201&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;[ 11] local 64.69.40.42 port 55370 connected to 1.1.1.31 port 5201&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;[ 13] local 64.69.40.42 port 55378 connected to 1.1.1.31 port 5201&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;[ ID] Interval           Transfer     Bitrate&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;[  5]   0.00-1.00   sec  15.8 MBytes   133 Mbits/sec   # 第一列，interval，表示时间区间    &lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;[  7]   0.00-1.00   sec  15.2 MBytes   128 Mbits/sec   # 第二列，transfer，表示传输的数据量             &lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;[  9]   0.00-1.00   sec  25.8 MBytes   216 Mbits/sec   # 第三列，bandwidth，表示传输的带宽&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;[ 11]   0.00-1.00   sec  22.7 MBytes   190 Mbits/sec   &lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;[ 13]   0.00-1.00   sec  23.3 MBytes   196 Mbits/sec   # 由于是多个线程同时运行，所以每个线程的带宽都不是真正的带宽&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;[SUM]   0.00-1.00   sec   103 MBytes   863 Mbits/sec   # 真正的带宽是以SUM标识的行，我们的客户端命令是1s总结一次带宽报告，所以我们把相同时间区间的线程的运行带宽相加会发现大约等于SUM的实际带宽&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;- - - - - - - - - - - - - - - - - - - - - - - - -&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;[  5]  29.00-30.00  sec  12.0 MBytes   101 Mbits/sec                  &lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;[  7]  29.00-30.00  sec  17.6 MBytes   147 Mbits/sec                  &lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;[  9]  29.00-30.00  sec  26.9 MBytes   226 Mbits/sec                  &lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;[ 11]  29.00-30.00  sec  25.7 MBytes   215 Mbits/sec                  &lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;[ 13]  29.00-30.00  sec  24.7 MBytes   207 Mbits/sec                  &lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;[SUM]  29.00-30.00  sec   107 MBytes   896 Mbits/sec &lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;...                 &lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;- - - - - - - - - - - - - - - - - - - - - - - - -&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;[ ID] Interval           Transfer     Bitrate         Retr&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;[  5]   0.00-10.00  sec   191 MBytes   160 Mbits/sec  968             sender&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;[  5]   0.00-10.00  sec   189 MBytes   158 Mbits/sec                  receiver&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;[  7]   0.00-10.00  sec   196 MBytes   165 Mbits/sec  873             sender&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;[  7]   0.00-10.00  sec   193 MBytes   162 Mbits/sec                  receiver&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;[  9]   0.00-10.00  sec   290 MBytes   244 Mbits/sec  1284             sender&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;[  9]   0.00-10.00  sec   287 MBytes   241 Mbits/sec                  receiver&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;[ 11]   0.00-10.00  sec   161 MBytes   135 Mbits/sec  744             sender&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;[ 11]   0.00-10.00  sec   160 MBytes   134 Mbits/sec                  receiver&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;[ 13]   0.00-10.00  sec   156 MBytes   131 Mbits/sec  724             sender&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;[ 13]   0.00-10.00  sec   155 MBytes   130 Mbits/sec                  receiver&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;[SUM]   0.00-10.00  sec   995 MBytes   835 Mbits/sec  4593             sender&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;[SUM]   0.00-10.00  sec   984 MBytes   826 Mbits/sec                  receiver&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;iperf Done.&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;测试结果解释：&lt;/p&gt;
&lt;p&gt;并发流：&lt;/p&gt;
&lt;p&gt;测试显示了 5 个并发流（流 ID 为 5, 7, 9, 11, 13），每个流的传输情况如下：&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;[ 5]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;传输量：18.7 MB（约 157 Mbps）&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;发送速率：160 Mbps&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;接收速率：158 Mbps&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;重传：968 次&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;...&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;[ 13]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;传输量：17.0 MB（约 142 Mbps）&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;发送速率：131 Mbps&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;接收速率：130 Mbps&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;重传：724 次&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;总和统计：&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;发送总量: 995 MB（约 835 Mbps）&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;接收总量: 984 MB（约 826 Mbps）&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;重传总数: 4593 次&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;分析：&lt;/p&gt;
&lt;p&gt;吞吐量：通过 5 个并发流的测试，接收端总共接收了约 984 MB 的数据，发送端总共发送了约 995 MB 的数据。整体的吞吐量大致在 826 - 835 Mbps 之间，表明网络连接性能相对稳定。&lt;/p&gt;
&lt;p&gt;重传：重传次数（4593 次）表明网络在传输过程中发生了一定的丢包。虽然丢包不算极其严重，但重传的存在说明网络并不是完全无误的。&lt;/p&gt;
&lt;p&gt;不同流的速度差异：流 9 的传输量明显高于其他流（252 Mbps），而流 11 和流 13 的速率较低（139 Mbps 和 142 Mbps）。这可能表明网络在不同流之间的负载均衡并不完全均匀，或者某些流受到了网络瓶颈或其他因素的限制。&lt;/p&gt;
&lt;p&gt;总结：&lt;/p&gt;
&lt;p&gt;测试结果显示，网络连接在 10 秒内的平均速率大约为 835 Mbps（发送）和 826 Mbps（接收），速度还算较为理想。&lt;/p&gt;
&lt;p&gt;虽然有一定的重传，但没有明显的丢包现象，且流的传输速率差异表明可能有不均匀的网络负载或其他因素影响了流的表现。&lt;/p&gt;&lt;hr style=&quot;border:none;border-top:0.5px solid rgba(0,0,0,0.08);margin:26px 0 14px;&quot; /&gt;
    &lt;p style=&quot;text-align:left;margin:0;font-family:-apple-system,BlinkMacSystemFont,&apos;Segoe UI&apos;,sans-serif;&quot;&gt;
      &lt;a
        href=&quot;https://blog.skywangdev.com&quot;
        style=&quot;
          display:inline-block;
          padding:6px 18px;
          border-radius:999px;
          background:#222;
          color:#fff;
          font-size:13px;
          text-decoration:none;
        &quot;
        target=&quot;_blank&quot;
        rel=&quot;noreferrer&quot;
      &gt;undefined&lt;/a&gt;
    &lt;/p&gt;</description><pubDate>Wed, 12 Mar 2025 00:00:00 GMT</pubDate></item><item><title>第7期 - ffmpeg 笔记</title><link>https://blog.skywangdev.com/posts/7/</link><guid isPermaLink="true">https://blog.skywangdev.com/posts/7/</guid><description>&lt;img src=&quot;https://data.skywangdev.com/blog/S-9.jpeg&quot; width=&quot;800&quot;&gt;
&lt;h5 id=&quot;合并一个文件夹内的所有视频&quot;&gt;&lt;a href=&quot;#%E5%90%88%E5%B9%B6%E4%B8%80%E4%B8%AA%E6%96%87%E4%BB%B6%E5%A4%B9%E5%86%85%E7%9A%84%E6%89%80%E6%9C%89%E8%A7%86%E9%A2%91&quot; title=&quot;合并一个文件夹内的所有视频&quot;&gt;&lt;/a&gt;合并一个文件夹内的所有视频&lt;/h5&gt;
&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;pre&gt;&lt;span class=&quot;line&quot;&gt;1&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;line&quot;&gt;2&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;line&quot;&gt;3&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;line&quot;&gt;4&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;line&quot;&gt;5&lt;/span&gt;&lt;br&gt;&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre&gt;&lt;span class=&quot;line&quot;&gt;find *.mp4 | sed &apos;s:\ :\\\ :g&apos;| sed &apos;s/^/file /&apos; &gt; fl.txt&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;line&quot;&gt;ffmpeg -f concat -i fl.txt -c copy output.mp4&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;line&quot;&gt;// 忽略错误信息&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;line&quot;&gt;ffmpeg -safe 0 -f concat -i fl.txt -c copy output.mp4&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;line&quot;&gt;rm fl.txt&lt;/span&gt;&lt;br&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;&lt;a href=&quot;https://stackoverflow.com/questions/28922352/how-can-i-merge-all-the-videos-in-a-folder-to-make-a-single-video-file-using-ffm&quot;&gt;参考资源&lt;/a&gt;&lt;/p&gt;
&lt;h5 id=&quot;视频压缩&quot;&gt;&lt;a href=&quot;#%E8%A7%86%E9%A2%91%E5%8E%8B%E7%BC%A9&quot; title=&quot;视频压缩&quot;&gt;&lt;/a&gt;视频压缩&lt;/h5&gt;
&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;pre&gt;&lt;span class=&quot;line&quot;&gt;1&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;line&quot;&gt;2&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;line&quot;&gt;3&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;line&quot;&gt;4&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;line&quot;&gt;5&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;line&quot;&gt;6&lt;/span&gt;&lt;br&gt;&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre&gt;&lt;span class=&quot;line&quot;&gt;// 视频使用h.264编码，声音使用aac编码&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;line&quot;&gt;ffmpeg -i input.mp4 -vcodec h264 -acodec aac output.mp4&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;line&quot;&gt;// 视频使用h.265编码，压缩到更小文档&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;line&quot;&gt;ffmpeg -i input.mp4 -vcodec libx265 -crf 28 output.mp4&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;line&quot;&gt;// 视频使用h.264编码，保留更好的质量&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;line&quot;&gt;ffmpeg -i input.mp4 -vcodec libx264 -crf 20 output.mp4&lt;/span&gt;&lt;br&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;crf 越小，视频质量越高；crf 越大，视频文件越小&lt;/p&gt;
&lt;p&gt;编码参数也可以简写，从&lt;code&gt;-vcodec&lt;/code&gt;和&lt;code&gt;-acodec&lt;/code&gt;改为&lt;code&gt;-c:v&lt;/code&gt;和&lt;code&gt;-c:a&lt;/code&gt;：&lt;/p&gt;
&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;pre&gt;&lt;span class=&quot;line&quot;&gt;1&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;line&quot;&gt;2&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;line&quot;&gt;3&lt;/span&gt;&lt;br&gt;&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre&gt;&lt;span class=&quot;line&quot;&gt;ffmpeg -i input.mp4 -c:v libx264 -crf 23 output.mp4&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;line&quot;&gt;ffmpeg -i input.mp4 -c:v libx265 -crf 28 output.mp4&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;line&quot;&gt;ffmpeg -i input.mp4 -c:v libvpx-vp9 -crf 31 -b:v 0 output.mkv&lt;/span&gt;&lt;br&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;&lt;a href=&quot;https://slhck.info/video/2017/02/24/crf-guide.html&quot;&gt;参考资源&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;其中&lt;code&gt;AVC/H264&lt;/code&gt;和&lt;code&gt;HEVC/H265&lt;/code&gt;都是软件编码，速度很慢。可以选择英伟达的硬件编码：hevc_nvenc 与 h264_nvenc，它们使用硬件加速，速度很快。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.bilibili.com/opus/376578377423593855&quot;&gt;参考资源&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;使用英伟达显卡进行编码：&lt;/p&gt;
&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;pre&gt;&lt;span class=&quot;line&quot;&gt;1&lt;/span&gt;&lt;br&gt;&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre&gt;&lt;span class=&quot;line&quot;&gt;ffmpeg -i video.mp4 -c:v hevc_nvenc -crf 28 output.mp4&lt;/span&gt;&lt;br&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;将视频从 H.264 转码到 H.265，花了 55 分钟，视频体积从 3.8GB 减小到 430MB，效果立竿见影。转码命令：&lt;code&gt;ffmpeg -i 1.mp4 -c:v libx265 -vtag hvc1 -c:a copy 1_hevc.mp4&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;在 win10 可以用 scoop 安装 ffmpeg，更新 Windows 上面通过 scoop 安装的所有程序&lt;br&gt;
&lt;code&gt;scoop list | foreach { scoop update $_.Name }&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;将视频以同样的编码，按照指定时间进行裁剪&lt;/p&gt;
&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;pre&gt;&lt;span class=&quot;line&quot;&gt;1&lt;/span&gt;&lt;br&gt;&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre&gt;&lt;span class=&quot;line&quot;&gt;ffmpeg -ss 00:05 -to 08:53.500 -i ./input.mp4 -c copy video.mp4&lt;/span&gt;&lt;br&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;利用 ffmpeg 快速剪辑视频&lt;/p&gt;
&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;pre&gt;&lt;span class=&quot;line&quot;&gt;1&lt;/span&gt;&lt;br&gt;&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre&gt;&lt;span class=&quot;line&quot;&gt;ffmpeg -ss 07:18 -to 13:45 -i ./aaa.mkv -c copy bbb.mkv&lt;/span&gt;&lt;br&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;-ss 表示开始时间&lt;/li&gt;
&lt;li&gt;-to 表示结束时间&lt;/li&gt;
&lt;li&gt;-i 是输入文档&lt;/li&gt;
&lt;li&gt;-c 表示使用被剪辑视频一样的编码&lt;/li&gt;
&lt;li&gt;bbb 是输出文档的名称&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;合并视频和声音，视频使用原始编码，声音改为 aac 编码&lt;/p&gt;
&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;pre&gt;&lt;span class=&quot;line&quot;&gt;1&lt;/span&gt;&lt;br&gt;&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre&gt;&lt;span class=&quot;line&quot;&gt;ffmpeg -i 1.mp4 -i 1.opus -c:v copy -c:a aac output.mp4&lt;/span&gt;&lt;br&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;将 PNG 格式图片转为 JPG 格式图片&lt;/p&gt;
&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;pre&gt;&lt;span class=&quot;line&quot;&gt;1&lt;/span&gt;&lt;br&gt;&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre&gt;&lt;span class=&quot;line&quot;&gt;ffmpeg -i image.png -preset ultrafast image.jpg&lt;/span&gt;&lt;br&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;修改图片的尺寸&lt;/p&gt;
&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;pre&gt;&lt;span class=&quot;line&quot;&gt;1&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;line&quot;&gt;2&lt;/span&gt;&lt;br&gt;&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre&gt;&lt;span class=&quot;line&quot;&gt;ffmpeg -i image.jpeg -vf scale=413:626 2寸.jpeg&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;line&quot;&gt;ffmpeg -i image.jpeg -vf scale=390:567 1寸.jpeg&lt;/span&gt;&lt;br&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;将一个音频重复 10 次&lt;/p&gt;
&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;pre&gt;&lt;span class=&quot;line&quot;&gt;1&lt;/span&gt;&lt;br&gt;&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre&gt;&lt;span class=&quot;line&quot;&gt;ffmpeg -stream_loop 10 -i input.m4a -c copy output.m4a&lt;/span&gt;&lt;br&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;hr style=&quot;border:none;border-top:0.5px solid rgba(0,0,0,0.08);margin:26px 0 14px;&quot; /&gt;
    &lt;p style=&quot;text-align:left;margin:0;font-family:-apple-system,BlinkMacSystemFont,&apos;Segoe UI&apos;,sans-serif;&quot;&gt;
      &lt;a
        href=&quot;https://blog.skywangdev.com&quot;
        style=&quot;
          display:inline-block;
          padding:6px 18px;
          border-radius:999px;
          background:#222;
          color:#fff;
          font-size:13px;
          text-decoration:none;
        &quot;
        target=&quot;_blank&quot;
        rel=&quot;noreferrer&quot;
      &gt;undefined&lt;/a&gt;
    &lt;/p&gt;</description><pubDate>Tue, 17 Sep 2024 00:00:00 GMT</pubDate></item><item><title>第6期 - DELL服务器配置RAID</title><link>https://blog.skywangdev.com/posts/6/</link><guid isPermaLink="true">https://blog.skywangdev.com/posts/6/</guid><description>&lt;img src=&quot;https://data.skywangdev.com/blog/S-8.jpeg&quot; width=&quot;800&quot;&gt;
&lt;p&gt;&lt;strong&gt;一、需求描述&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;服务器前两个硬盘是480G的SSD固态硬盘，后面4块硬盘是4T的机械硬盘，前两块SSD做RAID1安装系统，后四块机械硬盘做RIAD5放数据。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;二、创建RAID1和创建RAID5&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;2.1、服务器一开机后，看到如下界面后，按F2进入System Setup。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://yan-jian.com/file/20231208/1.png&quot;&gt;&lt;img src=&quot;https://yan-jian.com/file/20231208/1.png&quot; alt=&quot;&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;2.2、进入System Setup后，找到Device Settings。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://yan-jian.com/file/20231208/2.png&quot;&gt;&lt;img src=&quot;https://yan-jian.com/file/20231208/2.png&quot; alt=&quot;&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;2.3、找到Integrated RAID Controller1\:Dell\Configuration Utility。选中后，点击进入。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://yan-jian.com/file/20231208/3.png&quot;&gt;&lt;img src=&quot;https://yan-jian.com/file/20231208/3.png&quot; alt=&quot;&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;注：上图就是服务器的RAID阵列卡。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;H740P mini阵列卡到底是什么样子的呢？如下图所示：&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://yan-jian.com/file/20231208/4.png&quot;&gt;&lt;img src=&quot;https://yan-jian.com/file/20231208/4.png&quot; alt=&quot;&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;H740P Mini阵列卡主要有一个8G的快速容量。这个是RAID卡可以作为服务器硬盘之间读写数据的缓存。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://yan-jian.com/file/20231208/5.png&quot;&gt;&lt;img src=&quot;https://yan-jian.com/file/20231208/5.png&quot; alt=&quot;&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;2.4、然后选择Main Menu，主菜单。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://yan-jian.com/file/20231208/6.png&quot;&gt;&lt;img src=&quot;https://yan-jian.com/file/20231208/6.png&quot; alt=&quot;&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;2.5、首先查看一下，硬盘是否都正常在线，我们选择Physical Disk Management。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://yan-jian.com/file/20231208/7.png&quot;&gt;&lt;img src=&quot;https://yan-jian.com/file/20231208/7.png&quot; alt=&quot;&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;2.6、可以看到2块480G的固态盘已经Ready状态，准备就绪。4块4TB机械硬盘也已经Ready状态，准备就绪，返回上一级。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://yan-jian.com/file/20231208/8.png&quot;&gt;&lt;img src=&quot;https://yan-jian.com/file/20231208/8.png&quot; alt=&quot;&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;2.7、选择Configuration Management。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://yan-jian.com/file/20231208/9.png&quot;&gt;&lt;img src=&quot;https://yan-jian.com/file/20231208/9.png&quot; alt=&quot;&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;2.8、选择Create Virtual Disk。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://yan-jian.com/file/20231208/10.png&quot;&gt;&lt;img src=&quot;https://yan-jian.com/file/20231208/10.png&quot; alt=&quot;&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;2.9、Select RAID Level选择RAID1。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://yan-jian.com/file/20231208/11.png&quot;&gt;&lt;img src=&quot;https://yan-jian.com/file/20231208/11.png&quot; alt=&quot;&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;2.10、RAID等级已经选择RAID1。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://yan-jian.com/file/20231208/12.png&quot;&gt;&lt;img src=&quot;https://yan-jian.com/file/20231208/12.png&quot; alt=&quot;&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;2.11、下面开始选择前两块SSD固态盘，点击Select Physical Disks。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://yan-jian.com/file/20231208/13.png&quot;&gt;&lt;img src=&quot;https://yan-jian.com/file/20231208/13.png&quot; alt=&quot;&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;2.12、选择前两块SSD的480G的固态盘。使用键盘的上下键，选中一块硬盘后按空格键，就可以将硬盘前面的勾选中。两块硬盘选择完成后，点击Apply Changes，应用。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://yan-jian.com/file/20231208/14.png&quot;&gt;&lt;img src=&quot;https://yan-jian.com/file/20231208/14.png&quot; alt=&quot;&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;2.13、点击OK。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://yan-jian.com/file/20231208/15.png&quot;&gt;&lt;img src=&quot;https://yan-jian.com/file/20231208/15.png&quot; alt=&quot;&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;2.14、配置RAID1参数。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://yan-jian.com/file/20231208/16.png&quot;&gt;&lt;img src=&quot;https://yan-jian.com/file/20231208/16.png&quot; alt=&quot;&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;**Virtual Disk Name：**为RAID1的虚拟磁盘命名，按自己需求命名即可。&lt;/p&gt;
&lt;p&gt;**Virtual Disk Size：**空间大小，选择默认全部空间。&lt;/p&gt;
&lt;p&gt;**Virtual Disk Size Unit：**选择磁盘大小的单位。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Strip Element Size：&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;条带大小，选择默认的256KB。条带的大写如何设置呢？基本上如果是数据库服务器应用选大小选择4-16KB，对于大文件，CAD，渲染大图文件建议设置128KB以上，WEB服务器文件打印服务器建议设置16-64KB即可。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Read Policy：&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;选择Read Ahead模式：预读模式，选择预读的模式优点是，当用户读数据的时候，硬盘将数据调用到RAID卡8G缓存中，进行用户数据交付，不用是用户直接读取硬盘中的数据。&lt;/p&gt;
&lt;p&gt;如果选择No Read Ahead模式：那用户读数据，直接读硬盘中数据，相对于Read Ahead会慢一些。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Wirte Policy:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;选择 Write Back模式： 回写模式，如果用户往硬盘里写数据，不是直接写到硬盘里面的，而是先将数据写到RAID卡的8G缓存中，然后缓存再将用户数据写到硬盘中，这样速度会更快。&lt;/p&gt;
&lt;p&gt;Wirte Through模式：用户直接将数据写到硬盘当中，不写到RAID卡的缓存当中，这个模式会比Wirte Back慢一些。&lt;/p&gt;
&lt;p&gt;Force Wirte Back模式：强制回写是什么意思呢？这里要说到RAID卡了，RAID卡是有电池来供电的，一般的这个电池可以用到3年左右，无论这个RAID卡有没有电，数据都是先写到RAID卡缓存后转到硬盘中，但如果三年后，正好RAID电池没电了，正好在往服务器写数据，数据正在写到缓存中，这时突然断电了，正在写向服务器数据会丢失。不建议选择Force Wirte Back。&lt;/p&gt;
&lt;p&gt;如果选择Wiret Back模式，RAID卡电池没电了，这时会策略会自动更改为Wirte Through模式。&lt;/p&gt;
&lt;p&gt;Disk Cahce：选择Default。&lt;/p&gt;
&lt;p&gt;Default Initilization：初始化，选择Fast，快速初始化硬盘，不需要等RAID1创建完成后，就可以在RAID1中直接安装系统。如果选择了Full，那就必须等RAID1创建完成后，才可以在RAID1中安装系统，如何查看RAID1的初始化进度，在文章尾部查看。&lt;/p&gt;
&lt;p&gt;2.15、选中confirm，然后点击Yes。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://yan-jian.com/file/20231208/17.png&quot;&gt;&lt;img src=&quot;https://yan-jian.com/file/20231208/17.png&quot; alt=&quot;&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;2.16、点击OK。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://yan-jian.com/file/20231208/18.png&quot;&gt;&lt;img src=&quot;https://yan-jian.com/file/20231208/18.png&quot; alt=&quot;&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;2.17、点击OK后，会返回到上级界面 ，继续创建RAID5。&lt;/p&gt;
&lt;p&gt;Select RAID Level，选择RAID5。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://yan-jian.com/file/20231208/19.png&quot;&gt;&lt;img src=&quot;https://yan-jian.com/file/20231208/19.png&quot; alt=&quot;&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;2.18、已经选中RAID5后，选择Select Physcal Disks。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://yan-jian.com/file/20231208/20.png&quot;&gt;&lt;img src=&quot;https://yan-jian.com/file/20231208/20.png&quot; alt=&quot;&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;2.19、选择剩下的4块4TB机械硬盘。然后选择Apply Changes。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://yan-jian.com/file/20231208/21.png&quot;&gt;&lt;img src=&quot;https://yan-jian.com/file/20231208/21.png&quot; alt=&quot;&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;2.20、点击OK。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://yan-jian.com/file/20231208/22.png&quot;&gt;&lt;img src=&quot;https://yan-jian.com/file/20231208/22.png&quot; alt=&quot;&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;2.21、下面的RAID5的参数和RAID1同样。然后选择Create Virutal Disk。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://yan-jian.com/file/20231208/23.png&quot;&gt;&lt;img src=&quot;https://yan-jian.com/file/20231208/23.png&quot; alt=&quot;&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;2.22、选中Confirm后，点击Yes。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://yan-jian.com/file/20231208/24.png&quot;&gt;&lt;img src=&quot;https://yan-jian.com/file/20231208/24.png&quot; alt=&quot;&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;2.23、点击Ok。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://yan-jian.com/file/20231208/25.png&quot;&gt;&lt;img src=&quot;https://yan-jian.com/file/20231208/25.png&quot; alt=&quot;&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;2.24、硬盘已经被创建完了，点击back。到这一步，RAID1和RAID5已经创建完成了。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://yan-jian.com/file/20231208/26.png&quot;&gt;&lt;img src=&quot;https://yan-jian.com/file/20231208/26.png&quot; alt=&quot;&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;三、校验查看&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;3.1、查看RAID创建&lt;/p&gt;
&lt;p&gt;返回到Main Menu主界面，找到Configuration Management。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://yan-jian.com/file/20231208/27.png&quot;&gt;&lt;img src=&quot;https://yan-jian.com/file/20231208/27.png&quot; alt=&quot;&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;选择View Disk Group Properties。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://yan-jian.com/file/20231208/28.png&quot;&gt;&lt;img src=&quot;https://yan-jian.com/file/20231208/28.png&quot; alt=&quot;&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;这时，可以看到两个Disk Group。一个是RAID1另外一个是RAID5。两个RAID已经创建完成。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://yan-jian.com/file/20231208/29.png&quot;&gt;&lt;img src=&quot;https://yan-jian.com/file/20231208/29.png&quot; alt=&quot;&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;3.2、查看RAID初始化进度&lt;/p&gt;
&lt;p&gt;返回到Main Menu中，找到Virtual Disk Management。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://yan-jian.com/file/20231208/30.png&quot;&gt;&lt;img src=&quot;https://yan-jian.com/file/20231208/30.png&quot; alt=&quot;&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;这时可以看到RAID1正在初始化，初化到了12%&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://yan-jian.com/file/20231208/31.png&quot;&gt;&lt;img src=&quot;https://yan-jian.com/file/20231208/31.png&quot; alt=&quot;&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;初始化到16%，在创建RAID1选择参数时，如果选择RAID硬盘初始化选择Full的情况下，就必须要等RAID1，初始化到100%后，才可以进行操作系统的安装。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://yan-jian.com/file/20231208/32.png&quot;&gt;&lt;img src=&quot;https://yan-jian.com/file/20231208/32.png&quot; alt=&quot;&quot;&gt;&lt;/a&gt;&lt;/p&gt;&lt;hr style=&quot;border:none;border-top:0.5px solid rgba(0,0,0,0.08);margin:26px 0 14px;&quot; /&gt;
    &lt;p style=&quot;text-align:left;margin:0;font-family:-apple-system,BlinkMacSystemFont,&apos;Segoe UI&apos;,sans-serif;&quot;&gt;
      &lt;a
        href=&quot;https://blog.skywangdev.com&quot;
        style=&quot;
          display:inline-block;
          padding:6px 18px;
          border-radius:999px;
          background:#222;
          color:#fff;
          font-size:13px;
          text-decoration:none;
        &quot;
        target=&quot;_blank&quot;
        rel=&quot;noreferrer&quot;
      &gt;undefined&lt;/a&gt;
    &lt;/p&gt;</description><pubDate>Tue, 23 May 2023 00:00:00 GMT</pubDate></item><item><title>第5期 - Linux命令总结</title><link>https://blog.skywangdev.com/posts/5/</link><guid isPermaLink="true">https://blog.skywangdev.com/posts/5/</guid><description>&lt;img src=&quot;https://data.skywangdev.com/blog/S-7.jpeg&quot; width=&quot;800&quot;&gt;
&lt;h2 id=&quot;1-基本命令&quot;&gt;&lt;a href=&quot;#1-%E5%9F%BA%E6%9C%AC%E5%91%BD%E4%BB%A4&quot;&gt;&lt;/a&gt;1. 基本命令&lt;/h2&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;uname -m 显示机器的处理器架构&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;uname -r 显示正在使用的内核版本&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;dmidecode -q 显示硬件系统部件&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;(SMBIOS / DMI) hdparm -i /dev/hda 罗列一个磁盘的架构特性&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;hdparm -tT /dev/sda 在磁盘上执行测试性读取操作系统信息&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;arch 显示机器的处理器架构&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;uname -m 显示机器的处理器架构&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;uname -r 显示正在使用的内核版本&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;hdparm -i /dev/hda 罗列一个磁盘的架构特性&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;hdparm -tT /dev/sda 在磁盘上执行测试性读取操作&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;cat /proc/cpuinfo 显示CPU info的信息&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;cat /proc/interrupts 显示中断&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;cat /proc/meminfo 校验内存使用&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;cat /proc/swaps 显示哪些swap被使用&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;cat /proc/version 显示内核的版本&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;cat /proc/net/dev 显示网络适配器及统计&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;cat /proc/mounts 显示已加载的文件系统&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;lspci -tv 罗列 PCI 设备&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;lsusb -tv 显示 USB 设备&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;date 显示系统日期&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;cal 2007 显示2007年的日历表&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;date 041217002007.00 设置日期和时间 - 月日时分年.秒&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;clock -w 将时间修改保存到 BIOS&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;2-关机&quot;&gt;&lt;a href=&quot;#2-%E5%85%B3%E6%9C%BA&quot;&gt;&lt;/a&gt;2. 关机&lt;/h2&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;shutdown -h now 关闭系统(1)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;init 0 关闭系统(2)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;telinit 0 关闭系统(3)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;shutdown -h hours:minutes &amp;#x26; 按预定时间关闭系统&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;shutdown -c 取消按预定时间关闭系统&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;shutdown -r now 重启(1)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;reboot 重启(2)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;logout 注销&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;3-文件和目录&quot;&gt;&lt;a href=&quot;#3-%E6%96%87%E4%BB%B6%E5%92%8C%E7%9B%AE%E5%BD%95&quot;&gt;&lt;/a&gt;3. 文件和目录&lt;/h2&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;cd /home 进入 &apos;/ home&apos; 目录&apos;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;cd .. 返回上一级目录&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;cd ../.. 返回上两级目录&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;cd 进入个人的主目录&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;cd ~user1 进入个人的主目录&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;cd - 返回上次所在的目录&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;pwd 显示工作路径&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;ls 查看目录中的文件&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;ls -F 查看目录中的文件&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;ls -l 显示文件和目录的详细资料&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;ls -a 显示隐藏文件&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;ls *[0-9]* 显示包含数字的文件名和目录名&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;tree 显示文件和目录由根目录开始的树形结构(1)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;lstree 显示文件和目录由根目录开始的树形结构(2)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;mkdir dir1 创建一个叫做 &apos;dir1&apos; 的目录&apos;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;mkdir dir1 dir2 同时创建两个目录&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;mkdir -p /tmp/dir1/dir2 创建一个目录树&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;rm -f file1 删除一个叫做 &apos;file1&apos; 的文件&apos;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;rmdir dir1 删除一个叫做 &apos;dir1&apos; 的目录&apos;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;rm -rf dir1 删除一个叫做 &apos;dir1&apos; 的目录并同时删除其内容&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;rm -rf dir1 dir2 同时删除两个目录及它们的内容&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;mv dir1 new_dir 重命名/移动 一个目录&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;cp file1 file2 复制一个文件&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;cp dir/* . 复制一个目录下的所有文件到当前工作目录&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;cp -a /tmp/dir1 . 复制一个目录到当前工作目录&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;cp -a dir1 dir2 复制一个目录&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;ln -s file1 lnk1 创建一个指向文件或目录的软链接&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;ln file1 lnk1 创建一个指向文件或目录的物理链接&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;touch -t 0712250000 file1 修改一个文件或目录的时间戳 - (YYMMDDhhmm)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;file file1 outputs the mime type of the file as text&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;iconv -l 列出已知的编码&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;iconv -f fromEncoding -t toEncoding inputFile &gt; outputFile creates a new from the given input file by assuming it is encoded in fromEncoding and converting it to toEncoding.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;find . -maxdepth 1 -name *.jpg -print -exec convert &quot;{}&quot; -resize 80x60 &quot;thumbs/{}&quot; \; batch resize files in the current directory and send them to a thumbnails directory (requires convert from Imagemagick)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;4-文件搜索&quot;&gt;&lt;a href=&quot;#4-%E6%96%87%E4%BB%B6%E6%90%9C%E7%B4%A2&quot;&gt;&lt;/a&gt;4. 文件搜索&lt;/h2&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;find / -name file1 从 &apos;/&apos; 开始进入根文件系统搜索文件和目录&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;find / -user user1 搜索属于用户 &apos;user1&apos; 的文件和目录&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;find /home/user1 -name \*.bin 在目录 &apos;/ home/user1&apos; 中搜索带有&apos;.bin&apos; 结尾的文件&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;find /usr/bin -type f -atime +100 搜索在过去100天内未被使用过的执行文件&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;find /usr/bin -type f -mtime -10 搜索在10天内被创建或者修改过的文件&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;find / -name \*.rpm -exec chmod 755 &apos;{}&apos; \; 搜索以 &apos;.rpm&apos; 结尾的文件并定义其权限&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;find / -xdev -name \*.rpm 搜索以 &apos;.rpm&apos; 结尾的文件，忽略光驱、捷盘等可移动设备&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;locate \*.ps 寻找以 &apos;.ps&apos; 结尾的文件 - 先运行 &apos;updatedb&apos; 命令&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;whereis halt 显示一个二进制文件、源码或man的位置&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;which halt 显示一个二进制文件或可执行文件的完整路径&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;5-挂载一个文件系统&quot;&gt;&lt;a href=&quot;#5-%E6%8C%82%E8%BD%BD%E4%B8%80%E4%B8%AA%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F&quot;&gt;&lt;/a&gt;5. 挂载一个文件系统&lt;/h2&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;mount /dev/hda2 /mnt/hda2 挂载一个叫做hda2的盘 - 确定目录 &apos;/ mnt/hda2&apos; 已经存在&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;umount /dev/hda2 卸载一个叫做hda2的盘 - 先从挂载点 &apos;/ mnt/hda2&apos; 退出&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;fuser -km /mnt/hda2 当设备繁忙时强制卸载&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;umount -n /mnt/hda2 运行卸载操作而不写入 /etc/mtab 文件- 当文件为只读或当磁盘写满时非常有用&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;mount /dev/fd0 /mnt/floppy 挂载一个软盘&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;mount /dev/cdrom /mnt/cdrom 挂载一个cdrom或dvdrom&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;mount /dev/hdc /mnt/cdrecorder 挂载一个cdrw或dvdrom&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;mount /dev/hdb /mnt/cdrecorder 挂载一个cdrw或dvdrom&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;mount -o loop file.iso /mnt/cdrom 挂载一个文件或ISO镜像文件&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;mount -t vfat /dev/hda5 /mnt/hda5 挂载一个Windows FAT32文件系统&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;mount /dev/sda1 /mnt/usbdisk 挂载一个usb 捷盘或闪存设备&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;mount -t smbfs -o username=user,password=pass //WinClient/share /mnt/share 挂载一个windows网络共享&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;6-磁盘空间&quot;&gt;&lt;a href=&quot;#6-%E7%A3%81%E7%9B%98%E7%A9%BA%E9%97%B4&quot;&gt;&lt;/a&gt;6. 磁盘空间&lt;/h2&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;df -h 显示已经挂载的分区列表&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;ls -lSr |more 以尺寸大小排列文件和目录&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;du -sh dir1 估算目录 &apos;dir1&apos; 已经使用的磁盘空间&apos;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;du -sk * | sort -rn 以容量大小为依据依次显示文件和目录的大小&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;rpm -q -a --qf &apos;%10{SIZE}t%{NAME}n&apos; | sort -k1,1n 以大小为依据依次显示已安装的rpm包所使用的空间 (fedora, redhat类系统)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;dpkg-query -W -f=&apos;${Installed-Size;10}t${Package}n&apos; | sort -k1,1n 以大小为依据显示已安装的deb包所使用的空间 (ubuntu, debian类系统)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;7-用户和群组&quot;&gt;&lt;a href=&quot;#7-%E7%94%A8%E6%88%B7%E5%92%8C%E7%BE%A4%E7%BB%84&quot;&gt;&lt;/a&gt;7. 用户和群组&lt;/h2&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;groupadd group_name 创建一个新用户组&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;groupdel group_name 删除一个用户组&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;groupmod -n new_group_name old_group_name 重命名一个用户组&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;useradd -c &quot;Name Surname &quot; -g admin -d /home/user1 -s /bin/bash user1 创建一个属于 &quot;admin&quot; 用户组的用户&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;useradd user1 创建一个新用户&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;userdel -r user1 删除一个用户 ( &apos;-r&apos; 排除主目录)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;usermod -c &quot;User FTP&quot; -g system -d /ftp/user1 -s /bin/nologin user1 修改用户属性&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;passwd 修改口令&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;passwd user1 修改一个用户的口令 (只允许root执行)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;chage -E 2005-12-31 user1 设置用户口令的失效期限&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;pwck 检查 &apos;/etc/passwd&apos; 的文件格式和语法修正以及存在的用户&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;grpck 检查 &apos;/etc/passwd&apos; 的文件格式和语法修正以及存在的群组&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;newgrp group_name 登陆进一个新的群组以改变新创建文件的预设群组&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;8-文件的权限-使用--设置权限使用---用于取消&quot;&gt;&lt;a href=&quot;#8-%E6%96%87%E4%BB%B6%E7%9A%84%E6%9D%83%E9%99%90-%E4%BD%BF%E7%94%A8--%E8%AE%BE%E7%BD%AE%E6%9D%83%E9%99%90%EF%BC%8C%E4%BD%BF%E7%94%A8---%E7%94%A8%E4%BA%8E%E5%8F%96%E6%B6%88&quot;&gt;&lt;/a&gt;8. 文件的权限 使用 “+” 设置权限，使用 “-” 用于取消&lt;/h2&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;ls -lh 显示权限&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;ls /tmp | pr -T5 -W$COLUMNS 将终端划分成5栏显示&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;chmod ugo+rwx directory1 设置目录的所有人(u)、群组(g)以及其他人(o)以读（r ）、写(w)和执行(x)的权限&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;chmod go-rwx directory1 删除群组(g)与其他人(o)对目录的读写执行权限&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;chown user1 file1 改变一个文件的所有人属性&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;chown -R user1 directory1 改变一个目录的所有人属性并同时改变改目录下所有文件的属性&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;chgrp group1 file1 改变文件的群组&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;chown user1:group1 file1 改变一个文件的所有人和群组属性&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;find / -perm -u+s 罗列一个系统中所有使用了SUID控制的文件&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;chmod u+s /bin/file1 设置一个二进制文件的 SUID 位 - 运行该文件的用户也被赋予和所有者同样的权限&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;chmod u-s /bin/file1 禁用一个二进制文件的 SUID位&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;chmod g+s /home/public 设置一个目录的SGID 位 - 类似SUID ，不过这是针对目录的&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;chmod g-s /home/public 禁用一个目录的 SGID 位&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;chmod o+t /home/public 设置一个文件的 STIKY 位 - 只允许合法所有人删除文件&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;chmod o-t /home/public 禁用一个目录的 STIKY 位&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;chmod +x 文件路径 为所有者、所属组和其他用户添加执行的权限&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;chmod -x 文件路径 为所有者、所属组和其他用户删除执行的权限&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;chmod u+x 文件路径 为所有者添加执行的权限&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;chmod g+x 文件路径 为所属组添加执行的权限&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;chmod o+x 文件路径 为其他用户添加执行的权限&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;chmod ug+x 文件路径 为所有者、所属组添加执行的权限&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;chmod =wx 文件路径 为所有者、所属组和其他用户添加写、执行的权限，取消读权限&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;chmod ug=wx 文件路径 为所有者、所属组添加写、执行的权限，取消读权限&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;9-文件的特殊属性-使用--设置权限使用---用于取消&quot;&gt;&lt;a href=&quot;#9-%E6%96%87%E4%BB%B6%E7%9A%84%E7%89%B9%E6%AE%8A%E5%B1%9E%E6%80%A7-%EF%BC%8C%E4%BD%BF%E7%94%A8--%E8%AE%BE%E7%BD%AE%E6%9D%83%E9%99%90%EF%BC%8C%E4%BD%BF%E7%94%A8---%E7%94%A8%E4%BA%8E%E5%8F%96%E6%B6%88&quot;&gt;&lt;/a&gt;9. 文件的特殊属性 ，使用 “+” 设置权限，使用 “-” 用于取消&lt;/h2&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;chattr +a file1 只允许以追加方式读写文件&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;chattr +c file1 允许这个文件能被内核自动压缩/解压&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;chattr +d file1 在进行文件系统备份时，dump程序将忽略这个文件&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;chattr +i file1 设置成不可变的文件，不能被删除、修改、重命名或者链接&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;chattr +s file1 允许一个文件被安全地删除&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;chattr +S file1 一旦应用程序对这个文件执行了写操作，使系统立刻把修改的结果写到磁盘&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;chattr +u file1 若文件被删除，系统会允许你在以后恢复这个被删除的文件&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;lsattr 显示特殊的属性&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;10-打包和压缩文件&quot;&gt;&lt;a href=&quot;#10-%E6%89%93%E5%8C%85%E5%92%8C%E5%8E%8B%E7%BC%A9%E6%96%87%E4%BB%B6&quot;&gt;&lt;/a&gt;10. 打包和压缩文件&lt;/h2&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;bunzip2 file1.bz2 解压一个叫做 &apos;file1.bz2&apos;的文件&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;bzip2 file1 压缩一个叫做 &apos;file1&apos; 的文件&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;gunzip file1.gz 解压一个叫做 &apos;file1.gz&apos;的文件&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;gzip file1 压缩一个叫做 &apos;file1&apos;的文件&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;gzip -9 file1 最大程度压缩&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;rar a file1.rar test_file 创建一个叫做 &apos;file1.rar&apos; 的包&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;rar a file1.rar file1 file2 dir1 同时压缩 &apos;file1&apos;, &apos;file2&apos; 以及目录 &apos;dir1&apos;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;rar x file1.rar 解压rar包&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;unrar x file1.rar 解压rar包&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;tar -cvf archive.tar file1 创建一个非压缩的 tarball&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;tar -cvf archive.tar file1 file2 dir1 创建一个包含了 &apos;file1&apos;, &apos;file2&apos; 以及 &apos;dir1&apos;的档案文件&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;tar -tf archive.tar 显示一个包中的内容&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;tar -xvf archive.tar 释放一个包&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;tar -xvf archive.tar -C /tmp 将压缩包释放到 /tmp目录下&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;tar -cvfj archive.tar.bz2 dir1 创建一个bzip2格式的压缩包&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;tar -xvfj archive.tar.bz2 解压一个bzip2格式的压缩包&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;tar -cvfz archive.tar.gz dir1 创建一个gzip格式的压缩包&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;tar -xvfz archive.tar.gz 解压一个gzip格式的压缩包&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;zip file1.zip file1 创建一个zip格式的压缩包&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;zip -r file1.zip file1 file2 dir1 将几个文件和目录同时压缩成一个zip格式的压缩包&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;unzip file1.zip 解压一个zip格式压缩包&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;11-rpm-包&quot;&gt;&lt;a href=&quot;#11-rpm-%E5%8C%85&quot;&gt;&lt;/a&gt;11. RPM 包&lt;/h2&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;rpm -ivh package.rpm 安装一个rpm包&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;rpm -ivh --nodeeps package.rpm 安装一个rpm包而忽略依赖关系警告&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;rpm -U package.rpm 更新一个rpm包但不改变其配置文件&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;rpm -F package.rpm 更新一个确定已经安装的rpm包&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;rpm -e package_name.rpm 删除一个rpm包&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;rpm -qa 显示系统中所有已经安装的rpm包&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;rpm -qa | grep httpd 显示所有名称中包含 &quot;httpd&quot; 字样的rpm包&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;rpm -qi package_name 获取一个已安装包的特殊信息&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;rpm -qg &quot;System Environment/Daemons&quot; 显示一个组件的rpm包&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;rpm -ql package_name 显示一个已经安装的rpm包提供的文件列表&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;rpm -qc package_name 显示一个已经安装的rpm包提供的配置文件列表&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;rpm -q package_name --whatrequires 显示与一个rpm包存在依赖关系的列表&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;rpm -q package_name --whatprovides 显示一个rpm包所占的体积&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;rpm -q package_name --scripts 显示在安装/删除期间所执行的脚本l&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;rpm -q package_name --changelog 显示一个rpm包的修改历史&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;rpm -qf /etc/httpd/conf/httpd.conf 确认所给的文件由哪个rpm包所提供&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;rpm -qp package.rpm -l 显示由一个尚未安装的rpm包提供的文件列表&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;rpm --import /media/cdrom/RPM-GPG-KEY 导入公钥数字证书&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;rpm --checksig package.rpm 确认一个rpm包的完整性&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;rpm -qa gpg-pubkey 确认已安装的所有rpm包的完整性&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;rpm -V package_name 检查文件尺寸、 许可、类型、所有者、群组、MD5检查以及最后修改时间&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;rpm -Va 检查系统中所有已安装的rpm包- 小心使用&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;rpm -Vp package.rpm 确认一个rpm包还未安装&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;rpm2cpio package.rpm | cpio --extract --make-directories *bin* 从一个rpm包运行可执行文件&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;rpm -ivh /usr/src/redhat/RPMS/`arch`/package.rpm 从一个rpm源码安装一个构建好的包&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;rpmbuild --rebuild package_name.src.rpm 从一个rpm源码构建一个 rpm 包&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;12-yum-软件包升级器&quot;&gt;&lt;a href=&quot;#12-yum-%E8%BD%AF%E4%BB%B6%E5%8C%85%E5%8D%87%E7%BA%A7%E5%99%A8&quot;&gt;&lt;/a&gt;12. YUM 软件包升级器&lt;/h2&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;yum install package_name 下载并安装一个rpm包&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;yum localinstall package_name.rpm 将安装一个rpm包，使用你自己的软件仓库为你解决所有依赖关系&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;yum update package_name.rpm 更新当前系统中所有安装的rpm包&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;yum update package_name 更新一个rpm包&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;yum remove package_name 删除一个rpm包&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;yum list 列出当前系统中安装的所有包&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;yum search package_name 在rpm仓库中搜寻软件包&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;yum clean packages 清理rpm缓存删除下载的包&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;yum clean headers 删除所有头文件&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;yum clean all 删除所有缓存的包和头文件&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;13-deb-包&quot;&gt;&lt;a href=&quot;#13-deb-%E5%8C%85&quot;&gt;&lt;/a&gt;13. deb 包&lt;/h2&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;dpkg -i package.deb 安装/更新一个 deb 包&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;dpkg -r package_name 从系统删除一个 deb 包&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;dpkg -l 显示系统中所有已经安装的 deb 包&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;dpkg -l | grep httpd 显示所有名称中包含 &quot;httpd&quot; 字样的deb包&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;dpkg -s package_name 获得已经安装在系统中一个特殊包的信息&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;dpkg -L package_name 显示系统中已经安装的一个deb包所提供的文件列表&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;dpkg --contents package.deb 显示尚未安装的一个包所提供的文件列表&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;dpkg -S /bin/ping 确认所给的文件由哪个deb包提供&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;APT 软件工具 (Debian, Ubuntu 以及类似系统)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;apt-get install package_name 安装/更新一个 deb 包&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;apt-cdrom install package_name 从光盘安装/更新一个 deb 包&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;apt-get update 升级列表中的软件包&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;apt-get upgrade 升级所有已安装的软件&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;apt-get remove package_name 从系统删除一个deb包&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;apt-get check 确认依赖的软件仓库正确&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;apt-get clean 从下载的软件包中清理缓存&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;apt-cache search searched-package 返回包含所要搜索字符串的软件包名称&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;14-查看文件内容&quot;&gt;&lt;a href=&quot;#14-%E6%9F%A5%E7%9C%8B%E6%96%87%E4%BB%B6%E5%86%85%E5%AE%B9&quot;&gt;&lt;/a&gt;14. 查看文件内容&lt;/h2&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;cat file1 从第一个字节开始正向查看文件的内容&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;tac file1 从最后一行开始反向查看一个文件的内容&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;more file1 查看一个长文件的内容&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;less file1 类似于 &apos;more&apos; 命令，但是它允许在文件中和正向操作一样的反向操作&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;head -2 file1 查看一个文件的前两行&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;tail -2 file1 查看一个文件的最后两行&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;tail -f /var/log/messages 实时查看被添加到一个文件中的内容&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;15-文本处理&quot;&gt;&lt;a href=&quot;#15-%E6%96%87%E6%9C%AC%E5%A4%84%E7%90%86&quot;&gt;&lt;/a&gt;15. 文本处理&lt;/h2&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;cat file1 file2 ... | command &amp;#x3C;&gt; file1_in.txt_or_file1_out.txt general syntax for text manipulation using PIPE, STDIN and STDOUT&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;cat file1 | command( sed, grep, awk, grep, etc...) &gt; result.txt 合并一个文件的详细说明文本，并将简介写入一个新文件中&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;cat file1 | command( sed, grep, awk, grep, etc...) &gt;&gt; result.txt 合并一个文件的详细说明文本，并将简介写入一个已有的文件中&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;grep Aug /var/log/messages 在文件 &apos;/var/log/messages&apos;中查找关键词&quot;Aug&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;grep ^Aug /var/log/messages 在文件 &apos;/var/log/messages&apos;中查找以&quot;Aug&quot;开始的词汇&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;grep [0-9] /var/log/messages 选择 &apos;/var/log/messages&apos; 文件中所有包含数字的行&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;grep Aug -R /var/log/* 在目录 &apos;/var/log&apos; 及随后的目录中搜索字符串&quot;Aug&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;sed &apos;s/stringa1/stringa2/g&apos; example.txt 将example.txt文件中的 &quot;string1&quot; 替换成 &quot;string2&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;sed &apos;/^$/d&apos; example.txt 从example.txt文件中删除所有空白行&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;sed &apos;/ *#/d; /^$/d&apos; example.txt 从example.txt文件中删除所有注释和空白行&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;echo &apos;esempio&apos; | tr &apos;[:lower:]&apos; &apos;[:upper:]&apos; 合并上下单元格内容&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;sed -e &apos;1d&apos; result.txt 从文件example.txt 中排除第一行&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;sed -n &apos;/stringa1/p&apos; 查看只包含词汇 &quot;string1&quot;的行&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;sed -e &apos;s/ *$//&apos; example.txt 删除每一行最后的空白字符&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;sed -e &apos;s/stringa1//g&apos; example.txt 从文档中只删除词汇 &quot;string1&quot; 并保留剩余全部&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;sed -n &apos;1,5p;5q&apos; example.txt 查看从第一行到第5行内容&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;sed -n &apos;5p;5q&apos; example.txt 查看第5行&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;sed -e &apos;s/00*/0/g&apos; example.txt 用单个零替换多个零&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;cat -n file1 标示文件的行数&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;cat example.txt | awk &apos;NR%2==1&apos; 删除example.txt文件中的所有偶数行&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;echo a b c | awk &apos;{print $1}&apos; 查看一行第一栏&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;echo a b c | awk &apos;{print $1,$3}&apos; 查看一行的第一和第三栏&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;paste file1 file2 合并两个文件或两栏的内容&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;paste -d &apos;+&apos; file1 file2 合并两个文件或两栏的内容，中间用&quot;+&quot;区分&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;sort file1 file2 排序两个文件的内容&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;sort file1 file2 | uniq 取出两个文件的并集(重复的行只保留一份)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;sort file1 file2 | uniq -u 删除交集，留下其他的行&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;sort file1 file2 | uniq -d 取出两个文件的交集(只留下同时存在于两个文件中的文件)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;comm -1 file1 file2 比较两个文件的内容只删除 &apos;file1&apos; 所包含的内容&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;comm -2 file1 file2 比较两个文件的内容只删除 &apos;file2&apos; 所包含的内容&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;comm -3 file1 file2 比较两个文件的内容只删除两个文件共有的部分&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;16-字符设置和文件格式转换&quot;&gt;&lt;a href=&quot;#16-%E5%AD%97%E7%AC%A6%E8%AE%BE%E7%BD%AE%E5%92%8C%E6%96%87%E4%BB%B6%E6%A0%BC%E5%BC%8F%E8%BD%AC%E6%8D%A2&quot;&gt;&lt;/a&gt;16. 字符设置和文件格式转换&lt;/h2&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;dos2unix filedos.txt fileunix.txt 将一个文本文件的格式从MSDOS转换成UNIX&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;unix2dos fileunix.txt filedos.txt 将一个文本文件的格式从UNIX转换成MSDOS&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;recode ..HTML &amp;#x3C; page.txt &gt; page.html 将一个文本文件转换成html&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;recode -l | more 显示所有允许的转换格式&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;17-文件系统分析&quot;&gt;&lt;a href=&quot;#17-%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F%E5%88%86%E6%9E%90&quot;&gt;&lt;/a&gt;17. 文件系统分析&lt;/h2&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;badblocks -v /dev/hda1 检查磁盘hda1上的坏磁块&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;fsck /dev/hda1 修复/检查hda1磁盘上linux文件系统的完整性&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;fsck.ext2 /dev/hda1 修复/检查hda1磁盘上ext2文件系统的完整性&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;e2fsck /dev/hda1 修复/检查hda1磁盘上ext2文件系统的完整性&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;e2fsck -j /dev/hda1 修复/检查hda1磁盘上ext3文件系统的完整性&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;fsck.ext3 /dev/hda1 修复/检查hda1磁盘上ext3文件系统的完整性&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;fsck.vfat /dev/hda1 修复/检查hda1磁盘上fat文件系统的完整性&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;fsck.msdos /dev/hda1 修复/检查hda1磁盘上dos文件系统的完整性&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;dosfsck /dev/hda1 修复/检查hda1磁盘上dos文件系统的完整性&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;18-初始化一个文件系统&quot;&gt;&lt;a href=&quot;#18-%E5%88%9D%E5%A7%8B%E5%8C%96%E4%B8%80%E4%B8%AA%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F&quot;&gt;&lt;/a&gt;18. 初始化一个文件系统&lt;/h2&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;mkfs /dev/hda1 在hda1分区创建一个文件系统&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;mke2fs /dev/hda1 在hda1分区创建一个linux ext2的文件系统&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;mke2fs -j /dev/hda1 在hda1分区创建一个linux ext3(日志型)的文件系统&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;mkfs -t vfat 32 -F /dev/hda1 创建一个 FAT32 文件系统&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;fdformat -n /dev/fd0 格式化一个软盘&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;mkswap /dev/hda3 创建一个swap文件系统&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;19-swap-文件系统&quot;&gt;&lt;a href=&quot;#19-swap-%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F&quot;&gt;&lt;/a&gt;19. SWAP 文件系统&lt;/h2&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;mkswap /dev/hda3 创建一个swap文件系统&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;swapon /dev/hda3 启用一个新的swap文件系统&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;swapon /dev/hda2 /dev/hdb3 启用两个swap分区&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;20-备份&quot;&gt;&lt;a href=&quot;#20-%E5%A4%87%E4%BB%BD&quot;&gt;&lt;/a&gt;20. 备份&lt;/h2&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;dump -0aj -f /tmp/home0.bak /home 制作一个 &apos;/home&apos; 目录的完整备份&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;dump -1aj -f /tmp/home0.bak /home 制作一个 &apos;/home&apos; 目录的交互式备份&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;restore -if /tmp/home0.bak 还原一个交互式备份&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;rsync -rogpav --delete /home /tmp 同步两边的目录&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;rsync -rogpav -e ssh --delete /home ip_address:/tmp 通过SSH通道rsync&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;rsync -az -e ssh --delete ip_addr:/home/public /home/local 通过ssh和压缩将一个远程目录同步到本地目录&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;rsync -az -e ssh --delete /home/local ip_addr:/home/public 通过ssh和压缩将本地目录同步到远程目录&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;dd bs=1M if=/dev/hda | gzip | ssh user@ip_addr &apos;dd of=hda.gz&apos; 通过ssh在远程主机上执行一次备份本地磁盘的操作&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;dd if=/dev/sda of=/tmp/file1 备份磁盘内容到一个文件&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;tar -Puf backup.tar /home/user 执行一次对 &apos;/home/user&apos; 目录的交互式备份操作&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;( cd /tmp/local/ &amp;#x26;&amp;#x26; tar c . ) | ssh -C user@ip_addr &apos;cd /home/share/ &amp;#x26;&amp;#x26; tar x -p&apos; 通过ssh在远程目录中复制一个目录内容&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;( tar c /home ) | ssh -C user@ip_addr &apos;cd /home/backup-home &amp;#x26;&amp;#x26; tar x -p&apos; 通过ssh在远程目录中复制一个本地目录&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;tar cf - . | (cd /tmp/backup ; tar xf - ) 本地将一个目录复制到另一个地方，保留原有权限及链接&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;find /home/user1 -name &apos;*.txt&apos; | xargs cp -av --target-directory=/home/backup/ --parents 从一个目录查找并复制所有以 &apos;.txt&apos; 结尾的文件到另一个目录&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;find /var/log -name &apos;*.log&apos; | tar cv --files-from=- | bzip2 &gt; log.tar.bz2 查找所有以 &apos;.log&apos; 结尾的文件并做成一个bzip包&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;dd if=/dev/hda of=/dev/fd0 bs=512 count=1 做一个将 MBR (Master Boot Record)内容复制到软盘的动作&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;dd if=/dev/fd0 of=/dev/hda bs=512 count=1 从已经保存到软盘的备份中恢复MBR内容&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;21-光盘&quot;&gt;&lt;a href=&quot;#21-%E5%85%89%E7%9B%98&quot;&gt;&lt;/a&gt;21. 光盘&lt;/h2&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;cdrecord -v gracetime=2 dev=/dev/cdrom -eject blank=fast -force 清空一个可复写的光盘内容&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;mkisofs /dev/cdrom &gt; cd.iso 在磁盘上创建一个光盘的iso镜像文件&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;mkisofs /dev/cdrom | gzip &gt; cd_iso.gz 在磁盘上创建一个压缩了的光盘iso镜像文件&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;mkisofs -J -allow-leading-dots -R -V &quot;Label CD&quot; -iso-level 4 -o ./cd.iso data_cd 创建一个目录的iso镜像文件&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;cdrecord -v dev=/dev/cdrom cd.iso 刻录一个ISO镜像文件&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;gzip -dc cd_iso.gz | cdrecord dev=/dev/cdrom - 刻录一个压缩了的ISO镜像文件&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;mount -o loop cd.iso /mnt/iso 挂载一个ISO镜像文件&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;cd-paranoia -B 从一个CD光盘转录音轨到 wav 文件中&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;cd-paranoia -- &quot;-3&quot; 从一个CD光盘转录音轨到 wav 文件中（参数-3）&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;cdrecord --scanbus 扫描总线以识别scsi通道&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;dd if=/dev/hdc | md5sum 校验一个设备的md5sum编码，例如一张 CD&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;22-网络以太网和-wifi-无线&quot;&gt;&lt;a href=&quot;#22-%E7%BD%91%E7%BB%9C%EF%BC%88%E4%BB%A5%E5%A4%AA%E7%BD%91%E5%92%8C-wifi-%E6%97%A0%E7%BA%BF%EF%BC%89&quot;&gt;&lt;/a&gt;22. 网络（以太网和 WIFI 无线）&lt;/h2&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;ifconfig eth0 显示一个以太网卡的配置&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;ifup eth0 启用一个 &apos;eth0&apos; 网络设备&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;ifdown eth0 禁用一个 &apos;eth0&apos; 网络设备&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;ifconfig eth0 192.168.1.1 netmask 255.255.255.0 控制IP地址&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;ifconfig eth0 promisc 设置 &apos;eth0&apos; 成混杂模式以嗅探数据包 (sniffing)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;dhclient eth0 以dhcp模式启用 &apos;eth0&apos;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;route -n show routing table&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;route add -net 0/0 gw IP_Gateway configura default gateway&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.1.1 configure static route to reach network &apos;192.168.0.0/16&apos;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;route del 0/0 gw IP_gateway remove static route&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;echo &quot;1&quot; &gt; /proc/sys/net/ipv4/ip_forward activate ip routing&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;hostname show hostname of system&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;host www.example.com lookup hostname to resolve name to ip address and viceversa(1)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;nslookup www.example.com lookup hostname to resolve name to ip address and viceversa(2)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;ip link show show link status of all interfaces&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;mii-tool eth0 show link status of &apos;eth0&apos;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;ethtool eth0 show statistics of network card &apos;eth0&apos;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;netstat -tup show all active network connections and their PID&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;netstat -tupl show all network services listening on the system and their PID&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;tcpdump tcp port 80 show all HTTP traffic&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;iwlist scan show wireless networks&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;iwconfig eth1 show configuration of a wireless network card&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;hostname show hostname&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;host www.example.com lookup hostname to resolve name to ip address and viceversa&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;nslookup www.example.com lookup hostname to resolve name to ip address and viceversa&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;whois www.example.com lookup on Whois database&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;23-列出目录内容&quot;&gt;&lt;a href=&quot;#23-%E5%88%97%E5%87%BA%E7%9B%AE%E5%BD%95%E5%86%85%E5%AE%B9&quot;&gt;&lt;/a&gt;23. 列出目录内容&lt;/h2&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;ls -a：显示所有文件（包括隐藏文件）；&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;ls -l：显示详细信息；&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;ls -R：递归显示子目录结构；&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;ls -ld：显示目录和链接信息；&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;ctrl+r：历史记录中所搜命令（输入命令中的任意一个字符）；&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;Linux中以.开头的文件是隐藏文件；&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;pwd:显示当前目录&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;24-查看文件的类型&quot;&gt;&lt;a href=&quot;#24-%E6%9F%A5%E7%9C%8B%E6%96%87%E4%BB%B6%E7%9A%84%E7%B1%BB%E5%9E%8B&quot;&gt;&lt;/a&gt;24. 查看文件的类型&lt;/h2&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;file:查看文件的类型&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;25-复制文件目录&quot;&gt;&lt;a href=&quot;#25-%E5%A4%8D%E5%88%B6%E6%96%87%E4%BB%B6%E7%9B%AE%E5%BD%95&quot;&gt;&lt;/a&gt;25. 复制文件目录&lt;/h2&gt;
&lt;p&gt;1、&lt;strong&gt;cp&lt;/strong&gt;：复制文件和目录 cp 源文件（文件夹）目标文件（文件夹）&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;常用参数：-r:递归复制整个目录树；-v：显示详细信息；&lt;/p&gt;
&lt;p&gt;复制文件夹时要在 cp 命令后面加一个-r 参数：&lt;/p&gt;
&lt;p&gt;如：cp -r 源文件夹 目标文件夹&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;2、&lt;strong&gt;touch+文件名&lt;/strong&gt;：当文件不存在的时候，创建相应的文件；当文件存在的时候，修改文件的创建时间。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;功能：生成一个空文件或修改文件的存取/修改的时间记录值。&lt;/p&gt;
&lt;p&gt;touch * ：将当前下的文件时间修改为系统的当前时间&lt;/p&gt;
&lt;p&gt;touch –d 20040210 test：将 test 文件的日期改为 20040210&lt;/p&gt;
&lt;p&gt;touch abc 　：若 abc 文件存在，则修改为系统的当前时间；若不存在，则生成一个为当前时间的空文件&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;3、&lt;strong&gt;mv 文件 目标目录&lt;/strong&gt;：移动或重命名文件或目录（如果指定文件名，则可以重命名文件）。可以将文件及目录移到另一目录下，或更改文件及目录的名称。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;格式为：mv [参数]&amp;#x3C;源文件或目录&gt; &amp;#x3C;目标文件或目录&gt;&lt;/p&gt;
&lt;p&gt;mva.txt ../：将 a.txt 文件移动上层目录&lt;/p&gt;
&lt;p&gt;mv a.txt b.txt：将 a.txt 改名为 b.txt&lt;/p&gt;
&lt;p&gt;mvdir2 ../：将 dir2 目录上移一层&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;4、&lt;strong&gt;rm&lt;/strong&gt;：删除文件；&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;常用参数：-i：交互式 -r：递归的删除包括目录中的所有内容&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;5、&lt;strong&gt;mkdir +文件夹名称&lt;/strong&gt;：创建文件夹；&lt;/p&gt;
&lt;p&gt;6、&lt;strong&gt;rm -r +文件夹名称&lt;/strong&gt;：删除文件夹（空文件夹和非空文件夹都可删除）&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;rmdir 文件夹名称：删除文件夹（只能删除空文件夹）&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;7、&lt;strong&gt;mkdir -p dir1/dir2&lt;/strong&gt;：在当前目录下创建 dir1 目录，并在 dir1 目录下创建 dir2 目录， 也就是连续创建两个目录（dir1/和 dir1/dir2）&lt;/p&gt;
&lt;p&gt;8、&lt;strong&gt;rmdir –p dir1/dir2&lt;/strong&gt;：删除 dir1 下的 dir2 目录，若 dir1 目录为空也删除它&lt;/p&gt;
&lt;p&gt;9、&lt;strong&gt;rm *&lt;/strong&gt;：删除当前目录下的所有文件&lt;/p&gt;
&lt;p&gt;10、&lt;strong&gt;-f 参数&lt;/strong&gt;：强迫删除文件 rm –f *.txt：强迫删除所有以后缀名为 txt 文件&lt;/p&gt;
&lt;p&gt;11、&lt;strong&gt;-i 参数&lt;/strong&gt;：删除文件时询问&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;rm 　–i * ：删除当前目录下的所有文件会有如下提示：&lt;/p&gt;
&lt;p&gt;rm\:backup\:is a directory 　　　 遇到目录会略过&lt;/p&gt;
&lt;p&gt;rm: remove ‘myfiles.txt’ ? Y&lt;/p&gt;
&lt;p&gt;删除文件时会询问,可按 Y 或 N 键表示允许或拒绝删除文件&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;12、&lt;strong&gt;-r 参数&lt;/strong&gt;：递归删除（连子目录一同删除，这是一个相当常用的参数）&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;rm -r test ：删除 test 目录（含 test 目录下所有文件和子目录）&lt;/p&gt;
&lt;p&gt;rm -r *：删除所有文件（含当前目录所有文件、所有子目录和子目录下的文件） 一般在删除目录时 r 和 f 一起用，避免麻烦&lt;/p&gt;
&lt;p&gt;rm -rf test ：强行删除、不加询问&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;13、&lt;strong&gt;grep&lt;/strong&gt;：功能：在文件中搜索匹配的字符并进行输出&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;格式：grep[参数] &amp;#x3C;要找的字串&gt; &amp;#x3C;要寻找字 串的源文件&gt;&lt;/p&gt;
&lt;p&gt;greplinux test.txt：搜索 test.txt 文件中字符串 linux 并输出&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;14、&lt;strong&gt;ln 命令&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;功能：在文件和目录之间建立链接&lt;/p&gt;
&lt;p&gt;格式：ln [参数] &amp;#x3C;源文件或目录&gt; &amp;#x3C;目标文件或目录&gt;&lt;/p&gt;
&lt;p&gt;链接分“软链接”和“硬链接”&lt;/p&gt;
&lt;p&gt;1.软链接:&lt;/p&gt;
&lt;p&gt;ln–s /usr/share/do doc ：创建一个链接文件 doc,并指向目录/usr/share/do&lt;/p&gt;
&lt;p&gt;2.硬链接:&lt;/p&gt;
&lt;p&gt;ln /usr/share/test hard：创建一个硬链接文件 hard，这时对于 test 文件对应 的存储区域来说，又多了一个文件指向它&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;26-系统常用命令&quot;&gt;&lt;a href=&quot;#26-%E7%B3%BB%E7%BB%9F%E5%B8%B8%E7%94%A8%E5%91%BD%E4%BB%A4&quot;&gt;&lt;/a&gt;26. 系统常用命令&lt;/h2&gt;
&lt;h3 id=&quot;261显示命令&quot;&gt;&lt;a href=&quot;#261%E3%80%81%E6%98%BE%E7%A4%BA%E5%91%BD%E4%BB%A4&quot;&gt;&lt;/a&gt;26.1、显示命令&lt;/h3&gt;
&lt;p&gt;date:查看或设置当前系统的时间：格式化显示时间：+%Y—%m—%d；&lt;/p&gt;
&lt;p&gt;date -s:设置当前系统的时间&lt;/p&gt;
&lt;p&gt;hwclock(clock)：显示硬件时钟时间(需要管理员权限)；&lt;/p&gt;
&lt;p&gt;cal：查看日历&lt;/p&gt;
&lt;p&gt;格式 cal [参数] 月年&lt;/p&gt;
&lt;p&gt;cal：显示当月的日历 cal4 2004 ：显示 2004 年 4 月的日历&lt;/p&gt;
&lt;p&gt;cal- y 2003：显示 2003 年的日历&lt;/p&gt;
&lt;p&gt;uptime：查看系统运行时间&lt;/p&gt;
&lt;h3 id=&quot;262输出查看命令&quot;&gt;&lt;a href=&quot;#262%E3%80%81%E8%BE%93%E5%87%BA%E6%9F%A5%E7%9C%8B%E5%91%BD%E4%BB%A4&quot;&gt;&lt;/a&gt;26.2、输出查看命令&lt;/h3&gt;
&lt;p&gt;echo：显示输入的内容 追加文件 echo “liuyazhuang” &gt;&gt; liuyazhuang.txt&lt;/p&gt;
&lt;p&gt;cat：显示文件内容,也可以将数个文件合并成一个文件。&lt;/p&gt;
&lt;p&gt;格式：格式：cat[参数]&amp;#x3C;文件名&gt;&lt;/p&gt;
&lt;p&gt;cat test.txt：显示 test.txt 文件内容&lt;/p&gt;
&lt;p&gt;cat test.txt | more ：逐页显示 test.txt 文件中的内容&lt;/p&gt;
&lt;p&gt;cat test.txt &gt;&gt; test1.txt ：将 test.txt 的内容附加到 test1.txt 文件之后&lt;/p&gt;
&lt;p&gt;cat test.txt test2.txt &gt;readme.txt 　: 将 test.txt 和 test2.txt 文件合并成 readme.txt 文件&lt;/p&gt;
&lt;p&gt;head:显示文件的头几行（默认 10 行） -n:指定显示的行数格式：head -n 文件名&lt;/p&gt;
&lt;p&gt;tail：显示文件的末尾几行（默认 10 行）-n：指定显示的行数 -f：追踪显示文件更新 （一般用于查看日志，命令不会退出，而是持续显示新加入的内容）&lt;/p&gt;
&lt;p&gt;格式：格式：tail[参数]&amp;#x3C;文件名&gt;&lt;/p&gt;
&lt;p&gt;tail-10 /etc/passwd ：显示/etc/passwd/文件的倒数 10 行内容&lt;/p&gt;
&lt;p&gt;tail+10 /etc/passwd ：显示/etc/passwd/文件从第 10 行开始到末尾的内容&lt;/p&gt;
&lt;p&gt;more：用于翻页显示文件内容（只能向下翻页）&lt;/p&gt;
&lt;p&gt;more 命令是一般用于要显示的内容会超过一个画面长度的情况。为了避免画 面显示时瞬间就闪过去，用户可以使用 more 命令，让画面在显示满一页时暂停，此时可按空格键继续显示下一个画面，或按 Q 键停止显示。&lt;/p&gt;
&lt;p&gt;ls -al |more：以长格形式显示 etc 目录下的文件列表，显示满一个画面便暂停，可 按空格键继续显示下一画面，或按 Q 键跳离&lt;/p&gt;
&lt;p&gt;less：翻页显示文件内容（带上下翻页）按下上键分页，按 q 退出、‘&lt;/p&gt;
&lt;p&gt;less 命令的用法与 more 命令类似，也可以用来浏览超过一页的文件。所不同 的是 less 命令除了可以按空格键向下显示文件外，还可以利用上下键来卷动文件。当要结束浏览时，只要在 less 命令的提示符“：”下按 Q 键即可。&lt;/p&gt;
&lt;p&gt;ls -al | less：以长格形式列出/etc 目录中所有的内容。用户可按上下键浏览或按 Q 键跳离&lt;/p&gt;
&lt;h3 id=&quot;263查看硬件信息&quot;&gt;&lt;a href=&quot;#263%E3%80%81%E6%9F%A5%E7%9C%8B%E7%A1%AC%E4%BB%B6%E4%BF%A1%E6%81%AF&quot;&gt;&lt;/a&gt;26.3、查看硬件信息&lt;/h3&gt;
&lt;p&gt;Ispci：查看 PCI 设备 -v：查看详细信息&lt;/p&gt;
&lt;p&gt;Isusb：查看 USB 设备 -v：查看详细信息&lt;/p&gt;
&lt;p&gt;Ismod：查看加载的模块(驱动)&lt;/p&gt;
&lt;h3 id=&quot;264关机重启&quot;&gt;&lt;a href=&quot;#264%E3%80%81%E5%85%B3%E6%9C%BA%E3%80%81%E9%87%8D%E5%90%AF&quot;&gt;&lt;/a&gt;26.4、关机、重启&lt;/h3&gt;
&lt;p&gt;shutdown 关闭、重启计算机&lt;/p&gt;
&lt;p&gt;shutdown[关机、重启]时间 -h 关闭计算机 -r：重启计算机&lt;/p&gt;
&lt;p&gt;如：立即关机：shutdown -h now&lt;/p&gt;
&lt;p&gt;10 分钟后关机：shutdown -h +10&lt;/p&gt;
&lt;p&gt;23:30 分关机：shutdown -h 23:30&lt;/p&gt;
&lt;p&gt;立即重启：shutdown -r now&lt;/p&gt;
&lt;p&gt;poweroff：立即关闭计算机&lt;/p&gt;
&lt;p&gt;reboot：立即重启计算机&lt;/p&gt;
&lt;h3 id=&quot;265归档压缩&quot;&gt;&lt;a href=&quot;#265%E3%80%81%E5%BD%92%E6%A1%A3%E3%80%81%E5%8E%8B%E7%BC%A9&quot;&gt;&lt;/a&gt;26.5、归档、压缩&lt;/h3&gt;
&lt;p&gt;zip:压缩文件 zip liuyazhuang.zip myfile 格式为：“zip 压缩后的 zip 文件文件名”&lt;/p&gt;
&lt;p&gt;unzip：解压文件 unzip liuyazhuang.zip&lt;/p&gt;
&lt;p&gt;gzip：压缩文件 gzip 文件名&lt;/p&gt;
&lt;p&gt;tar：归档文件&lt;/p&gt;
&lt;p&gt;tar -cvf out.tar liuyazhuang 打包一个归档（将文件”liuyazhuang”打包成一个归档）&lt;/p&gt;
&lt;p&gt;tar -xvf liuyazhuang.tar 释放一个归档（释放 liuyazhuang.tar 归档）&lt;/p&gt;
&lt;p&gt;tar -cvzf backup.tar.gz/etc&lt;/p&gt;
&lt;p&gt;-z 参数将归档后的归档文件进行 gzip 压缩以减少大小。&lt;/p&gt;
&lt;p&gt;-c：创建一个新 tar 文件&lt;/p&gt;
&lt;p&gt;-v：显示运行过程的信息&lt;/p&gt;
&lt;p&gt;-f：指定文件名&lt;/p&gt;
&lt;p&gt;-z：调用 gzip 压缩命令进行压缩&lt;/p&gt;
&lt;p&gt;-t：查看压缩文件的内容&lt;/p&gt;
&lt;p&gt;-x：解开 tar 文件&lt;/p&gt;
&lt;p&gt;tar -cvf test.tar *：将所有文件打包成 test.tar,扩展名.tar 需自行加上&lt;/p&gt;
&lt;p&gt;tar -zcvf test.tar.gz *：将所有文件打包成 test.tar,再用 gzip 命令压缩&lt;/p&gt;
&lt;p&gt;tar -tf test.tar ：查看 test.tar 文件中包括了哪些文件&lt;/p&gt;
&lt;p&gt;tar -xvf test.tar 将 test.tar 解开&lt;/p&gt;
&lt;p&gt;tar -zxvf foo.tar.gz 解压缩&lt;/p&gt;
&lt;p&gt;gzip 各 gunzip 命令&lt;/p&gt;
&lt;p&gt;gziptest.txt ：压缩文件时，不需要任何参数&lt;/p&gt;
&lt;p&gt;gizp–l test.txt.gz：显示压缩率&lt;/p&gt;
&lt;h3 id=&quot;266查找&quot;&gt;&lt;a href=&quot;#266%E3%80%81%E6%9F%A5%E6%89%BE&quot;&gt;&lt;/a&gt;26.6、查找&lt;/h3&gt;
&lt;p&gt;locate：快速查找文件、文件夹：locate keyword&lt;/p&gt;
&lt;p&gt;此命令需要预先建立数据库，数据库默认每天更新一次，可用 updatedb 命令手工建立、更新数据库。欢迎关注我们，公号终码一生。&lt;/p&gt;
&lt;p&gt;find 查找位置查找参数&lt;/p&gt;
&lt;p&gt;如：&lt;/p&gt;
&lt;p&gt;find . -name&lt;em&gt;liuyazhuang&lt;/em&gt;查找当前目录下名称中含有”liuyazhuang”的文件&lt;/p&gt;
&lt;p&gt;find / -name *.conf 查找根目录下（整个硬盘）下后缀为.conf 的文件&lt;/p&gt;
&lt;p&gt;find / -perm 777 查找所有权限是 777 的文件&lt;/p&gt;
&lt;p&gt;find / -type d 返回根目录下所有的目录&lt;/p&gt;
&lt;p&gt;find . -name “a*“-exec ls -l {} ;&lt;/p&gt;
&lt;p&gt;find 功能：用来寻找文件或目录。&lt;/p&gt;
&lt;p&gt;格式：find [&amp;#x3C;路径&gt;][匹配条件]&lt;/p&gt;
&lt;p&gt;find / -name httpd.conf 搜索系统根目录下名为 httpd.conf 的文件&lt;/p&gt;
&lt;h3 id=&quot;267ctrlc-终止当前的命令&quot;&gt;&lt;a href=&quot;#267%E3%80%81ctrlc-%E7%BB%88%E6%AD%A2%E5%BD%93%E5%89%8D%E7%9A%84%E5%91%BD%E4%BB%A4&quot;&gt;&lt;/a&gt;26.7、ctrl+c :终止当前的命令&lt;/h3&gt;
&lt;h3 id=&quot;268who-或-w-命令&quot;&gt;&lt;a href=&quot;#268%E3%80%81who-%E6%88%96-w-%E5%91%BD%E4%BB%A4&quot;&gt;&lt;/a&gt;26.8、who 或 w 命令&lt;/h3&gt;
&lt;p&gt;功能：查看当前系统中有哪些用户登录&lt;/p&gt;
&lt;p&gt;格式：who/w[参数]&lt;/p&gt;
&lt;h3 id=&quot;269dmesg-命令&quot;&gt;&lt;a href=&quot;#269%E3%80%81dmesg-%E5%91%BD%E4%BB%A4&quot;&gt;&lt;/a&gt;26.9、dmesg 命令&lt;/h3&gt;
&lt;p&gt;功能：显示系统诊断信息、操作系统版本号、物理内存的大小以及其它信息&lt;/p&gt;
&lt;h3 id=&quot;2610df-命令&quot;&gt;&lt;a href=&quot;#2610%E3%80%81df-%E5%91%BD%E4%BB%A4&quot;&gt;&lt;/a&gt;26.10、df 命令&lt;/h3&gt;
&lt;p&gt;功能：用于查看文件系统的各个分区的占用情况&lt;/p&gt;
&lt;h3 id=&quot;2611du-命令&quot;&gt;&lt;a href=&quot;#2611%E3%80%81du-%E5%91%BD%E4%BB%A4&quot;&gt;&lt;/a&gt;26.11、du 命令&lt;/h3&gt;
&lt;p&gt;功能：查看某个目录中各级子目录所使用的硬盘空间数&lt;/p&gt;
&lt;p&gt;格式：du [参数] &amp;#x3C;目录名&gt;&lt;/p&gt;
&lt;h3 id=&quot;2612free-命令&quot;&gt;&lt;a href=&quot;#2612%E3%80%81free-%E5%91%BD%E4%BB%A4&quot;&gt;&lt;/a&gt;26.12、free 命令&lt;/h3&gt;
&lt;p&gt;功能：用于查看系统内存，虚拟内存（交换空间）的大小占用情况&lt;/p&gt;
&lt;h2 id=&quot;27-vim&quot;&gt;&lt;a href=&quot;#27-vim&quot;&gt;&lt;/a&gt;27. VIM&lt;/h2&gt;
&lt;p&gt;VIM 是一款功能强大的命令行文本编辑器，在 Linux 中通过 vim 命令可以启动 vim 编辑器。&lt;/p&gt;
&lt;p&gt;一般使用 vim + 目标文件路径 的形式使用 vim&lt;/p&gt;
&lt;p&gt;如果目标文件存在，则 vim 打开目标文件，如果目标文件不存在，则 vim 新建并打开该文件&lt;/p&gt;
&lt;p&gt;\:q：退出 vim 编辑器&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;VIM 模式&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;vim 拥有三种模式：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;（1）命令模式（常规模式）&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;vim 启动后，默认进入命令模式，任何模式都可以通过 esc 键回到命令模式（可以多按几次），命令模式下可以键入不同的命令完成选择、复制、粘贴、撤销等操作。&lt;/p&gt;
&lt;p&gt;命名模式常用命令如下：&lt;/p&gt;
&lt;p&gt;i : 在光标前插入文本；&lt;/p&gt;
&lt;p&gt;o:在当前行的下面插入新行；&lt;/p&gt;
&lt;p&gt;dd:删除整行；&lt;/p&gt;
&lt;p&gt;yy：将当前行的内容放入缓冲区（复制当前行）&lt;/p&gt;
&lt;p&gt;n+yy :将 n 行的内容放入缓冲区（复制 n 行）&lt;/p&gt;
&lt;p&gt;p:将缓冲区中的文本放入光标后（粘贴）&lt;/p&gt;
&lt;p&gt;u：撤销上一个操作&lt;/p&gt;
&lt;p&gt;r:替换当前字符&lt;/p&gt;
&lt;p&gt;/ 查找关键字&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;（2）插入模式&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;在命令模式下按 ” i “键，即可进入插入模式，在插入模式可以输入编辑文本内容，使用 esc 键可以返回命令模式。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;（3）ex 模式&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;在命令模式中按” : “键可以进入 ex 模式，光标会移动到底部，在这里可以保存修改或退出 vim.&lt;/p&gt;
&lt;p&gt;ext 模式常用命令如下：&lt;/p&gt;
&lt;p&gt;\:w ：保存当前的修改&lt;/p&gt;
&lt;p&gt;\:q ：退出&lt;/p&gt;
&lt;p&gt;\:q! ：强制退出，保存修改&lt;/p&gt;
&lt;p&gt;\:x :保存并退出，相当于\:wq&lt;/p&gt;
&lt;p&gt;\:set number 显示行号&lt;/p&gt;
&lt;p&gt;:! 系统命令 执行一个系统命令并显示结果&lt;/p&gt;
&lt;p&gt;\:sh ：切换到命令行，使用 ctrl+d 切换回 vim&lt;/p&gt;
&lt;h2 id=&quot;28-软件包管理命令rpm&quot;&gt;&lt;a href=&quot;#28-%E8%BD%AF%E4%BB%B6%E5%8C%85%E7%AE%A1%E7%90%86%E5%91%BD%E4%BB%A4rpm&quot;&gt;&lt;/a&gt;28. 软件包管理命令(RPM)&lt;/h2&gt;
&lt;h3 id=&quot;281软件包的安装&quot;&gt;&lt;a href=&quot;#281%E3%80%81%E8%BD%AF%E4%BB%B6%E5%8C%85%E7%9A%84%E5%AE%89%E8%A3%85&quot;&gt;&lt;/a&gt;28.1、软件包的安装&lt;/h3&gt;
&lt;p&gt;使用 RPM 命令的安装模式可以将软件包内所有的组件放到系统中的正确路径，安装软件包的命令是\:rpm –ivh wu-ftpd-2.6.2-8.i386.rpm&lt;/p&gt;
&lt;p&gt;i：作用 rpm 的安装模式 v: 校验文件信息 h: 以＃号显示安装进度&lt;/p&gt;
&lt;h3 id=&quot;282软件包的删除&quot;&gt;&lt;a href=&quot;#282%E3%80%81%E8%BD%AF%E4%BB%B6%E5%8C%85%E7%9A%84%E5%88%A0%E9%99%A4&quot;&gt;&lt;/a&gt;28.2、软件包的删除&lt;/h3&gt;
&lt;p&gt;删除模式会将指定软件包的内容全部删除，但并不包括已更改过的配置文件，删除 RPM 软件包的命令如下：rpm –e wu-ftpd&lt;/p&gt;
&lt;p&gt;注意：这里必须使用软件名“wu-ftpd”或”wu-ftpd-2.6.2-8 而不是使用当初安装时的软件包名.wu-ftpd-2.6.2-8.i386.rpm&lt;/p&gt;
&lt;h3 id=&quot;283软件包升级&quot;&gt;&lt;a href=&quot;#283%E3%80%81%E8%BD%AF%E4%BB%B6%E5%8C%85%E5%8D%87%E7%BA%A7&quot;&gt;&lt;/a&gt;28.3、软件包升级&lt;/h3&gt;
&lt;p&gt;升级模式会安装用户所指定的更新版本，并删除已安装在系统中的相同软件包，升级软件包命令如下：rpm –Uvh wu-ftpd-2.6.2-8.i386.rpm –Uvh：升级参数&lt;/p&gt;
&lt;h3 id=&quot;284软件包更新&quot;&gt;&lt;a href=&quot;#284%E3%80%81%E8%BD%AF%E4%BB%B6%E5%8C%85%E6%9B%B4%E6%96%B0&quot;&gt;&lt;/a&gt;28.4、软件包更新&lt;/h3&gt;
&lt;p&gt;更新模式下，rpm 命令会检查在命令行中所指定的软件包是否比系统中原有的软件 包更新。如果情况属实，rpm 命令会自动更新指定的软件包；反之，若系统中并没有指定软件包的较旧版本，rpm 命令并不会安装此软件包。而在升级模式下，不管系统中是否有较旧的版本，rpm 命令都会安装指定的软件包。&lt;/p&gt;
&lt;p&gt;rpm –Fvhwu-ftpd-2.6.2-8.i386.rpm -Fvh：更新参数&lt;/p&gt;
&lt;h3 id=&quot;285软件包查询&quot;&gt;&lt;a href=&quot;#285%E3%80%81%E8%BD%AF%E4%BB%B6%E5%8C%85%E6%9F%A5%E8%AF%A2&quot;&gt;&lt;/a&gt;28.5、软件包查询&lt;/h3&gt;
&lt;p&gt;若要获取 RPM 软件包的相关信息，可以使用查询模式。使用-q 参数可查询一个已 安装的软件包的内容&lt;/p&gt;
&lt;p&gt;rpm –q wu-ftpd&lt;/p&gt;
&lt;p&gt;查询软件包所安装的位置：rpm –ql package-name&lt;/p&gt;
&lt;p&gt;rpm –ql xv (l 参数：显示文件列表)&lt;/p&gt;&lt;hr style=&quot;border:none;border-top:0.5px solid rgba(0,0,0,0.08);margin:26px 0 14px;&quot; /&gt;
    &lt;p style=&quot;text-align:left;margin:0;font-family:-apple-system,BlinkMacSystemFont,&apos;Segoe UI&apos;,sans-serif;&quot;&gt;
      &lt;a
        href=&quot;https://blog.skywangdev.com&quot;
        style=&quot;
          display:inline-block;
          padding:6px 18px;
          border-radius:999px;
          background:#222;
          color:#fff;
          font-size:13px;
          text-decoration:none;
        &quot;
        target=&quot;_blank&quot;
        rel=&quot;noreferrer&quot;
      &gt;undefined&lt;/a&gt;
    &lt;/p&gt;</description><pubDate>Mon, 12 Sep 2022 00:00:00 GMT</pubDate></item><item><title>第4期 - 配置PXE</title><link>https://blog.skywangdev.com/posts/4/</link><guid isPermaLink="true">https://blog.skywangdev.com/posts/4/</guid><description>&lt;img src=&quot;https://data.skywangdev.com/blog/S-4.jpeg&quot; width=&quot;800&quot;&gt;
&lt;h1 id=&quot;pxe&quot;&gt;PXE&lt;/h1&gt;
&lt;p&gt;快速操作指引，以下操作在 Ubuntu 20.04 下进行&lt;/p&gt;
&lt;h2 id=&quot;安装所需软件&quot;&gt;安装所需软件&lt;/h2&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;sh&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;apt&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; install&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; tftpd-hpa&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; isc-dhcp-server&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; nginx&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;下载操作系统-iso-镜像&quot;&gt;下载操作系统 ISO 镜像&lt;/h2&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;sh&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;rhel-server-7.9-x86_64-dvd.iso&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;rhel-8.3-x86_64-dvd.iso&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;Kylin-Server-10-SP1-Release-Build20-20210518-x86_64.iso&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;Kylin-Server-10-SP2-x86-Release-Build09-20210524.iso&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;制作本地源&quot;&gt;制作本地源&lt;/h2&gt;
&lt;p&gt;以制作 RHEL 7.9 本地源为例，其他发行版做法类似&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;sh&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;mkdir&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; -p&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; /mnt/rhel79&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;mount&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; rhel-server-7.9-x86_64-dvd.iso&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; /mnt/rhel79&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;mkdir&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; -p&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; /var/www/html/rhel79/x86_64&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;cp&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; -r&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; /mnt/rhel79&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; /var/www/html/rhel79/x86_64/base&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;$&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; sudo&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; vim&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; /etc/nginx/sites-enabled/default&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;server&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;  listen&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; 80&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; default_server&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;  root&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; /var/www/html&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;  autoindex&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; on&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;制作-kickstart-文件&quot;&gt;制作 Kickstart 文件&lt;/h2&gt;
&lt;p&gt;可以先手工安装好操作系统后，从 &lt;code&gt;/root/anaconda-ks.cfg&lt;/code&gt; 获取到该文件&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;sh&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;mkdir&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; /var/www/html/kickstart&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;cp&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; rhel79.cfg&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; /var/www/html/kickstart/&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;# 最终目录结构如下&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;/var/www/html&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;├──&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; kickstart&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;│&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;   ├──&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; cdh.cfg&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;│&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;   ├──&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; gbase.cfg&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;│&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;   ├──&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; rhel79.cfg&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;│&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;   ├──&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; v10sp1.cfg&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;│&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;   └──&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; v10sp2.cfg&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;├──&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; rhel79&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;│&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;   └──&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; x86_64&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;│&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;       ├──&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; addons&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;│&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;       ├──&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; base&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;│&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;       └──&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; updates&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;├──&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; rhel83&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;│&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;   └──&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; x86_64&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;│&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;       ├──&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; addons&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;│&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;       ├──&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; base&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;│&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;       └──&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; updates&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;├──&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; rhel84&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;│&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;   └──&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; x86_64&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;│&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;       ├──&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; addons&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;│&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;       ├──&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; base&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;│&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;       └──&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; updates&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;├──&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; v10sp1&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;│&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;   └──&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; x86_64&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;│&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;       ├──&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; addons&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;│&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;       ├──&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; base&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;│&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;       └──&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; updates&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;└──&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; v10sp2&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;    └──&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; x86_64&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;        ├──&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; addons&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;        ├──&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; base&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;        └──&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; updates&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;配置-dhcp&quot;&gt;配置 DHCP&lt;/h2&gt;
&lt;p&gt;注意：先将本机 IP 配置成 &lt;code&gt;10.0.0.1&lt;/code&gt;&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;sh&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;$&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; sudo&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; vim&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; /etc/dhcp/dhcpd.conf&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;default-lease-time&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; 600&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;max-lease-time&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; 7200&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;log-facility&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; local7&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;option&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; arch&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; code&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; 93&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; unsigned&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; integer&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; 16&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;subnet&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; 10.0.0.0&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; netmask&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; 255.255.255.0&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;  range&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; 10.0.0.10&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; 10.0.0.50&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;  next-server&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; 10.0.0.1&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;  class&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &quot;pxeclients&quot;&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;    match&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; if&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; substring&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; (option &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;vendor-class-identifier,&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; 0,&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; 9&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;) = &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;PXEClient&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;    if&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; option&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; arch&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; 00:07&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; or&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; option&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; arch&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; 00:09&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;      # x86-64 EFI BIOS&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;      filename&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &quot;efi/x86_64/BOOTX64.EFI&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    } &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;else&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; if&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; option&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; arch&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; 00:0b&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;      # ARM64 aarch64 EFI BIOS&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;      filename&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &quot;efi/aarch64/BOOTAA64.EFI&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    } &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;else&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;      # Legacy non-EFI BIOS&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;      filename&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &quot;bios/x86_64/pxelinux.0&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;$&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; sudo&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; vim&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; /etc/rsyslog.d/dhcp-relay.conf&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;local7.*&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; -/var/log/dhcp-relay.log&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;# 重启服务&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;systemctl&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; restart&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; isc-dhcp-server&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;配置-tftp&quot;&gt;配置 TFTP&lt;/h2&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;sh&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;$&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; sudo&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; vim&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; /etc/default/tftpd-hpa&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;TFTP_USERNAME&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;tftp&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;TFTP_DIRECTORY&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;/srv/tftp&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;TFTP_ADDRESS&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;:69&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;TFTP_OPTIONS&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;--secure -vvv&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;# 创建 BIOS 目录&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;mkdir&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; -p&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; /srv/tftp/bios/x86_64&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;# 准备 pxelinux.0 和 vesamenu.c32 文件&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;cp&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; /var/www/html/rhel79/x86_64/base/Packages/syslinux-4.05-15.el7.x86_64.rpm&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; .&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;rpm2cpio&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; syslinux-4.05-15.el7.x86_64.rpm&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; |&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; cpio&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; -dimv&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;cp&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; usr/share/syslinux/pxelinux.0&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; /srv/tftp/bios/x86_64/&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;cp&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; usr/share/syslinux/vesamenu.c32&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; /srv/tftp/bios/x86_64/&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;# 准备 vmlinuz 和 initrd.img 文件&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;mkdir&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; -p&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; /srv/tftp/bios/x86_64/images/rhel79&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;cp&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; /var/www/html/rhel79/x86_64/base/images/pxeboot/vmlinuz&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; //srv/tftp/bios/x86_64/images/rhel79&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;cp&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; /var/www/html/rhel79/x86_64/base/images/pxeboot/initrd.img&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; /srv/tftp/bios/x86_64/images/rhel79&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;# 准备 default 文件&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;mkdir&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; /srv/tftp/bios/x86_64/pxelinux.cfg&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;cp&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; /var/www/html/rhel79/x86_64/base/isolinux/isolinux.cfg&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; /srv/tftp/bios/x86_64/pxelinux.cfg/default&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;$&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; sudo&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; vim&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; /srv/tftp/bios/x86_64/pxelinux.cfg/default&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;default&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; vesamenu.c32&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;timeout&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; 600&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;label&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; local&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;  menu&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; label&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; Boot&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; from&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; ^local&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; drive&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;  menu&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; default&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;  localboot&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; 0xffff&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;label&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; rhel79&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;  menu&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; label&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; ^Install&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; Red&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; Hat&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; Enterprise&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; Linux&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; 7.9&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;  kernel&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; images/rhel79/vmlinuz&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;  append&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; initrd=images/rhel79/initrd.img&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; inst.ks=http://10.0.0.1/kickstart/rhel79.cfg&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; quiet&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;label&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; rhel83&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;  menu&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; label&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; ^Install&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; Red&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; Hat&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; Enterprise&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; Linux&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; 8.3&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;  kernel&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; images/rhel83/vmlinuz&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;  append&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; initrd=images/rhel83/initrd.img&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; inst.ks=http://10.0.0.1/kickstart/rhel83.cfg&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; quiet&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;label&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; v10sp1&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;  menu&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; label&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; ^Install&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; Kylin&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; Linux&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; Advanced&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; Server&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; V10&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; SP1&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;  kernel&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; images/v10sp1/vmlinuz&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;  append&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; initrd=images/v10sp1/initrd.img&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; inst.ks=http://10.0.0.1/kickstart/v10sp1.cfg&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; quiet&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;label&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; v10sp2&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;  menu&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; label&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; ^Install&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; Kylin&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; Linux&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; Advanced&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; Server&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; V10&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; SP2&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;  kernel&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; images/v10sp2/vmlinuz&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;  append&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; initrd=images/v10sp2/initrd.img&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; inst.ks=http://10.0.0.1/kickstart/v10sp2.cfg&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; quiet&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;# 创建 UEFI 目录&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;mkdir&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; -p&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; /srv/tftp/efi/x86_64&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;# 准备 BOOTX64.EFI、grubx64.efi 和 grub.cfg 文件&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;cp&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; /var/www/html/rhel79/x86_64/base/EFI/BOOT/BOOTX64.EFI&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; /srv/tftp/efi/x86_64/&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;cp&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; /var/www/html/rhel79/x86_64/base/EFI/BOOT/grubx64.efi&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; /srv/tftp/efi/x86_64/&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;cp&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; /var/www/html/rhel79/x86_64/base/EFI/BOOT/grub.cfg&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; /srv/tftp/efi/x86_64/&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;chmod&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; 644&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; /srv/tftp/efi/x86_64/BOOTX64.EFI&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;chmod&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; 644&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; /srv/tftp/efi/x86_64/grubx64.efi&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;# 准备 vmlinuz 和 initrd.img 文件&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;mkdir&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; -p&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; /srv/tftp/efi/x86_64/images/rhel79&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;cp&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; /var/www/html/rhel79/x86_64/base/images/pxeboot/vmlinuz&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; /srv/tftp/efi/x86_64/images/rhel79/&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;cp&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; /var/www/html/rhel79/x86_64/base/images/pxeboot/initrd.img&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; /srv/tftp/efi/x86_64/images/rhel79/&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;# 准备 grub.cfg 文件&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;$&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; sudo&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; vim&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; /srv/tftp/efi/x86_64/grub.cfg&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;set&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; timeout=&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;5&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;set&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; default=&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;0&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;menuentry&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &apos;Install Red Hat Enterprise Linux 7.9&apos;&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;  linuxefi&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; efi/x86_64/images/rhel79/vmlinuz&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; ip=dhcp&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; inst.ks=http://10.0.0.1/kickstart/rhel79.cfg&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;  initrdefi&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; efi/x86_64/images/rhel79/initrd.img&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;menuentry&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &apos;Install Kylin Linux Advanced Server V10 SP1&apos;&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;  linuxefi&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; efi/x86_64/images/v10sp1/vmlinuz&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; ip=dhcp&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; inst.ks=http://10.0.0.1/kickstart/v10sp1.cfg&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;  initrdefi&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; efi/x86_64/images/v10sp1/initrd.img&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;menuentry&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &apos;Install Kylin Linux Advanced Server V10 SP2&apos;&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;  linuxefi&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; efi/x86_64/images/v10sp2/vmlinuz&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; ip=dhcp&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; inst.ks=http://10.0.0.1/kickstart/v10sp2.cfg&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;  initrdefi&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; efi/x86_64/images/v10sp2/initrd.img&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  &lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;# 最终目录结构如下&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;/srv/tftp&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;├──&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; bios&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;│&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;   └──&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; x86_64&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;│&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;       ├──&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; images&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;│&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;       │&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;   ├──&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; rhel79&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;│&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;       │&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;   │&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;   ├──&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; initrd.img&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;│&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;       │&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;   │&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;   └──&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; vmlinuz&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;│&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;       │&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;   ├──&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; v10sp1&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;│&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;       │&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;   │&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;   ├──&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; initrd.img&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;│&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;       │&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;   │&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;   └──&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; vmlinuz&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;│&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;       │&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;   └──&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; v10sp2&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;│&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;       │&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;       ├──&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; initrd.img&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;│&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;       │&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;       └──&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; vmlinuz&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;│&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;       ├──&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; pxelinux.0&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;│&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;       ├──&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; pxelinux.cfg&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;│&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;       │&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;   └──&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; default&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;│&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;       └──&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; vesamenu.c32&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;└──&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; efi&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;    └──&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; x86_64&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;        ├──&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; BOOTX64.EFI&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;        ├──&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; grub.cfg&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;        ├──&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; grubx64.efi&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;        └──&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; images&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;            ├──&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; rhel79&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;            │&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;   ├──&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; initrd.img&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;            │&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;   └──&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; vmlinuz&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;            ├──&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; v10sp1&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;            │&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;   ├──&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; initrd.img&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;            │&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;   └──&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; vmlinuz&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;            └──&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; v10sp2&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;                ├──&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; initrd.img&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;                └──&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; vmlinuz&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;查看日志&quot;&gt;查看日志&lt;/h2&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;sh&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;tail&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; -f&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; /var/log/syslog&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; |&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; grep&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; dhcp&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;tail&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; -f&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; /var/log/syslog&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; |&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; grep&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; tftp&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;tail&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; -f&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; /var/log/nginx/access.log&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;调试&quot;&gt;调试&lt;/h2&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;sh&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;# 测试镜像源&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;curl&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; 10.0.0.1&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;curl&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; 10.0.0.1/kickstart/rhel79.cfg&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;# 测试 DHCP&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;sudo&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; nmap&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; --script&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; broadcast-dhcp-discover&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;sudo&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; nmap&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; --script&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; broadcast-dhcp-discover&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; -e&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; eth0&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;dhcp-lease-list&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;# 测试 TFTP&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;$&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; tftp&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; 10.0.0.1&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;tftp&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&gt; &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;get&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; bios/x86_64/pxelinux.0&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;Received&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; 27158&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; bytes&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; in&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; 0.1&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; seconds&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;tftp&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;参考文献&quot;&gt;参考文献&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.redhat.com/show_bug.cgi?id=1672498&quot;&gt;Change permissions for grub2/shim.efi&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://access.redhat.com/solutions/163253&quot;&gt;How to set-up and configure a PXE Server&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://jensd.be/533/linux/create-a-pxe-bootserver-to-server-multiple-linux-distributions&quot;&gt;Create a PXE bootserver to install multiple Linux distributions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://docs.oracle.com/cd/E24628_01/em.121/e27046/appdx_pxeboot.htm#EMLCM12198&quot;&gt;Understanding PXE Booting and Kickstart Technology&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.logiqwest.com/TechnicalPapers/KickStart/Kickstart_Server.html&quot;&gt;Kickstart Server&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/installation_guide/chap-installation-server-setup&quot;&gt;Preparing for a Network Installation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/installation_guide/s1-kickstart2-putkickstarthere&quot;&gt;Making the Kickstart File Available&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://docs.openeuler.org/zh/docs/20.03_LTS/docs/Installation/%E4%BD%BF%E7%94%A8kickstart%E8%87%AA%E5%8A%A8%E5%8C%96%E5%AE%89%E8%A3%85.html&quot;&gt;使用kickstart自动化安装&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://juejin.cn/post/7136077266877939720&quot;&gt;s14.运维自动化之系统部署 — 实战案例：kickstart文件制作过程&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.golinuxhub.com/2018/05/sample-kickstart-partition-example-raid/&quot;&gt;Sample kickstart partition example (RAID, LVM, Multipath, Simple,..)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://ubuntu.com/server/docs/how-to-install-and-configure-isc-dhcp-server&quot;&gt;How to install and configure isc-dhcp-server&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://linuxhint.com/install_tftp_server_ubuntu/&quot;&gt;Installing and Configuring TFTP Server on Ubuntu&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://access.redhat.com/solutions/1355683&quot;&gt;Need to set up yum repository for locally-mounted DVD on Red Hat Enterprise Linux 7&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.chrisjing.com/003-%E8%87%AA%E5%8A%A8%E5%8C%96%E8%A3%85%E6%9C%BA/01-%E8%87%AA%E5%8A%A8%E5%8C%96%E8%A3%85%E6%9C%BA%E5%B7%A5%E5%85%B7-kickstart/&quot;&gt;自动化装机工具-kickstart&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://unix.stackexchange.com/questions/32243/how-do-i-configure-syslinux-to-boot-immediately&quot;&gt;How do I configure syslinux to boot immediately&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://unix.stackexchange.com/questions/615461/dhcp-relay-custom-log-file&quot;&gt;dhcp-relay custom log file&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/installation_guide/sect-kickstart-syntax&quot;&gt;Kickstart Syntax Reference&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://pykickstart.readthedocs.io/en/latest/kickstart-docs.html#kickstart-documentation&quot;&gt;Kickstart Documentation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://bugzilla.redhat.com/show_bug.cgi?id=1873278&quot;&gt;error: ../../grub-core/net/net.c:1795:timeout reading initrd.img&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://installati.one/install-createrepo-ubuntu-18-04/&quot;&gt;How To Install createrepo on Ubuntu 18.04&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.percona.com/blog/how-to-create-your-own-repositories-for-packages/#&quot;&gt;How to Create Your Own Repositories for Packages&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://wiki.syslinux.org/wiki/index.php?title=PXELINUX&quot;&gt;PXELINUX&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.chrisjing.com/003-%E8%87%AA%E5%8A%A8%E5%8C%96%E8%A3%85%E6%9C%BA/01-%E8%87%AA%E5%8A%A8%E5%8C%96%E8%A3%85%E6%9C%BA%E5%B7%A5%E5%85%B7-kickstart/&quot;&gt;01-自动化装机工具-kickstart&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/installation_guide/sect-kickstart-howto&quot;&gt;27.2. How Do You Perform a Kickstart Installation?&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;hr style=&quot;border:none;border-top:0.5px solid rgba(0,0,0,0.08);margin:26px 0 14px;&quot; /&gt;
    &lt;p style=&quot;text-align:left;margin:0;font-family:-apple-system,BlinkMacSystemFont,&apos;Segoe UI&apos;,sans-serif;&quot;&gt;
      &lt;a
        href=&quot;https://blog.skywangdev.com&quot;
        style=&quot;
          display:inline-block;
          padding:6px 18px;
          border-radius:999px;
          background:#222;
          color:#fff;
          font-size:13px;
          text-decoration:none;
        &quot;
        target=&quot;_blank&quot;
        rel=&quot;noreferrer&quot;
      &gt;undefined&lt;/a&gt;
    &lt;/p&gt;</description><pubDate>Tue, 20 Jul 2021 00:00:00 GMT</pubDate></item><item><title>第3期 - Ubuntu安装Nvidia驱动</title><link>https://blog.skywangdev.com/posts/3/</link><guid isPermaLink="true">https://blog.skywangdev.com/posts/3/</guid><description>&lt;img src=&quot;https://data.skywangdev.com/blog/S-3.jpeg&quot; width=&quot;800&quot;&gt;
&lt;h1 id=&quot;一前期准备&quot;&gt;一、前期准备&lt;/h1&gt;
&lt;h2 id=&quot;11查看gpu信息&quot;&gt;1.1、查看GPU信息&lt;/h2&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;shell&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;lspci&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; |&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; grep&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; -i&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; nvidia&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;12配置内核&quot;&gt;1.2、配置内核&lt;/h2&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;shell&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;dnf&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; install&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; -y&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; gcc&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; dkms&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; kernel-devel-&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;$(&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;uname&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; -r&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;) &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;kernel-headers-&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;$(&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;uname&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; -r&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;安装的版本要和当前内核版本一致&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;13禁用nouveau&quot;&gt;1.3、禁用nouveau&lt;/h2&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;shell&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;# 查看nouveau&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;lsmod&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; |&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; grep&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; nouveau&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;# 禁用nouveau&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;cat&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; &gt;&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;  /etc/modprobe.d/blacklist.conf&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; &amp;#x3C;&amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; EOF&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;blacklist nouveau&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;options nouveau modeset=0&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;EOF&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;14更新initramfs&quot;&gt;1.4、更新initramfs&lt;/h2&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;shell&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;# AlmaLinux/RockyLinux&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;mv&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; /boot/initramfs-&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;$(&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;uname&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; -r&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;.img&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; /boot/initramfs-&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;$(&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;uname&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; -r&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;.img.bak&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;dracut&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; /boot/initramfs-&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;$(&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;uname&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; -r&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;.img&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; $(&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;uname&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; -r&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;# Ubuntu&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;sudo&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; update-initramfs&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; -u&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;此步骤完成后，重启操作系统再进行下一步。&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id=&quot;二安装驱动&quot;&gt;二、安装驱动&lt;/h1&gt;
&lt;h2 id=&quot;21下载驱动&quot;&gt;2.1、下载驱动&lt;/h2&gt;
&lt;p&gt;从&lt;a href=&quot;https://www.nvidia.cn/Download/index.aspx?lang=cn&quot;&gt;NVIDIA 驱动程序下载&lt;/a&gt;下载对应显卡的驱动程序，建议使用.run可执行文件。如需安装CUDA工具包（CUDA工具包内置了驱动），可以跳过此步骤安装。&lt;/p&gt;
&lt;h2 id=&quot;22安装驱动&quot;&gt;2.2、安装驱动&lt;/h2&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;shell&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;bash&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; NVIDIA-Linux-x86_64-470.256.02.run&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;或&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;bash&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; NVIDIA-Linux-x86_64-470.256.02.run&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; --kernel-source-path=/usr/src/kernels/$(&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;uname&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; -r)&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; -k&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; $(&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;uname&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; -r&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;23验证安装&quot;&gt;2.3、验证安装&lt;/h2&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;shell&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;nvidia-smi&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;返回GPU相关信息，即表示安装成功。&lt;/p&gt;
&lt;h1 id=&quot;三安装cuda工具包&quot;&gt;三、安装CUDA工具包&lt;/h1&gt;
&lt;h2 id=&quot;31下载cuda安装包&quot;&gt;3.1、下载cuda安装包&lt;/h2&gt;
&lt;p&gt;访问&lt;a href=&quot;https://developer.nvidia.com/cuda-toolkit-archive&quot;&gt;CUDA&lt;/a&gt;选择与GPU匹配的操作系统和版本。因CUDA工具包包含驱动程序，可以跳过第二步，直接执行CUDA工具包安装。&lt;a href=&quot;https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html&quot;&gt;CDDA工具包对应的驱动版本&lt;/a&gt;。&lt;/p&gt;
&lt;h2 id=&quot;32安装cuda&quot;&gt;3.2、安装cuda&lt;/h2&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;shell&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;bash&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; cuda_11.4.0_470.256.02_linux.run&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;如果已安装驱动，请务必取消驱动安装选项，否则安装可能失败&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;33验证安装&quot;&gt;3.3、验证安装&lt;/h2&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;shell&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;/usr/local/cuda/bin/nvcc&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; -V&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;返回cuda版本信息，即表示安装成功。&lt;/p&gt;
&lt;h1 id=&quot;四安装nvidia-fabricmanager&quot;&gt;四、安装nvidia-fabricmanager&lt;/h1&gt;
&lt;h2 id=&quot;41添加软件源&quot;&gt;4.1、添加软件源&lt;/h2&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;shell&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;# AlmaLinux/RockyLinux&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;# 根据自己系统版本添加对应版本源&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;dnf&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; config-manager&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; --add-repo&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; http://developer.download.nvidia.com/compute/cuda/repos/rhel8/x86_64/cuda-rhel8.repo&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;# Ubuntu&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;# 根据自己系统版本添加对应版本源&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;wget&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; https://developer.download.nvidia.cn/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;mv&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; cuda-ubuntu2004.pin&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; /etc/apt/preferences.d/cuda-repository-pin-600&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;wget&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; https://developer.download.nvidia.cn/compute/cuda/repos/ubuntu2004/x86_64/7fa2af80.pub&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;apt-key&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; add&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; 7fa2af80.pub&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;rm&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; 7fa2af80.pub&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &quot;deb http://developer.download.nvidia.cn/compute/cuda/repos/ubuntu2004/x86_64 /&quot;&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; |&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; tee&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; /etc/apt/sources.list.d/cuda.list&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;42安装nvidia-fabric-manager&quot;&gt;4.2、安装nvidia-fabric-manager&lt;/h2&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;shell&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;# AlmaLinux/RockyLinux&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;dnf&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; module&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; enable&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; -y&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; nvidia-driver:470&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;dnf&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; install&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; -y&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; nvidia-fabric-manager:470.256.02&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; nvidia-fabric-manager-devel-0:470.256.02&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;# Ubuntu&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;apt-get&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; update&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;apt-get&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; -y&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; install&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; nvidia-fabricmanager-470=470.256.02-1&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;43启动服务&quot;&gt;4.3、启动服务&lt;/h2&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;shell&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;systemctl&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; start&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; nvidia-fabricmanager&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;systemctl&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; status&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; nvidia-fabricmanager&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;systemctl&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; enable&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; nvidia-fabricmanager&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;44验证&quot;&gt;4.4、验证&lt;/h2&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;shell&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;nvidia-smi&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; topo&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; -m&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;返回结果中有&lt;code&gt;NV*&lt;/code&gt; 字样表示 GPU 之间有 NVLink 连接。如果所有预期的 GPU 之间都有 NVLink 连接，并且没有错误信息，那么 NVLink 应该是运行正常的。&lt;/p&gt;&lt;hr style=&quot;border:none;border-top:0.5px solid rgba(0,0,0,0.08);margin:26px 0 14px;&quot; /&gt;
    &lt;p style=&quot;text-align:left;margin:0;font-family:-apple-system,BlinkMacSystemFont,&apos;Segoe UI&apos;,sans-serif;&quot;&gt;
      &lt;a
        href=&quot;https://blog.skywangdev.com&quot;
        style=&quot;
          display:inline-block;
          padding:6px 18px;
          border-radius:999px;
          background:#222;
          color:#fff;
          font-size:13px;
          text-decoration:none;
        &quot;
        target=&quot;_blank&quot;
        rel=&quot;noreferrer&quot;
      &gt;undefined&lt;/a&gt;
    &lt;/p&gt;</description><pubDate>Tue, 13 Apr 2021 00:00:00 GMT</pubDate></item><item><title>第2期 - CentOS 7重置root密码</title><link>https://blog.skywangdev.com/posts/2/</link><guid isPermaLink="true">https://blog.skywangdev.com/posts/2/</guid><description>&lt;img src=&quot;https://data.skywangdev.com/blog/S-2.jpeg&quot; width=&quot;800&quot;&gt;
&lt;blockquote&gt;
&lt;p&gt;在centos服务器中，普通用户拥有的权限是被root（超级管理员）限定的。有时在下载centos中下载安装软件时很不方便，所以需要进入root（超级管理员)的用户界面，但是有时会忘记root用户的密码，那么就需要进行重置root用密码。centos的版本很多，但是重置root用户的密码的方法都是相似的，都是进入单用户模式修改root密码。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;重置root密码具体步骤&quot;&gt;重置root密码具体步骤&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;重启服务器，进入系统加载页面后按键盘 e键，进入编辑模式&lt;/p&gt;
&lt;img src=&quot;https://data.skywangdev.com/centos7-root-reset-1.png&quot; width=&quot;800&quot;&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;移动光标，找到 linux16开头 的那行，从末尾开始删除到 ro 停止&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;img src=&quot;https://data.skywangdev.com/centos7-root-reset-2.png&quot; width=&quot;800&quot;&gt;
&lt;ol start=&quot;3&quot;&gt;
&lt;li&gt;并将把 ro 改为 rw，空一格后，追加 rd.break，然后按 ctrl+x 进行引导启动&lt;/li&gt;
&lt;/ol&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;修改前：linux16 /vmlinuz-3.10.0-1160.e17.x86_64 root=/dev/mapper/centos-root ro crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet LANG=en_US.UTF-8&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;修改后：linux16 /vmlinuz-3.10.0-1160.e17.x86_64 root=/dev/mapper/centos-root rw rd.break&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;结果如下：&lt;/p&gt;
&lt;img src=&quot;https://data.skywangdev.com/centos7-root-reset-3.png&quot; width=&quot;800&quot;&gt;
&lt;ol start=&quot;4&quot;&gt;
&lt;li&gt;进入单用户模式&lt;/li&gt;
&lt;/ol&gt;
&lt;img src=&quot;https://data.skywangdev.com/centos7-root-reset-4.png&quot; width=&quot;800&quot;&gt;
&lt;ol start=&quot;5&quot;&gt;
&lt;li&gt;输入如下命令，重新挂载根目录并重置root密码（比如改为 Aa@123456），最后重启系统生效&lt;/li&gt;
&lt;/ol&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;mount -o remount,rw /sysroot&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;chroot sysroot&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;echo &apos;Aa@123456&apos; | passwd root --stdin&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;touch /.autorelabel     &lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;exit&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;reboot&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;过程如下：&lt;/p&gt;
&lt;img src=&quot;https://data.skywangdev.com/centos7-root-reset-5.png&quot; width=&quot;800&quot;&gt;
&lt;ol start=&quot;6&quot;&gt;
&lt;li&gt;等待一段时间后，重新进入登陆界面时就可以使用刚才设置的密码以 root 登陆了。&lt;/li&gt;
&lt;/ol&gt;&lt;hr style=&quot;border:none;border-top:0.5px solid rgba(0,0,0,0.08);margin:26px 0 14px;&quot; /&gt;
    &lt;p style=&quot;text-align:left;margin:0;font-family:-apple-system,BlinkMacSystemFont,&apos;Segoe UI&apos;,sans-serif;&quot;&gt;
      &lt;a
        href=&quot;https://blog.skywangdev.com&quot;
        style=&quot;
          display:inline-block;
          padding:6px 18px;
          border-radius:999px;
          background:#222;
          color:#fff;
          font-size:13px;
          text-decoration:none;
        &quot;
        target=&quot;_blank&quot;
        rel=&quot;noreferrer&quot;
      &gt;undefined&lt;/a&gt;
    &lt;/p&gt;</description><pubDate>Mon, 03 Aug 2020 00:00:00 GMT</pubDate></item><item><title>第1期 - 服务器RAID基本概念</title><link>https://blog.skywangdev.com/posts/1/</link><guid isPermaLink="true">https://blog.skywangdev.com/posts/1/</guid><description>&lt;img src=&quot;https://data.skywangdev.com/blog/S-1.jpeg&quot; width=&quot;800&quot;&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;随便记录一些技术，筛选后发布于此。&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;raid基本概念&quot;&gt;RAID基本概念&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;RAID 的中文全称是 “独立磁盘冗余阵列” （Redundant Array of Independent Disks）。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;独立硬盘冗余阵列（RAID, Redundant Array of Independent Disks），旧称廉价磁盘冗余阵列（Redundant Array of Inexpensive Disks），简称磁盘阵列。利用虚拟化存储技术把多个硬盘组合起来，成为一个或多个硬盘阵列组，目的为提升性能或资料冗余，或是两者同时提升。在运作中，取决于 RAID 层级不同，资料会以多种模式分散于各个硬盘，RAID 层级的命名会以 RAID 开头并带数字，例如：RAID 0、RAID 1、RAID 5、RAID 6、RAID 7、RAID 01、RAID 10、RAID 50、RAID 60。每种等级都有其理论上的优缺点，不同的等级在两个目标间获取平衡，分别是增加资料可靠性以及增加存储器（群）读写性能。&lt;br&gt;
简单来说，RAID把多个硬盘组合成为一个逻辑硬盘，因此，操作系统只会把它当作一个实体硬盘。RAID常被用在服务器电脑上，并且常使用完全相同的硬盘作为组合。由于硬盘价格的不断下降与RAID功能更加有效地与主板集成，它也成为普通用户的一个选择，特别是需要大容量存储空间的工作，如：视频与音频制作。 ————&lt;em&gt;来源维基百科&lt;/em&gt;&lt;/p&gt;
&lt;h2 id=&quot;为什么要用raid&quot;&gt;为什么要用RAID&lt;/h2&gt;
&lt;p&gt;使用RAID主要为了实现以下一个或多个目标：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;提升性能：让多块硬盘同时读写数据，速度远快于单块硬盘。
&lt;ul&gt;
&lt;li&gt;就像让多个工人同时搬货，比一个人搬要快得多。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;增加容错/可靠性：通过数据冗余（备份或校验），即使其中一块硬盘突然损坏，数据也不会丢失，服务也不会中断。
&lt;ul&gt;
&lt;li&gt;就像给重要文件做了复印备份，即使原件丢失，还有备份可用。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;扩大容量：将多块小容量硬盘合并成一个大的逻辑卷，方便管理和使用。
&lt;ul&gt;
&lt;li&gt;就像把多个小房间的墙打通，变成一个大厅。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;** 重要提示： RAID 不能替代 常规备份！它的主要作用是保证服务的连续性和数据的可用性。如果发生火灾、误删除、病毒入侵等情况，RAID里的数据一样会丢失。因此，必须坚持 “RAID + 定期备份” 的策略。**&lt;/p&gt;
&lt;h2 id=&quot;raid级别所需硬盘数量的详细说明&quot;&gt;RAID级别所需硬盘数量的详细说明&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;RAID 0 (条带化)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;最少硬盘数： 2块&lt;br&gt;
说明： RAID 0 将数据分割成块，并交替写入所有硬盘。它不提供任何冗余或容错能力。任何一块硬盘损坏，所有数据都会丢失。&lt;br&gt;
优点： 读写性能非常高（所有硬盘同时工作）。&lt;br&gt;
缺点： 可靠性最低。硬盘数量越多，整体故障率越高。&lt;br&gt;
常用场景： 对性能要求极高、且数据不重要或可临时性的场景，如图形渲染缓存、游戏存储盘。&lt;/p&gt;
&lt;ol start=&quot;2&quot;&gt;
&lt;li&gt;RAID 1 (镜像)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;最少硬盘数： 2块&lt;br&gt;
说明： RAID 1 将完整的数据同时写入每一块硬盘，实现100%的镜像备份。&lt;br&gt;
优点： 读取性能略有提升，写入性能与单盘相同。数据安全性高，只要不是所有硬盘同时损坏，数据就不会丢失。&lt;br&gt;
缺点： 磁盘空间利用率低（只有50%），成本高。&lt;br&gt;
常用场景： 对数据安全性要求极高的场景，如操作系统盘、重要数据库的日志文件。&lt;/p&gt;
&lt;ol start=&quot;3&quot;&gt;
&lt;li&gt;RAID 5 (带奇偶校验的条带化)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;最少硬盘数： 3块&lt;br&gt;
说明： RAID 5 将数据和奇偶校验信息分布式地存储在所有硬盘上。它可以容忍任意一块硬盘的故障。实际可用容量为 (N-1) * 单盘容量。&lt;br&gt;
优点： 在容量、性能和安全性之间取得了很好的平衡。空间利用率高于RAID 1。&lt;br&gt;
缺点： 写入性能较差（需要计算奇偶校验）。一块硬盘失效后，重建阵列的过程压力很大，时间长，期间如果再坏一块盘，所有数据将丢失。&lt;br&gt;
常用场景： 文件共享服务器、中小型数据库存储等应用广泛。&lt;/p&gt;
&lt;ol start=&quot;4&quot;&gt;
&lt;li&gt;RAID 6 (带双重奇偶校验的条带化)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;最少硬盘数： 4块&lt;br&gt;
说明： RAID 6 与 RAID 5 类似，但使用两种不同的奇偶校验算法，因此可以同时容忍任意两块硬盘的故障。实际可用容量为 (N-2) * 单盘容量。&lt;br&gt;
优点： 比RAID 5更高的安全性，尤其适用于大容量硬盘的阵列（重建时间长，双保险更安全）。&lt;br&gt;
缺点： 写入性能比RAID 5更差（需要计算两次奇偶校验）。空间利用率更低。&lt;br&gt;
常用场景： 使用大容量SATA硬盘的阵列、对数据安全性要求极高的归档存储。&lt;/p&gt;
&lt;ol start=&quot;5&quot;&gt;
&lt;li&gt;RAID 10 (先镜像再条带化)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;最少硬盘数： 4块（且必须是偶数）&lt;br&gt;
说明： RAID 10 是 RAID 1 和 RAID 0 的结合。它首先将硬盘两两组成RAID 1镜像对，然后再将这些镜像对组成一个RAID 0条带卷。&lt;br&gt;
优点： 同时兼具RAID 1的高安全性和RAID 0的高性能。重建速度比RAID 5/6快很多。&lt;br&gt;
缺点： 成本最高，磁盘空间利用率只有50%。&lt;br&gt;
常用场景： 对性能和可靠性都有极高要求的场景，如数据库服务器、虚拟化主机、高流量网站。&lt;br&gt;
重要注意事项：&lt;/p&gt;
&lt;p&gt;以上是最低要求。除了RAID 1，其他级别都可以使用多于最低要求的硬盘（例如，RAID 5 可以用4、5、6…块盘，RAID 10 可以用4、6、8…块盘）。&lt;br&gt;
混合RAID：还有一些其他RAID级别（如RAID 50, RAID 60等）是上述基本级别的组合，需要更多硬盘。&lt;br&gt;
热备盘：在实际的企业级部署中，通常会额外配置一块或多块热备盘。当阵列中的某块工作盘故障时，热备盘会自动顶替并开始重建数据，这个过程无需人工干预，进一步提高了系统的可用性。热备盘不参与日常的RAID运算，不计入以上最低数量要求。&lt;/p&gt;
&lt;h2 id=&quot;常用场景举例应该用哪个raid&quot;&gt;常用场景举例：应该用哪个RAID&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;操作系统 (OS) 驱动器和关键引导盘&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;推荐：RAID 1
&lt;ul&gt;
&lt;li&gt;原因： 操作系统盘通常不需要巨大容量，但对可用性和可靠性要求极高。RAID 1提供了最好的保护，一块硬盘故障时系统能毫无感觉地继续运行，方便更换硬盘重建。读取性能也有提升，对系统启动和运行有帮助。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ol start=&quot;2&quot;&gt;
&lt;li&gt;文件存储服务器 (File Server) / NAS&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;中小型、预算敏感： 推荐 RAID 5
&lt;ul&gt;
&lt;li&gt;原因： 在容量利用率和安全性之间取得了完美平衡。对于存放文档、图片等一般文件的服务器来说，性价比最高。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;大型、使用大容量硬盘（如&gt;4TB）： 强烈推荐 RAID 6
&lt;ul&gt;
&lt;li&gt;原因： 大容量硬盘重建时间非常长（可能超过24小时），在此期间再坏第二块盘的风险不容忽视。RAID 6的双重校验提供了关键的安全保障。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ol start=&quot;3&quot;&gt;
&lt;li&gt;视频编辑 / 媒体制作&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;原始素材存储： 推荐RAID 5/6
&lt;ul&gt;
&lt;li&gt;RAID 5/6： 更安全的选择，在提供足够带宽的同时保证了数据安全。&lt;br&gt;
成品归档： 推荐 RAID 6&lt;br&gt;
数据很重要且体积巨大，需要长期安全保存，RAID 6是最佳选择。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;重要的事情说三遍：RAID不是备份！RAID不是备份！RAID不是备份！ 无论你用多安全的RAID，都必须有定期备份到其他介质（如磁带、异地NAS、云存储）的策略。&lt;/p&gt;
&lt;/blockquote&gt;&lt;hr style=&quot;border:none;border-top:0.5px solid rgba(0,0,0,0.08);margin:26px 0 14px;&quot; /&gt;
    &lt;p style=&quot;text-align:left;margin:0;font-family:-apple-system,BlinkMacSystemFont,&apos;Segoe UI&apos;,sans-serif;&quot;&gt;
      &lt;a
        href=&quot;https://blog.skywangdev.com&quot;
        style=&quot;
          display:inline-block;
          padding:6px 18px;
          border-radius:999px;
          background:#222;
          color:#fff;
          font-size:13px;
          text-decoration:none;
        &quot;
        target=&quot;_blank&quot;
        rel=&quot;noreferrer&quot;
      &gt;undefined&lt;/a&gt;
    &lt;/p&gt;</description><pubDate>Thu, 23 Jul 2020 00:00:00 GMT</pubDate></item></channel></rss>