<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>系统运维 on 梓晨's Blog</title><link>https://blog.dawnwl.com/categories/system-administration/</link><description>Recent content in 系统运维 on 梓晨's Blog</description><generator>Hugo -- gohugo.io</generator><language>zh-CN</language><copyright>梓晨科技</copyright><lastBuildDate>Sat, 10 Oct 2026 00:00:00 +0800</lastBuildDate><atom:link href="https://blog.dawnwl.com/categories/system-administration/index.xml" rel="self" type="application/rss+xml"/><item><title>Linux 一键清理 Zone.Identifier 文件</title><link>https://blog.dawnwl.com/posts/linux-delete-zone-identifier/</link><pubDate>Sat, 10 Oct 2026 00:00:00 +0800</pubDate><guid>https://blog.dawnwl.com/posts/linux-delete-zone-identifier/</guid><description>&lt;p&gt;Windows 下载文件时可能记录 &lt;code&gt;Zone.Identifier&lt;/code&gt; 来源信息。在部分 WSL 或共享目录场景中，这些信息会以 &lt;code&gt;文件名:Zone.Identifier&lt;/code&gt; 的普通文件形式出现，可以通过 &lt;code&gt;find&lt;/code&gt; 批量清理。&lt;/p&gt;
&lt;h2 id="一键清理"&gt;一键清理
&lt;/h2&gt;&lt;p&gt;进入需要清理的目录后执行：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;find . -name &lt;span class="s2"&gt;&amp;#34;*Zone.Identifier&amp;#34;&lt;/span&gt; -type f -delete
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;命令从当前目录 &lt;code&gt;.&lt;/code&gt; 开始，递归查找所有子目录，直接删除文件名以 &lt;code&gt;Zone.Identifier&lt;/code&gt; 结尾的普通文件。双引号让通配符由 &lt;code&gt;find&lt;/code&gt; 匹配；&lt;code&gt;-type f&lt;/code&gt; 限定普通文件，避免删除同名目录。&lt;/p&gt;
&lt;p&gt;例如，&lt;code&gt;example.zip:Zone.Identifier&lt;/code&gt; 会被删除，&lt;code&gt;example.zip&lt;/code&gt; 保留。匹配按文件名区分大小写，也不会匹配 &lt;code&gt;example.zip:Zone.Identifier.backup&lt;/code&gt;。&lt;/p&gt;
&lt;h2 id="可选先查看匹配结果"&gt;可选：先查看匹配结果
&lt;/h2&gt;&lt;p&gt;需要查看范围时，可以在删除前执行：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;find . -name &lt;span class="s2"&gt;&amp;#34;*Zone.Identifier&amp;#34;&lt;/span&gt; -type f -print
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;此方法清理的是目录中实际存在的普通文件，适用于 Linux 的 GNU find，也可用于支持这些参数的 macOS find。Windows NTFS 中附着于文件的备用数据流不属于这种普通文件，不能将本命令理解为通用的 Windows 文件解锁命令。&lt;/p&gt;
&lt;p&gt;参考：&lt;a class="link" href="https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-fscc/6e3f7352-d11c-4d76-8c39-2516a9df36e8" target="_blank" rel="noopener"
 &gt;Microsoft 的 Zone.Identifier 说明&lt;/a&gt;、&lt;a class="link" href="https://docs.oracle.com/en-us/iaas/Content/File/Troubleshooting/zone-identifier-files.htm" target="_blank" rel="noopener"
 &gt;共享存储中的 Zone.Identifier 文件&lt;/a&gt;、&lt;a class="link" href="https://www.gnu.org/software/findutils/manual/html_node/find_html/Cleaning-Up.html" target="_blank" rel="noopener"
 &gt;GNU find 清理文件&lt;/a&gt;。&lt;/p&gt;</description></item><item><title>Linux 通过 HTTP 响应头一键校准系统时间</title><link>https://blog.dawnwl.com/posts/linux-sync-time-http/</link><pubDate>Sat, 10 Oct 2026 00:00:00 +0800</pubDate><guid>https://blog.dawnwl.com/posts/linux-sync-time-http/</guid><description>&lt;p&gt;通过网站响应头中的 &lt;code&gt;Date&lt;/code&gt; 获取时间，再用 &lt;code&gt;date -s&lt;/code&gt; 校准系统时间。适用于安装了 &lt;code&gt;curl&lt;/code&gt;、&lt;code&gt;awk&lt;/code&gt;、&lt;code&gt;tr&lt;/code&gt; 和 GNU &lt;code&gt;date&lt;/code&gt; 的 Linux 环境，需要能够正常访问这些 HTTPS 站点，并以 root 身份执行。&lt;/p&gt;
&lt;h2 id="一键校时"&gt;一键校时
&lt;/h2&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;TIME&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="k"&gt;$(for&lt;/span&gt; u in https://www.baidu.com https://www.qq.com https://www.aliyun.com https://www.cloudflare.com&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt; &lt;span class="nv"&gt;t&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;curl -fsSI --connect-timeout &lt;span class="m"&gt;5&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$u&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; 2&amp;gt;/dev/null &lt;span class="p"&gt;|&lt;/span&gt; awk -F&lt;span class="s1"&gt;&amp;#39;: &amp;#39;&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;tolower($1)==&amp;#34;date&amp;#34;{print $2; exit}&amp;#39;&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; tr -d &lt;span class="s1"&gt;&amp;#39;\r&amp;#39;&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; -n &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$t&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;printf&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;%s\n&amp;#39;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$t&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; break&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;done)&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; -n &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$TIME&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; date -s &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$TIME&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;命令依次尝试百度、腾讯、阿里云和 Cloudflare。每个站点的连接超时为 5 秒，取得非空的 &lt;code&gt;Date&lt;/code&gt; 后停止尝试；没有取得时间时不会执行 &lt;code&gt;date -s&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Date&lt;/code&gt; 中带有 GMT 时区，GNU &lt;code&gt;date&lt;/code&gt; 会据此设置系统时间。显示结果使用系统当前时区，此命令不会修改时区。&lt;/p&gt;
&lt;h2 id="查看结果"&gt;查看结果
&lt;/h2&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;date
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;这是一次性校时，精度受网站响应时间和网络延迟影响，不会开启持续时间同步服务。macOS 的系统 &lt;code&gt;date&lt;/code&gt; 和部分 BusyBox &lt;code&gt;date&lt;/code&gt; 参数、解析能力不同，不能直接照搬此命令。&lt;/p&gt;
&lt;p&gt;参考：&lt;a class="link" href="https://curl.se/docs/manpage.html" target="_blank" rel="noopener"
 &gt;curl 参数说明&lt;/a&gt;、&lt;a class="link" href="https://www.gnu.org/s/coreutils/manual/html_node/Examples-of-date.html" target="_blank" rel="noopener"
 &gt;GNU date 用法&lt;/a&gt;。&lt;/p&gt;</description></item><item><title>Linux 使用 NVIDIA .run 安装驱动（Ubuntu 示例）</title><link>https://blog.dawnwl.com/posts/linux-nvidia-driver/</link><pubDate>Fri, 29 Nov 2024 00:00:00 +0000</pubDate><guid>https://blog.dawnwl.com/posts/linux-nvidia-driver/</guid><description>&lt;h2 id="适用范围"&gt;适用范围
&lt;/h2&gt;&lt;p&gt;NVIDIA 的 Linux &lt;code&gt;.run&lt;/code&gt; 安装器并非 Ubuntu 专属。下载驱动、确认 GPU 与内核兼容性、退出图形会话并运行安装器属于通用流程；开发包名称、initramfs 更新、显示服务与 Secure Boot 配置需要按发行版处理。&lt;/p&gt;
&lt;p&gt;下面以 Debian/Ubuntu 的依赖与 initramfs 命令为例。其他发行版使用对应工具；驱动类型和支持的 GPU 以所选安装包文档为准。&lt;/p&gt;
&lt;h2 id="下载驱动"&gt;下载驱动
&lt;/h2&gt;&lt;p&gt;&lt;a class="link" href="https://www.nvidia.cn/drivers/lookup/" target="_blank" rel="noopener"
 &gt;NVIDIA 驱动程序下载&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="禁用-nouveau通用配置与发行版步骤"&gt;禁用 Nouveau：通用配置与发行版步骤
&lt;/h2&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;printf&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;%s\n&amp;#39;&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;blacklist nouveau&amp;#39;&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;options nouveau modeset=0&amp;#39;&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;|&lt;/span&gt; sudo tee /etc/modprobe.d/blacklist-nouveau.conf
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;对使用 modprobe 配置的系统，上面写入规则的方式可复用。initramfs 如何更新由发行版工具决定；Debian/Ubuntu 示例：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo update-initramfs -u
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Fedora/RHEL 等通常使用不同工具，不能只把 apt 换成 dnf 就套用整篇命令。按所选驱动与发行版文档重启并确认 Nouveau 不再占用设备。&lt;/p&gt;
&lt;h2 id="安装依赖debianubuntu-示例"&gt;安装依赖（Debian/Ubuntu 示例）
&lt;/h2&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo apt-get update &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; sudo apt-get install -y make gcc &lt;span class="s2"&gt;&amp;#34;linux-headers-&lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;uname -r&lt;span class="k"&gt;)&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id="运行-nvidia-安装器"&gt;运行 NVIDIA 安装器
&lt;/h2&gt;&lt;p&gt;先按目标系统方式退出图形会话或停止占用 GPU 的显示服务，确认内核头文件与正在运行的内核匹配。需要模块签名的系统还应完成 Secure Boot 所需配置，再运行实际下载的文件：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo ./NVIDIA-Linux-archname-xxx.xxx.xxx.run
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;参考：&lt;a class="link" href="https://download.nvidia.com/XFree86/Linux-x86_64/570.124.04/README/installdriver.html" target="_blank" rel="noopener"
 &gt;NVIDIA Linux 安装器文档&lt;/a&gt;。链接对应特定驱动分支，实际安装应查阅所选版本随附的 README。&lt;/p&gt;</description></item><item><title>Linux 为蓝天笔记本安装 TUXEDO Control Center</title><link>https://blog.dawnwl.com/posts/linux-tuxedo-control-center/</link><pubDate>Thu, 28 Nov 2024 00:00:00 +0000</pubDate><guid>https://blog.dawnwl.com/posts/linux-tuxedo-control-center/</guid><description>
 &lt;blockquote&gt;
 &lt;p&gt;以下安装命令使用 Ubuntu 24.04（noble）软件源，适用于该版本的 Ubuntu。风扇和背光功能取决于具体 Clevo 硬件与驱动，其他发行版需使用对应软件源。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h2 id="前言"&gt;前言
&lt;/h2&gt;&lt;p&gt;由于蓝天主板大部分都是用Windows玩游戏，玩Linux的用户少之又少，官方也不重视这个市场，经过我研究发现一款工具可以实现部分风扇控制和背光控制的功能&lt;/p&gt;
&lt;h2 id="ubuntu-2404-安装记录"&gt;Ubuntu 24.04 安装记录
&lt;/h2&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;deb https://deb.tuxedocomputers.com/ubuntu noble main&amp;#39;&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; sudo tee /etc/apt/sources.list.d/tuxedo-computers.list &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; wget https://deb.tuxedocomputers.com/ubuntu/pool/main/t/tuxedo-archive-keyring/tuxedo-archive-keyring_2022.04.01~tux_all.deb &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; sudo dpkg -i tuxedo-archive-keyring_2022.04.01~tux_all.deb &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; rm -rf tuxedo-archive-keyring_2022.04.01~tux_all.deb &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; sudo apt update &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; sudo apt-get install -y tuxedo-control-center
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;</description></item><item><title>Linux 使用 IBus Rime 安装雾凇拼音</title><link>https://blog.dawnwl.com/posts/linux-rime-ice/</link><pubDate>Thu, 28 Nov 2024 00:00:00 +0000</pubDate><guid>https://blog.dawnwl.com/posts/linux-rime-ice/</guid><description>&lt;h2 id="适用范围"&gt;适用范围
&lt;/h2&gt;&lt;p&gt;雾凇拼音是 Rime 的输入方案与词库，配置本身不依赖 Ubuntu。本文以 Linux 的 IBus Rime 为前端，包安装以 Debian/Ubuntu 为例。其他发行版使用各自的包管理器安装 IBus Rime；Fcitx/Fcitx5 用户还需使用对应前端与用户配置目录。&lt;/p&gt;
&lt;h2 id="安装-ibus-rime"&gt;安装 IBus Rime
&lt;/h2&gt;&lt;p&gt;Debian/Ubuntu 示例：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo apt-get update
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo apt-get install -y ibus-rime git curl
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;登录图形桌面后，确认系统使用 IBus，在输入法设置中添加 Rime。具体入口与会话启动方式取决于桌面环境，不是所有发行版都使用同一设置界面。&lt;/p&gt;
&lt;h2 id="获取-plum-配置管理器"&gt;获取 Plum 配置管理器
&lt;/h2&gt;&lt;p&gt;使用 Plum 官方的一行安装命令，安装器会自动获取配置管理器及预设配方：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;curl -fsSL https://raw.githubusercontent.com/rime/plum/master/rime-install &lt;span class="p"&gt;|&lt;/span&gt; bash
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id="安装雾凇拼音"&gt;安装雾凇拼音
&lt;/h2&gt;&lt;p&gt;先备份已有 Rime 用户配置，再在用户权限下执行：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; plum &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; bash rime-install iDvel/rime-ice:others/recipes/full
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;code&gt;others/recipes/full&lt;/code&gt; 是完整安装配方。Plum 默认支持 IBus Rime；使用其他前端时，按实际目录指定 &lt;code&gt;rime_dir&lt;/code&gt;，例如：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Fcitx5 示例：先确认此目录就是当前输入法使用的 Rime 用户目录。&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;rime_dir&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$HOME&lt;/span&gt;&lt;span class="s2"&gt;/.local/share/fcitx5/rime&amp;#34;&lt;/span&gt; bash rime-install iDvel/rime-ice:others/recipes/full
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;不要将 IBus 与 Fcitx5 的配置目录混用。&lt;/p&gt;
&lt;h2 id="重新部署"&gt;重新部署
&lt;/h2&gt;&lt;p&gt;在对应输入法菜单中重新部署，选择雾凇拼音方案，测试中文输入。安装配方和桌面会话设置按实际发行版与前端调整。&lt;/p&gt;
&lt;p&gt;参考：&lt;a class="link" href="https://github.com/iDvel/rime-ice" target="_blank" rel="noopener"
 &gt;雾凇拼音安装说明&lt;/a&gt;、&lt;a class="link" href="https://github.com/rime/plum" target="_blank" rel="noopener"
 &gt;Plum 配置管理器&lt;/a&gt;、&lt;a class="link" href="https://github.com/rime/ibus-rime" target="_blank" rel="noopener"
 &gt;IBus Rime&lt;/a&gt;。&lt;/p&gt;
&lt;h2 id="延伸阅读"&gt;延伸阅读
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="https://blog.dawnwl.com/posts/macos-rime-ice/" &gt;macOS 安装鼠须管与雾凇拼音&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Linux 创建并启用 Swap 文件</title><link>https://blog.dawnwl.com/posts/linux-swap/</link><pubDate>Mon, 27 Mar 2023 00:00:00 +0000</pubDate><guid>https://blog.dawnwl.com/posts/linux-swap/</guid><description>&lt;h2 id="适用范围"&gt;适用范围
&lt;/h2&gt;&lt;p&gt;本文创建的是 Swap 文件，不是独立磁盘分区。以下示例适用于支持普通 Swap 文件的 ext4 等文件系统；Btrfs、写时复制文件系统需要使用其专用流程。命令以管理员权限执行。&lt;/p&gt;
&lt;p&gt;先检查现有交换空间，确认 &lt;code&gt;/swapfile&lt;/code&gt; 尚不存在：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;swapon --show
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;free -h
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;ls -l /swapfile
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;若文件已存在，先检查它是否正在使用，不要覆盖。&lt;/p&gt;
&lt;h2 id="创建-1-gib-swap-文件"&gt;创建 1 GiB Swap 文件
&lt;/h2&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo sh -c &lt;span class="s1"&gt;&amp;#39;test ! -e /swapfile &amp;amp;&amp;amp; umask 077 &amp;amp;&amp;amp; dd if=/dev/zero of=/swapfile bs=1M count=1024&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo chmod &lt;span class="m"&gt;600&lt;/span&gt; /swapfile
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo mkswap /swapfile
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo swapon /swapfile
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;确认创建命令成功后再执行后续步骤。&lt;code&gt;bs × count&lt;/code&gt; 是文件大小，这里是 1024 MiB。&lt;/p&gt;
&lt;h2 id="开机自动启用"&gt;开机自动启用
&lt;/h2&gt;&lt;p&gt;检查 &lt;code&gt;/etc/fstab&lt;/code&gt; 中是否已有该文件的配置，避免重复添加：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;grep -F &lt;span class="s1"&gt;&amp;#39;/swapfile &amp;#39;&lt;/span&gt; /etc/fstab
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;如果没有，再添加：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;printf&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;/swapfile none swap sw 0 0\n&amp;#39;&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; sudo tee -a /etc/fstab
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id="验证"&gt;验证
&lt;/h2&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;swapon --show
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;free -h
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;确认输出包含 &lt;code&gt;/swapfile&lt;/code&gt;，并在重启后再次检查。&lt;/p&gt;
&lt;h2 id="延伸阅读"&gt;延伸阅读
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="https://blog.dawnwl.com/posts/linux-disk-mount/" &gt;Linux 数据盘分区、格式化与挂载&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Linux 临时关闭与永久禁用 firewalld</title><link>https://blog.dawnwl.com/posts/linux-disable-firewalld/</link><pubDate>Tue, 21 Feb 2023 00:00:00 +0000</pubDate><guid>https://blog.dawnwl.com/posts/linux-disable-firewalld/</guid><description>&lt;h2 id="适用范围"&gt;适用范围
&lt;/h2&gt;&lt;p&gt;firewalld 可用于多种 Linux 发行版，不属于某个发行版独有功能。以下命令要求系统已经安装 firewalld，且由 systemd 管理；使用其他防火墙或初始化系统时不能直接套用。&lt;/p&gt;
&lt;h2 id="查看当前状态可选"&gt;查看当前状态（可选）
&lt;/h2&gt;&lt;p&gt;需要恢复原状态时，可在修改前记录服务是否运行、是否开机启动：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;systemctl is-active firewalld
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;systemctl is-enabled firewalld
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id="临时关闭"&gt;临时关闭
&lt;/h2&gt;&lt;p&gt;停止当前运行的服务：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;systemctl stop firewalld
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id="永久禁用"&gt;永久禁用
&lt;/h2&gt;&lt;p&gt;取消开机启动。&lt;code&gt;disable&lt;/code&gt; 不会停止当前运行的服务；需要立即关闭并取消开机启动时，依次执行上面的 &lt;code&gt;stop&lt;/code&gt; 和下面的 &lt;code&gt;disable&lt;/code&gt;：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;systemctl disable firewalld.service
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id="验证与恢复"&gt;验证与恢复
&lt;/h2&gt;&lt;p&gt;修改后用上面的查询命令检查：执行 &lt;code&gt;stop&lt;/code&gt; 后应为 &lt;code&gt;inactive&lt;/code&gt;，执行 &lt;code&gt;disable&lt;/code&gt; 后应为 &lt;code&gt;disabled&lt;/code&gt;；这些状态可能返回非零退出码。若原来是运行且开机启用的状态，需要恢复时执行：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo systemctl &lt;span class="nb"&gt;enable&lt;/span&gt; --now firewalld
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;原本未开机启用的系统，应按原状态单独启动服务或保持禁用。&lt;/p&gt;
&lt;p&gt;参考：&lt;a class="link" href="https://github.com/systemd/systemd/blob/main/man/systemctl.xml" target="_blank" rel="noopener"
 &gt;systemctl 官方说明&lt;/a&gt;。&lt;/p&gt;</description></item><item><title>Linux 将目录权限设为 755、文件权限设为 644</title><link>https://blog.dawnwl.com/posts/linux-chmod-755-644/</link><pubDate>Fri, 19 Aug 2022 00:00:00 +0000</pubDate><guid>https://blog.dawnwl.com/posts/linux-chmod-755-644/</guid><description>&lt;h2 id="适用范围"&gt;适用范围
&lt;/h2&gt;&lt;p&gt;需要以文件所有者或具备相应权限的管理员身份执行；仅有目录写入权限并不足以修改其他用户文件的权限。下面给出两种把目录统一设为 755、文件统一设为 644 的方法，以及保留可执行文件的方法，路径替换为实际目录。&lt;/p&gt;
&lt;h2 id="方法一一次递归-chmod"&gt;方法一：一次递归 chmod
&lt;/h2&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;chmod -R &lt;span class="nv"&gt;a&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;r,u+w,a+X &lt;span class="s2"&gt;&amp;#34;/path/to/directory&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;code&gt;a=r&lt;/code&gt; 先把权限设为只读并清除已有执行位，&lt;code&gt;u+w&lt;/code&gt; 为所有者增加写权限，最后 &lt;code&gt;a+X&lt;/code&gt; 为目录恢复执行位。最终目录是 755，普通文件和原可执行文件都会变成 644。&lt;/p&gt;
&lt;h2 id="方法二按文件类型精确设置"&gt;方法二：按文件类型精确设置
&lt;/h2&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;find &lt;span class="s2"&gt;&amp;#34;/path/to/directory&amp;#34;&lt;/span&gt; -type f -exec chmod &lt;span class="m"&gt;644&lt;/span&gt; &lt;span class="o"&gt;{}&lt;/span&gt; + &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; -o -type d -exec chmod &lt;span class="m"&gt;755&lt;/span&gt; &lt;span class="o"&gt;{}&lt;/span&gt; +
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;这个方法明确区分普通文件与目录，符号链接不匹配 &lt;code&gt;-type f&lt;/code&gt; 或 &lt;code&gt;-type d&lt;/code&gt;。不要先递归把目录全部设为 644，再尝试进入目录恢复权限；普通用户可能因此失去遍历权限。&lt;/p&gt;
&lt;h2 id="可选保留已有可执行文件"&gt;可选：保留已有可执行文件
&lt;/h2&gt;&lt;p&gt;如果目录中包含需要执行的脚本或程序，可以使用：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;chmod -R &lt;span class="nv"&gt;u&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;rwX,go&lt;span class="o"&gt;=&lt;/span&gt;rX &lt;span class="s2"&gt;&amp;#34;/path/to/directory&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;目录变成 755，原先有执行位的文件保留执行能力并变成 755，其余文件变成 644。此方法与前两种严格的“所有文件 644”目标不同，应按目录用途选择。&lt;/p&gt;
&lt;h2 id="验证结果"&gt;验证结果
&lt;/h2&gt;&lt;p&gt;在目标目录抽查目录、普通文件与可执行文件，例如：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;stat -c &lt;span class="s1"&gt;&amp;#39;%a %n&amp;#39;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;/path/to/directory&amp;#34;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;/path/to/directory/example.txt&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;前两种方法将所有普通文件设为 644，第三种会保留原有可执行文件的执行权限，抽查时按所选方法确认结果。&lt;/p&gt;
&lt;p&gt;参考：&lt;a class="link" href="https://www.gnu.org/software/libc/manual/html_node/Setting-Permissions.html" target="_blank" rel="noopener"
 &gt;GNU C Library 的文件权限说明&lt;/a&gt;。&lt;/p&gt;
&lt;h2 id="延伸阅读"&gt;延伸阅读
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="https://blog.dawnwl.com/posts/linux-disk-mount/" &gt;Linux 数据盘分区、格式化与挂载&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Linux 双栈环境优先使用 IPv4（glibc）</title><link>https://blog.dawnwl.com/posts/linux-prefer-ipv4/</link><pubDate>Wed, 29 Sep 2021 00:00:00 +0000</pubDate><guid>https://blog.dawnwl.com/posts/linux-prefer-ipv4/</guid><description>
 &lt;blockquote&gt;
 &lt;p&gt;此设置主要影响使用 glibc getaddrinfo 的程序，不会禁用 IPv6，也不保证影响自带解析器的应用。修改前检查 &lt;code&gt;/etc/gai.conf&lt;/code&gt;，避免重复添加；如果已有其他 precedence 规则，需一起检查。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h2 id="前言"&gt;前言
&lt;/h2&gt;&lt;p&gt;在双栈环境中，IPv6 路由不可达或连接不稳定，可能让某些程序先尝试 IPv6 后等待超时。使用 glibc 的程序可以通过 &lt;code&gt;/etc/gai.conf&lt;/code&gt; 调整地址选择优先级，这种方式也适用于 Debian 上的 APT 等程序。&lt;/p&gt;
&lt;p&gt;使用 musl 等其他 C 库的系统，或带独立解析器的程序，未必读取这个文件。若只想影响某个应用，应优先检查该应用自己的 IPv4 选项。&lt;/p&gt;
&lt;h2 id="设置为优先使用ipv4"&gt;设置为优先使用ipv4
&lt;/h2&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;precedence ::ffff:0:0/96 100&amp;#39;&lt;/span&gt; &amp;gt;&amp;gt; /etc/gai.conf
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;</description></item><item><title>Linux 启用 BBR 拥塞控制</title><link>https://blog.dawnwl.com/posts/linux-bbr/</link><pubDate>Fri, 06 Aug 2021 00:00:00 +0000</pubDate><guid>https://blog.dawnwl.com/posts/linux-bbr/</guid><description>&lt;h2 id="适用范围"&gt;适用范围
&lt;/h2&gt;&lt;p&gt;BBR 是 Linux 内核的 TCP 拥塞控制算法，适用性取决于内核编译配置、可用模块与权限，并非 Debian 专属。发行版名称不能代替内核能力检查；容器中能否修改参数还取决于宿主机与网络命名空间设置。&lt;/p&gt;
&lt;h2 id="检查支持情况"&gt;检查支持情况
&lt;/h2&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;uname -r
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sysctl net.ipv4.tcp_available_congestion_control
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;如果没有 &lt;code&gt;bbr&lt;/code&gt;，但系统提供对应模块，可加载后再次检查：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo modprobe tcp_bbr
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sysctl net.ipv4.tcp_available_congestion_control
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;只有确认输出包含 &lt;code&gt;bbr&lt;/code&gt; 后再修改。模块不存在时，需要换用或编译支持 BBR 的内核，不能只添加 sysctl 配置。&lt;/p&gt;
&lt;h2 id="写入并加载配置"&gt;写入并加载配置
&lt;/h2&gt;&lt;p&gt;下面使用独立配置文件；已有同名文件时先检查和备份：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;span class="lnt"&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;printf&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;%s\n&amp;#39;&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s1"&gt;&amp;#39;net.core.default_qdisc = fq&amp;#39;&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s1"&gt;&amp;#39;net.ipv4.tcp_congestion_control = bbr&amp;#39;&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;|&lt;/span&gt; sudo tee /etc/sysctl.d/99-bbr.conf
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo sysctl -p /etc/sysctl.d/99-bbr.conf
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;开机持久化要求系统启动时读取 &lt;code&gt;/etc/sysctl.d/&lt;/code&gt;，例如使用 systemd-sysctl 的系统。其他初始化系统和精简发行版需按其方式加载配置，不应仅凭文件存在判断重启后会生效。&lt;/p&gt;
&lt;h2 id="验证"&gt;验证
&lt;/h2&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sysctl net.ipv4.tcp_congestion_control net.core.default_qdisc
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;预期分别为 &lt;code&gt;bbr&lt;/code&gt; 与 &lt;code&gt;fq&lt;/code&gt;。重启后再次验证。拥塞控制设置影响新连接，不保证所有线路测速都会提升。&lt;/p&gt;
&lt;p&gt;参考：&lt;a class="link" href="https://docs.kernel.org/networking/ip-sysctl.html" target="_blank" rel="noopener"
 &gt;Linux 内核 TCP sysctl 文档&lt;/a&gt;。&lt;/p&gt;</description></item><item><title>Linux 数据盘分区、格式化与挂载</title><link>https://blog.dawnwl.com/posts/linux-disk-mount/</link><pubDate>Sun, 01 Aug 2021 00:00:00 +0000</pubDate><guid>https://blog.dawnwl.com/posts/linux-disk-mount/</guid><description>
 &lt;blockquote&gt;
 &lt;p&gt;仅对已确认无数据的新磁盘操作；分区和格式化会改变磁盘内容。本文是传统 MBR 分区示例，GPT 与大容量磁盘的分区步骤不同。示例 &lt;code&gt;/dev/vdb&lt;/code&gt; 必须替换为实际磁盘。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h2 id="前言"&gt;前言
&lt;/h2&gt;&lt;p&gt;本文使用的 fdisk、mkfs.ext4、mount 和 fstab 属于常见 Linux 存储工具与配置，流程不依赖 CentOS。需要系统已安装对应工具，且使用本文示例的分区表与文件系统；发行版之间工具包安装方式可能不同。&lt;/p&gt;
&lt;h2 id="查看未分配的磁盘"&gt;查看未分配的磁盘
&lt;/h2&gt;&lt;p&gt;使用 &lt;code&gt;fdisk -l&lt;/code&gt; 查看数据盘信息。&lt;code&gt;df -h&lt;/code&gt; 显示已挂载文件系统的使用情况，未挂载的数据盘应通过 &lt;code&gt;fdisk -l&lt;/code&gt; 查看。下面以一块 54 GB 数据盘 &lt;code&gt;/dev/vdb&lt;/code&gt; 为例。&lt;/p&gt;
&lt;p&gt;&lt;img alt="使用 fdisk 查看新数据盘" class="gallery-image" data-flex-basis="279px" data-flex-grow="116" height="452" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://blog.dawnwl.com/posts/linux-disk-mount/disk-overview.png" width="526"&gt;&lt;/p&gt;
&lt;h2 id="创建新的磁盘分区"&gt;创建新的磁盘分区
&lt;/h2&gt;&lt;p&gt;执行以下命令，对数据盘进行分区。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;fdisk /dev/vdb
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;按照界面的提示，依次输入“n”(新建分区)、“p”(新建主分区)、“1”(使用第1个主分区)，两次回车(使用默认配置)，输入“w”(保存分区表并退出)，回车开始分区。
这里是以创建1个分区为例，也可以根据自己的需求创建多个分区。&lt;/p&gt;
&lt;p&gt;&lt;img alt="创建数据盘分区的示例" class="gallery-image" data-flex-basis="391px" data-flex-grow="163" height="426" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://blog.dawnwl.com/posts/linux-disk-mount/disk-partition.png" width="695"&gt;&lt;/p&gt;
&lt;p&gt;使用“fdisk -l”命令，即可查看到，新的分区vdb1已经创建完成。&lt;/p&gt;
&lt;h2 id="格式化磁盘分区"&gt;格式化磁盘分区
&lt;/h2&gt;&lt;p&gt;分区后需要对分好的区进行格式化，您可自行选择文件系统的格式，如ext2、ext3、ext4等。本例以“ext4”为例：
使用下面的命令对新分区进行格式化。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;mkfs.ext4 /dev/vdb1
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id="创建并挂载分区"&gt;创建并挂载分区
&lt;/h2&gt;&lt;p&gt;使用以下命令创建mydata目录并将分区挂载在该目录下：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;mkdir /mydata
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;mount /dev/vdb1 /mydata
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id="查看分区挂载状态"&gt;查看分区挂载状态
&lt;/h2&gt;&lt;p&gt;使用以下命令查看。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;df -h
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;出现如图信息则说明挂载成功，即可以查看到数据盘了。&lt;/p&gt;
&lt;p&gt;&lt;img alt="检查数据盘挂载结果" class="gallery-image" data-flex-basis="616px" data-flex-grow="256" height="171" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://blog.dawnwl.com/posts/linux-disk-mount/disk-mounted.png" width="439"&gt;&lt;/p&gt;
&lt;h2 id="开机自动挂载分区"&gt;开机自动挂载分区
&lt;/h2&gt;&lt;p&gt;上面的 &lt;code&gt;mount&lt;/code&gt; 命令只完成本次挂载。需要开机自动挂载时，将分区信息添加到 &lt;code&gt;/etc/fstab&lt;/code&gt;：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;/dev/vdb1 /mydata ext4 defaults 0 0&amp;#39;&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; sudo tee -a /etc/fstab
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;命令直接追加挂载配置，不需要手工填写文件。已有对应条目时不要重复追加。添加后执行 &lt;code&gt;sudo mount -a&lt;/code&gt; 检查。&lt;/p&gt;
&lt;h3 id="可选自动获取-uuid-后添加"&gt;可选：自动获取 UUID 后添加
&lt;/h3&gt;&lt;p&gt;如果希望避免设备名称变化，可用下面的命令替代上面的追加命令，二选一即可：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;disk_uuid&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;sudo blkid -s UUID -o value /dev/vdb1&lt;span class="k"&gt;)&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; -n &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$disk_uuid&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;printf&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;UUID=%s /mydata ext4 defaults 0 0\n&amp;#39;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$disk_uuid&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; sudo tee -a /etc/fstab
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;截图来源：&lt;a class="link" href="https://main.qcloudimg.com/raw/61f5dd4dd3f576ef615cbb63d987348d.png" target="_blank" rel="noopener"
 &gt;腾讯云原图 1&lt;/a&gt;、&lt;a class="link" href="https://main.qcloudimg.com/raw/9398eba43945b8f6baa2b4b411d87388.png" target="_blank" rel="noopener"
 &gt;原图 2&lt;/a&gt;、&lt;a class="link" href="https://main.qcloudimg.com/raw/d815878cb0902f4be43b9f2fbd107a23.png" target="_blank" rel="noopener"
 &gt;原图 3&lt;/a&gt;。&lt;/p&gt;
&lt;h2 id="延伸阅读"&gt;延伸阅读
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="https://blog.dawnwl.com/posts/linux-swap/" &gt;Linux 创建并启用 Swap 文件&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://blog.dawnwl.com/posts/linux-chmod-755-644/" &gt;Linux 将目录权限设为 755、文件权限设为 644&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Linux 关闭 SELinux：临时停止与永久禁用</title><link>https://blog.dawnwl.com/posts/linux-disable-selinux/</link><pubDate>Mon, 08 Mar 2021 00:00:00 +0000</pubDate><guid>https://blog.dawnwl.com/posts/linux-disable-selinux/</guid><description>&lt;h2 id="适用范围"&gt;适用范围
&lt;/h2&gt;&lt;p&gt;以下命令用于已启用 SELinux 的 Linux 系统。永久禁用的方法按系统版本选择：支持配置文件禁用的旧系统修改 &lt;code&gt;/etc/selinux/config&lt;/code&gt;，RHEL 9 设置启动参数；两种方法都需要重启。&lt;/p&gt;
&lt;h2 id="查看状态"&gt;查看状态
&lt;/h2&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sestatus -v
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;getenforce
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id="永久关闭支持配置文件禁用的旧系统"&gt;永久关闭：支持配置文件禁用的旧系统
&lt;/h2&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo sed -i &lt;span class="s1"&gt;&amp;#39;s/^SELINUX=.*/SELINUX=disabled/&amp;#39;&lt;/span&gt; /etc/selinux/config
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;命令自动修改配置，重启后生效。重启前如果需要立即停止强制执行策略，可以再运行下面的临时命令。&lt;/p&gt;
&lt;h2 id="临时停止强制执行"&gt;临时停止强制执行
&lt;/h2&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo setenforce &lt;span class="m"&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;code&gt;setenforce 0&lt;/code&gt; 切换到宽容模式，停止强制执行策略，但保留 SELinux 和日志；它不是彻底禁用。可用 &lt;code&gt;sudo setenforce 1&lt;/code&gt; 恢复强制模式。&lt;/p&gt;
&lt;h2 id="永久关闭rhel-9"&gt;永久关闭：RHEL 9
&lt;/h2&gt;&lt;p&gt;RHEL 9 已移除原来的内核运行时禁用支持，彻底禁用应设置启动参数 &lt;code&gt;selinux=0&lt;/code&gt;：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo grubby --update-kernel ALL --args &lt;span class="nv"&gt;selinux&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;重启后用 &lt;code&gt;getenforce&lt;/code&gt; 确认结果。此命令适用于使用对应 grubby 引导配置的系统，其他发行版按实际引导器设置。&lt;/p&gt;
&lt;p&gt;参考：&lt;a class="link" href="https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/9/html/considerations_in_adopting_rhel_9/assembly_security_considerations-in-adopting-rhel-9" target="_blank" rel="noopener"
 &gt;Red Hat 的版本变更说明&lt;/a&gt;。&lt;/p&gt;</description></item></channel></rss>