<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>ファイルシステム on KnightLiブログ</title>
        <link>https://knightli.com/ja/tags/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0/</link>
        <description>Recent content in ファイルシステム on KnightLiブログ</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>ja</language>
        <lastBuildDate>Sat, 09 May 2026 07:11:01 +0800</lastBuildDate><atom:link href="https://knightli.com/ja/tags/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>Btrfs Scrub 使用ガイド：データ検証、自動修復、定期メンテナンス</title>
        <link>https://knightli.com/ja/2026/05/09/btrfs-scrub-check-repair-guide/</link>
        <pubDate>Sat, 09 May 2026 07:11:01 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/09/btrfs-scrub-check-repair-guide/</guid>
        <description>&lt;p&gt;Btrfs scrub は、Btrfs の日常メンテナンスで最も重要で、同時に誤解されやすい機能の一つである。これは伝統的な意味の fsck ではない。filesystem data と metadata を読み、checksum、superblock、metadata block header、disk read error を検証し、信頼できる replica がある場合に修復を試みる online validation pass である。&lt;/p&gt;
&lt;p&gt;NAS、home server、backup disk、multi-device array で Btrfs を使っているなら、scrub は定期メンテナンスに入れるべきだ。価値は「壊れてから修理する」ことではなく、disk がまだ読めて、array に good replica が残っている段階で silent corruption を早期に見つけることにある。&lt;/p&gt;
&lt;h2 id=&#34;scrub-は何を確認するのか&#34;&gt;scrub は何を確認するのか
&lt;/h2&gt;&lt;p&gt;Btrfs の公式ドキュメントによると、scrub は filesystem data と metadata を走査し、主に次を確認する。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;data block checksum error。&lt;/li&gt;
&lt;li&gt;basic super block error。&lt;/li&gt;
&lt;li&gt;basic metadata block header error。&lt;/li&gt;
&lt;li&gt;disk read error。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;RAID1 のような replicated block group profile を使う filesystem では、read-write mount 上の scrub が一部の損傷を自動修復できる。修復は魔法ではない。別の replica から検証済みの good data をコピーするだけである。&lt;/p&gt;
&lt;p&gt;ここが重要だ。scrub の修復能力は「利用可能な good copy が存在すること」に依存する。single disk に data が一つしかない場合、scrub は checksum error を検出できても、元の内容を自力で復元することは通常できない。&lt;/p&gt;
&lt;h2 id=&#34;よく使うコマンド&#34;&gt;よく使うコマンド
&lt;/h2&gt;&lt;p&gt;mount point に対して scrub を開始する。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo btrfs scrub start /
&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;foreground で実行し、結果を手動で観察する。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo btrfs scrub start -B /
&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;status を確認する。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo btrfs scrub status /
&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;実行中の scrub を cancel する。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo btrfs scrub cancel /
&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;中断された scrub を resume する。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo btrfs scrub resume /
&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;Btrfs の mount path を指定すると、その filesystem 内の全 device を並列に scrub する。device を指定した場合は、その device だけを scrub する。ただし指定 device 上の replica が読めない、または検証に失敗した場合、Btrfs は他の device から good copy を読むことを試みる。&lt;/p&gt;
&lt;h2 id=&#34;scrub-は-fsck-ではない&#34;&gt;scrub は fsck ではない
&lt;/h2&gt;&lt;p&gt;最もよくある誤解がこれだ。scrub は &lt;code&gt;btrfs check&lt;/code&gt; ではなく、伝統的な filesystem checker でもない。&lt;/p&gt;
&lt;p&gt;scrub ができること：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;checksum を使って data または metadata corruption を検出する。&lt;/li&gt;
&lt;li&gt;他に信頼できる replica がある場合に自動修復する。&lt;/li&gt;
&lt;li&gt;disk read error と一部の基本構造 error を検出する。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;scrub ができないこと：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;good replica がない data を再構築する。&lt;/li&gt;
&lt;li&gt;offline filesystem check を置き換える。&lt;/li&gt;
&lt;li&gt;複雑な tree structure corruption をすべて修復する。&lt;/li&gt;
&lt;li&gt;application-level file content が必ず正しいと保証する。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;filesystem structure が深刻に壊れている場合、専門家の助言のもとで &lt;code&gt;btrfs check&lt;/code&gt; などの tool が必要になることがある。scrub を万能修復コマンドとして扱ってはいけない。&lt;/p&gt;
&lt;h2 id=&#34;nocow-file-のリスク&#34;&gt;NOCOW file のリスク
&lt;/h2&gt;&lt;p&gt;Btrfs 公式ドキュメントは重要な注意点を挙げている。&lt;code&gt;chattr +C&lt;/code&gt; で file に &lt;code&gt;NOCOW&lt;/code&gt; attribute を設定すると、現在の実装では暗黙に &lt;code&gt;NODATASUM&lt;/code&gt; が有効になる。つまり、その file data 自体には checksum がない。&lt;/p&gt;
&lt;p&gt;scrub はこれらの file の metadata を検証し修復できるが、file data の内容は検証できない。multi-replica setup では特に問題になる。ある NOCOW file の一つの copy が壊れても、Btrfs にはどの replica が正しいか判断する data checksum がないため、壊れた内容を user space tool に返す可能性がある。&lt;/p&gt;
&lt;p&gt;一部の application は performance のために &lt;code&gt;+C&lt;/code&gt; を default で使う。systemd journal や一部の libvirt storage pool が代表例である。VM image、database、log directory では性能上の理由があるが、普通の COW file と同じように scrub が data content を守ってくれるとは期待できない。&lt;/p&gt;
&lt;h2 id=&#34;read-only-scrub-でも書き込みが起こり得る&#34;&gt;read-only scrub でも書き込みが起こり得る
&lt;/h2&gt;&lt;p&gt;もう一つ直感に反する点がある。read-write mounted filesystem で read-only scrub を実行しても、いくつかの write が発生する可能性がある。&lt;/p&gt;
&lt;p&gt;公式ドキュメントによると、これは block group を read-only として mark することと block group items を write back することの race を避けるための design limitation である。完全に write のない scrub を望むなら、read-only mounted filesystem 上で read-only scrub を実行する必要がある。read-write mount に read-only scrub option を付けるだけでは不十分だ。&lt;/p&gt;
&lt;p&gt;一般ユーザーにとっての意味は次の通り。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;日常の online scrub は read-write mount 上で実行できる。&lt;/li&gt;
&lt;li&gt;forensic、failure analysis、非常に保守的な read-only check では、先に mount state を確認する。&lt;/li&gt;
&lt;li&gt;read-only scrub を絶対に zero-write だと解釈しない。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;中断と再開&#34;&gt;中断と再開
&lt;/h2&gt;&lt;p&gt;新しい kernel では、scrub は suspend、hibernate、filesystem freezing、cgroup freezing、pending signals などで中断されることがある。中断後、実行中の scrub は cancel されるが、&lt;code&gt;btrfs scrub resume&lt;/code&gt; で保存位置から再開できる。&lt;/p&gt;
&lt;p&gt;scrub status は次の場所に記録される。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/var/lib/btrfs/
&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;file name は通常次のようになる。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;scrub.status.UUID
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;scrub.progress.UUID
&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;status file は定期的に更新される。resume した scrub は、完全に最初からではなく、最後に保存された位置から続行する。&lt;/p&gt;
&lt;h2 id=&#34;どれくらいの頻度で実行するか&#34;&gt;どれくらいの頻度で実行するか
&lt;/h2&gt;&lt;p&gt;公式の推奨は月 1 回である。実際には data の重要性と disk 状態に合わせて調整する。&lt;/p&gt;
&lt;p&gt;よくある schedule：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Home NAS：月 1 回。&lt;/li&gt;
&lt;li&gt;Backup disk：長時間接続した後、または月 1 回。&lt;/li&gt;
&lt;li&gt;重要な multi-device array：月 1 回、必要ならより頻繁に。&lt;/li&gt;
&lt;li&gt;New disk migration や disk 不良の疑い：migration 後すぐに実行。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;scrub は idle filesystem でも device bandwidth の約 80% を使う可能性があるため、peak workload 中に実行しないほうがよい。HDD array では scrub 中に latency がかなり上がることがある。SSD でも read amplification と background pressure は増える。&lt;/p&gt;
&lt;h2 id=&#34;scrub-の-bandwidth-を制限する&#34;&gt;scrub の bandwidth を制限する
&lt;/h2&gt;&lt;p&gt;以前は &lt;code&gt;ionice&lt;/code&gt; で foreground I/O への影響を下げる方法がよく使われた。しかし公式ドキュメントは、すべての I/O scheduler で同じように support されるわけではないと注意している。CFQ はすでに一般的ではない。BFQ は関連 priority behavior を support するが、使う前に理解しておく必要がある。&lt;code&gt;mq-deadline&lt;/code&gt; のような一般的 scheduler では、cgroup2 I/O controller や Btrfs 専用の limit のほうが適している。&lt;/p&gt;
&lt;p&gt;systemd で read bandwidth を制限する例：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo systemd-run -p &lt;span class=&#34;s2&#34;&gt;&amp;#34;IOReadBandwidthMax=/dev/sdx 10M&amp;#34;&lt;/span&gt; btrfs scrub start -B /
&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 5.14 以降では、Btrfs 専用の sysfs interface で device ごとの scrub limit を設定できる。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;echo&lt;/span&gt; 100m &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; sudo tee /sys/fs/btrfs/FSID/devinfo/DEVID/scrub_speed_max
&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;現在の limit を表示する。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo btrfs scrub limit /
&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;この設定は永続化されず、filesystem を unmount すると失われる。実際の system に合わせて &lt;code&gt;FSID&lt;/code&gt; と &lt;code&gt;DEVID&lt;/code&gt; を置き換える必要がある。まず次を確認する。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo btrfs filesystem show /
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ls /sys/fs/btrfs/
&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=&#34;実用的なメンテナンス手順&#34;&gt;実用的なメンテナンス手順
&lt;/h2&gt;&lt;p&gt;堅実な Btrfs メンテナンス手順は次のようにできる。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo btrfs scrub start -B /
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo btrfs scrub status /
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo btrfs device stats /
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;dmesg -T &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; grep -Ei &lt;span class=&#34;s2&#34;&gt;&amp;#34;btrfs|checksum|i/o error|read error&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;scrub が corrected errors を報告した場合、Btrfs は good replica から data を修復したという意味だが、無視してよいわけではない。disk SMART、cable、power、controller、Btrfs device stats を続けて確認するべきだ。&lt;/p&gt;
&lt;p&gt;scrub が uncorrectable errors を報告した場合、Btrfs は good copy を見つけられなかった。まだ読める data をできるだけ早く backup し、affected file または device を特定し、必要に応じて disk replacement や backup からの restore を行う。&lt;/p&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ
&lt;/h2&gt;&lt;p&gt;Btrfs scrub の役割は明確だ。online data verification と replica repair の tool であり、fsck ではなく、backup でもない。&lt;/p&gt;
&lt;p&gt;checksum と redundant replica がある Btrfs filesystem で、silent corruption を定期的に見つけ、good copy から復元する用途に最も向いている。checksum のない NOCOW file data は保護できず、good replica がない場合に壊れた内容を復元することもできない。&lt;/p&gt;
&lt;p&gt;重要な data を Btrfs に置くなら、月 1 回 scrub を実行し、SMART、device stats、backup、alerting と組み合わせるべきだ。信頼できる data safety は、checksum、redundancy、monitoring、backup が一緒に働くことで実現する。単一の command に依存するものではない。&lt;/p&gt;
&lt;p&gt;参考リンク：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://btrfs.readthedocs.io/en/latest/Scrub.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Btrfs 公式ドキュメント：Scrub&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Linux 7.0 と 7.1 における NTFS ドライバー変更の整理</title>
        <link>https://knightli.com/ja/2026/05/02/linux-7-0-7-1-ntfs-driver/</link>
        <pubDate>Sat, 02 May 2026 10:46:20 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/02/linux-7-0-7-1-ntfs-driver/</guid>
        <description>&lt;p&gt;Linux 7.0 の公開後、7.1 は次の機能マージ期間に入りました。そこで注目される変更の一つが、新しい NTFS カーネルドライバーです。&lt;/p&gt;
&lt;p&gt;ここでいう「新しい」は、Linux が初めて NTFS に対応するという意味ではありません。また、&lt;code&gt;ntfs3&lt;/code&gt; が置き換えられるという意味でもありません。より正確には、Linux 7.1 に新しい任意のカーネル内 NTFS 読み書きドライバーが追加されます。これは昔からあるカーネル内 &lt;code&gt;ntfs&lt;/code&gt; ドライバーを整理し直し、より完全な書き込み機能を補ったものです。&lt;/p&gt;
&lt;h2 id=&#34;まず結論&#34;&gt;まず結論
&lt;/h2&gt;&lt;p&gt;Linux での NTFS 対応は、現在おもに三つのルートがあります。&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;方式&lt;/th&gt;
          &lt;th&gt;場所&lt;/th&gt;
          &lt;th&gt;読み書き&lt;/th&gt;
          &lt;th&gt;向いている場面&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;ntfs-3g&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;ユーザー空間 FUSE&lt;/td&gt;
          &lt;td&gt;読み書き&lt;/td&gt;
          &lt;td&gt;安定性優先。長く使われてきたディストリビューション標準&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;ntfs3&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;カーネル空間&lt;/td&gt;
          &lt;td&gt;読み書き&lt;/td&gt;
          &lt;td&gt;より直接的なカーネル統合と性能を求める場合&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;新 &lt;code&gt;ntfs&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;カーネル空間&lt;/td&gt;
          &lt;td&gt;読み書き&lt;/td&gt;
          &lt;td&gt;Linux 7.1 で追加される任意の実装&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;今回の変更は強制移行ではなく、選択肢が一つ増えるという話です。普通のユーザーは、当面ディストリビューションの標準設定に従えば十分です。&lt;/p&gt;
&lt;h2 id=&#34;70-と-71-の関係&#34;&gt;7.0 と 7.1 の関係
&lt;/h2&gt;&lt;p&gt;Linux 7.0 は、カーネルのバージョンが 7.x 系列に入ったことを示します。7.0 で NTFS 対応が突然書き換えられたわけではありません。NTFS に関する新しい変更は、7.1 の機能マージ段階で入ります。&lt;/p&gt;
&lt;p&gt;NTFS は Linux デスクトップユーザーにとって避けて通れないファイルシステムです。デュアルブート、外付けドライブ、USB メモリ、Windows データディスクでよく使われます。問題は、NTFS の書き込み経路が複雑なことです。ファイルシステムドライバーにバグがあると、ユーザーデータへ直接影響します。そのため、カーネルコミュニティは NTFS ドライバーの変更に慎重です。&lt;/p&gt;
&lt;h2 id=&#34;ntfs-3gntfs3新-ntfs&#34;&gt;&lt;code&gt;ntfs-3g&lt;/code&gt;、&lt;code&gt;ntfs3&lt;/code&gt;、新 &lt;code&gt;ntfs&lt;/code&gt;
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;ntfs-3g&lt;/code&gt; はユーザー空間の FUSE ドライバーで、Linux 上の NTFS 読み書きを長く担ってきました。常に最速とは限りませんが、成熟しており、互換性が高く、情報も豊富です。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;ntfs3&lt;/code&gt; は Paragon Software が提供し、Linux メインラインに入ったカーネル内 NTFS ドライバーです。経路が短く、VFS との統合も直接的で、理論上の性能も高くなります。ただし、ファイルシステムドライバーには高い保守品質が求められるため、&lt;code&gt;ntfs3&lt;/code&gt; のマージ後も保守ペースやコード品質について議論がありました。&lt;/p&gt;
&lt;p&gt;Linux 7.1 で追加される &lt;code&gt;ntfs&lt;/code&gt; ドライバーは、Namjae Jeon が保守しています。ゼロから作られたものではなく、古いカーネル &lt;code&gt;ntfs&lt;/code&gt; ドライバーを現代化し、読み書き能力を補った別の任意実装です。&lt;code&gt;ntfs3&lt;/code&gt; と併存します。&lt;/p&gt;
&lt;p&gt;三者の関係は次のように考えると分かりやすいです。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;ntfs-3g&lt;/code&gt;：保守的で成熟したユーザー空間実装。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ntfs3&lt;/code&gt;：すでにメインラインにあるカーネル内実装。&lt;/li&gt;
&lt;li&gt;新 &lt;code&gt;ntfs&lt;/code&gt;：7.1 で追加されるカーネル内実装。安定性は今後の観察が必要。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;どれを使うべきか&#34;&gt;どれを使うべきか
&lt;/h2&gt;&lt;p&gt;日常利用で急いで切り替える必要はありません。保守的には次の順番が無難です。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;重要なデータでは、ディストリビューション標準の方式を使う。多くの場合は &lt;code&gt;ntfs-3g&lt;/code&gt;、または検証済みの &lt;code&gt;ntfs3&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;性能が必要な場合は &lt;code&gt;ntfs3&lt;/code&gt; を試す。&lt;/li&gt;
&lt;li&gt;新しい &lt;code&gt;ntfs&lt;/code&gt; ドライバーは、まずテスト用ディスク、一時データ、復旧可能なデータで試す。&lt;/li&gt;
&lt;li&gt;重要な NTFS パーティションへ書き込む前にバックアップする。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;code&gt;ntfs3&lt;/code&gt; を手動で使う場合の一般的なマウント例です。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo mount -t ntfs3 /dev/sdX1 /mnt/ntfs
&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=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo mount -o ro /dev/sdX1 /mnt/ntfs
&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=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;findmnt -T /mnt/ntfs
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;mount &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; grep ntfs
&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=&#34;デュアルブート環境での注意&#34;&gt;デュアルブート環境での注意
&lt;/h2&gt;&lt;p&gt;NTFS パーティションが Windows のシステムディスク由来の場合、書き込む前に Windows が完全にシャットダウンされていることを確認してください。高速スタートアップや休止状態は NTFS ボリュームを未完了の状態に残すため、Linux から書き込むと整合性問題が起きることがあります。&lt;/p&gt;
&lt;p&gt;確認したい項目は次の通りです。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Windows の高速スタートアップを無効にする。&lt;/li&gt;
&lt;li&gt;パーティションが hibernation 状態でないことを確認する。&lt;/li&gt;
&lt;li&gt;BitLocker などの暗号化がアクセスを妨げていないことを確認する。&lt;/li&gt;
&lt;li&gt;外付けドライブは Windows で正しく取り外す。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;これは &lt;code&gt;ntfs-3g&lt;/code&gt;、&lt;code&gt;ntfs3&lt;/code&gt;、新しい &lt;code&gt;ntfs&lt;/code&gt; のどれを使う場合でも同じです。&lt;/p&gt;
&lt;h2 id=&#34;なぜ複数の-ntfs-ドライバーが必要なのか&#34;&gt;なぜ複数の NTFS ドライバーが必要なのか
&lt;/h2&gt;&lt;p&gt;同じファイルシステムに複数の実装が存在することは、Linux では珍しくありません。古い実装、新しい実装、ベンダー実装、コミュニティ実装がしばらく併存し、保守状況と実利用のフィードバックによって主流が決まっていきます。&lt;/p&gt;
&lt;p&gt;NTFS では特に保守的な扱いが必要です。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;ユーザーデータへのリスクが高い。&lt;/li&gt;
&lt;li&gt;互換性の場面が複雑。&lt;/li&gt;
&lt;li&gt;実装ごとに性能と安定性の取捨選択が異なる。&lt;/li&gt;
&lt;li&gt;ディストリビューションが標準設定を検証する時間が必要。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;そのため、Linux 7.1 の新 &lt;code&gt;ntfs&lt;/code&gt; ドライバーは、&lt;code&gt;ntfs-3g&lt;/code&gt; や &lt;code&gt;ntfs3&lt;/code&gt; をすぐ不要にするものではありません。カーネルコミュニティに、もう一つ保守可能な選択肢を与えるものです。&lt;/p&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ
&lt;/h2&gt;&lt;p&gt;Linux 7.1 で追加される &lt;code&gt;ntfs&lt;/code&gt; ドライバーは、任意で使えるカーネル内 NTFS 読み書き実装です。&lt;code&gt;ntfs-3g&lt;/code&gt; や &lt;code&gt;ntfs3&lt;/code&gt; と併存し、どちらかを直接置き換えるものではありません。&lt;/p&gt;
&lt;p&gt;普通のユーザーは、引き続きディストリビューション標準の方式を使えば十分です。性能や新しいファイルシステム実装を試したい場合は、&lt;code&gt;ntfs3&lt;/code&gt; と新 &lt;code&gt;ntfs&lt;/code&gt; の今後の安定性を見ながら、重要データでは必ずバックアップを取ってから切り替えるのが安全です。&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Linux Kernel 7.0 更新内容の整理</title>
        <link>https://knightli.com/ja/2026/05/01/linux-kernel-7-0-new-features/</link>
        <pubDate>Fri, 01 May 2026 14:46:07 +0800</pubDate>
        
        <guid>https://knightli.com/ja/2026/05/01/linux-kernel-7-0-new-features/</guid>
        <description>&lt;p&gt;Linux カーネルのバージョン番号は、以前からセマンティックバージョニングではない。
メジャーバージョンの上昇は、主にメンテナンス周期上のロールアップに近い。
Linus Torvalds もリリースメールで 7.0 を通常のリリースとして説明しており、最後の週はネットワーク、アーキテクチャ、ツール、セルフテスト、ドライバまわりの小さな修正が中心だった。&lt;/p&gt;
&lt;p&gt;本当に注目すべきなのは、この増分更新の中身である。
Linux 7.0 は、ファイルシステム、メモリ管理、ハードウェアサポート、セキュリティ分離、Rust サポート、ドライバ整理など、複数の領域にまたがっている。&lt;/p&gt;
&lt;h2 id=&#34;ファイルシステムxfsext4ntfs3-に変更&#34;&gt;ファイルシステム：XFS、EXT4、NTFS3 に変更
&lt;/h2&gt;&lt;p&gt;Linux 7.0 で最も体感しやすい更新の一つはファイルシステムだ。&lt;/p&gt;
&lt;p&gt;XFS には自己修復に関連する機能が入った。
新しい汎用ファイルシステムエラー報告の仕組みと組み合わせることで、ファイルシステムは metadata の破損や I/O エラーを、より統一された方法でユーザー空間へ伝えられる。
適切なシステムサービスと連携すれば、XFS はファイルシステムをマウントしたまま一部の修復処理を自動で扱える。
すべてのディスク破損を無痛で直せるという意味ではないが、サーバーや長時間稼働するシステムでは、エラー検出から修復までの経路がより整う。&lt;/p&gt;
&lt;p&gt;EXT4 は並行 direct I/O 書き込み性能を引き続き改善している。
バックアップ、ビルド、ダウンロード、データベース、ログ処理などが同時にディスクへ書き込む環境では、こうした最適化により並行書き込み経路がより安定する。
すべてのデスクトップユーザーがすぐ体感する変化ではないが、高 I/O の場面では意味がある。&lt;/p&gt;
&lt;p&gt;NTFS3 も比較的大きなドライバ更新を受けている。
内容には delayed allocation、iomap ベースのファイル操作、大きなディレクトリを走査する場面での readahead 改善が含まれる。
Linux から Windows パーティションや外付け NTFS ディスクをよく使う場合は、注目してよい更新だ。&lt;/p&gt;
&lt;p&gt;さらに exFAT は複数 cluster の順次読み取りを改善しており、一部の小さな cluster のデバイスでは順次読み取りが速くなる。&lt;/p&gt;
&lt;h2 id=&#34;メモリと-swapメモリ圧迫時の挙動を引き続き改善&#34;&gt;メモリと swap：メモリ圧迫時の挙動を引き続き改善
&lt;/h2&gt;&lt;p&gt;Linux 7.0 は、ここ数バージョンで進んできた swap サブシステムの整理を継続している。
今回の重点の一つは、swap からメモリへ読み戻す経路の改善だ。
特に、複数のプロセスが同じスワップアウト済みページを共有している場合、スループットが向上する。&lt;/p&gt;
&lt;p&gt;デスクトップユーザーにとっては、「急にシステムが速くなった」と感じる種類の変化ではないかもしれない。
しかし、メモリが厳しい環境、コンテナが密集したホスト、永続化を有効にした Redis 系サービス、または zram とバックエンドディスクを組み合わせた構成では、メモリ圧迫時の揺れを減らす助けになる。&lt;/p&gt;
&lt;p&gt;zram 関連の経路も最適化されている。
以前は一部のケースで、カーネルが zram ページをいったん展開してからバックエンドデバイスへ書き込む必要があった。
新しい経路では圧縮データを直接書き込めるため、不要な処理を減らせる。&lt;/p&gt;
&lt;h2 id=&#34;cpu-と性能intel-tsx-autoスレッドとファイル操作の高速化&#34;&gt;CPU と性能：Intel TSX auto、スレッドとファイル操作の高速化
&lt;/h2&gt;&lt;p&gt;Linux 7.0 は Intel TSX のデフォルト方針を調整した。
過去のセキュリティ問題により、多くのプロセッサでは TSX がデフォルトで無効化されていた。
現在のカーネルはより細かい &lt;code&gt;auto&lt;/code&gt; 方針を採用し、影響を受ける CPU では引き続き無効化し、影響を受けない、または有効化に適した CPU では自動的に有効化できる。&lt;/p&gt;
&lt;p&gt;これは一部のマルチスレッドワークロード、特にトランザクショナル同期拡張に依存するアプリケーションに役立つ可能性がある。
ただし、汎用的な高速化スイッチではない。
実際の効果は CPU 型番とアプリケーションがその機能を使うかどうかに依存する。&lt;/p&gt;
&lt;p&gt;また、Linux 7.0 には PID 割り当て、スレッドの作成/破棄、ファイルの open/close 経路の最適化も含まれる。
これらは単独で大きく宣伝される機能ではないが、システム応答性や高並行サービスでの小さな改善として積み上がる。&lt;/p&gt;
&lt;h2 id=&#34;ハードウェアサポート新プラットフォームの準備と既存デバイスの改善&#34;&gt;ハードウェアサポート：新プラットフォームの準備と既存デバイスの改善
&lt;/h2&gt;&lt;p&gt;Linux 7.0 は大量のハードウェア有効化作業を継続している。
この種の更新は、まだ広く出回っていない新プラットフォームへの準備と、すでにユーザーの手元にあるデバイスの改善に分けられる。&lt;/p&gt;
&lt;p&gt;新プラットフォームでは、Linux 7.0 に Intel Nova Lake、Intel Crescent Island、AMD の新しいグラフィックス IP、AMD Zen 6 に関する準備がさらに含まれる。
普通のユーザーにとってすぐ役立つとは限らないが、新しいハードウェアが登場した後に、より早くメインラインカーネルで対応できるかを左右する。&lt;/p&gt;
&lt;p&gt;ARM64 とシングルボードコンピュータでは、Rockchip RK3588/RK3576 の H.264/H.265 ハードウェア動画デコードがメインラインサポートの範囲に入った。
これは Orange Pi 5 や Radxa ROCK 5 などのデバイスが、ハードウェアデコード体験のためにベンダー BSP カーネルへ完全に依存しなくてよくなることを意味する。&lt;/p&gt;
&lt;p&gt;ノートPCや周辺機器にも細かな更新が多い。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ASUS WMI は ROG、TUF 機種のバックライト、キーボードライト、ファンホットキー対応を改善。&lt;/li&gt;
&lt;li&gt;HP WMI は一部 Victus 機種の手動ファン制御を追加し、音声インジケーターライトを修正。&lt;/li&gt;
&lt;li&gt;Lenovo WMI は Legion デバイス向けにより多くの HWMON 監視情報を公開。&lt;/li&gt;
&lt;li&gt;Intel Xe グラフィックスドライバはより多くの温度センサーを公開。&lt;/li&gt;
&lt;li&gt;Intel Arc B シリーズのディスクリートGPUは、より深い PCIe 省電力状態へ入れる。&lt;/li&gt;
&lt;li&gt;Rock Band 4 Bluetooth ギターと Logitech K980 Bluetooth キーボードのカーネルサポートが改善。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;一つ一つは小さな変更だが、ノートPC、ゲームデバイス、開発ボード、周辺機器のユーザーにとっては、メインラインカーネルでの対応が進むほど、その後のディストリビューション保守が楽になる。&lt;/p&gt;
&lt;h2 id=&#34;セキュリティと分離io_uring-で-bpf-フィルタリングが可能に&#34;&gt;セキュリティと分離：io_uring で BPF フィルタリングが可能に
&lt;/h2&gt;&lt;p&gt;Linux 7.0 は &lt;code&gt;io_uring&lt;/code&gt; に BPF フィルタリング機能を追加した。
これはコンテナ、サンドボックス、高いセキュリティ要件を持つ環境で重要になる。&lt;/p&gt;
&lt;p&gt;以前は攻撃面を減らすため、管理者が &lt;code&gt;io_uring&lt;/code&gt; を丸ごと無効化することがあった。
現在は BPF フィルタリングにより、許可する操作をより細かく制限できる。
つまり、「全開」か「全停止」だけを選ぶ必要がなくなる。&lt;/p&gt;
&lt;p&gt;これで &lt;code&gt;io_uring&lt;/code&gt; のセキュリティリスクが自動的に消えるわけではない。
しかし、システム管理者やランタイムフレームワークにとって、より制御しやすい分離手段が増える。&lt;/p&gt;
&lt;h2 id=&#34;rust-サポートは単なる実験ラベルではなくなった&#34;&gt;Rust サポートは単なる実験ラベルではなくなった
&lt;/h2&gt;&lt;p&gt;Linux 7.0 では、Rust for Linux の状態がさらに安定した。
これはカーネルが大規模に Rust へ書き換えられるという意味ではなく、C が置き換えられるという意味でもない。&lt;/p&gt;
&lt;p&gt;より正確には、カーネル内で Rust を使うための基盤が、より正式な段階に入ったということだ。
今後、新しいドライバ、新しいサブシステム、または一部のセキュリティに敏感なコードでは、適した場面で Rust を選べる。
これは段階的な道筋である。
まずインターフェース、ビルド、ドキュメント、保守プロセスを安定させ、その後で具体的なコードを少しずつ増やしていく。&lt;/p&gt;
&lt;h2 id=&#34;古い機能の整理laptop_mode-の削除&#34;&gt;古い機能の整理：laptop_mode の削除
&lt;/h2&gt;&lt;p&gt;Linux 7.0 は &lt;code&gt;laptop_mode&lt;/code&gt; を削除した。
これは長い歴史を持つ省電力機能で、主に機械式ハードディスク時代のノートPCを対象に、ディスクのスピンアップを減らして電力を節約するものだった。&lt;/p&gt;
&lt;p&gt;現在のノートPCは SSD が主流であり、カーネル内のメモリ回収、ブロックデバイス、ファイルシステム経路も大きく変化している。
この古い仕組みを残し続けると保守コストが増え、テストカバレッジも理想的ではない。
削除により、古いコードが現代的な経路へ与える影響を減らせる。&lt;/p&gt;
&lt;h2 id=&#34;ai-関連キー新世代のキーボード操作に向けた準備&#34;&gt;AI 関連キー：新世代のキーボード操作に向けた準備
&lt;/h2&gt;&lt;p&gt;Linux 7.0 は、コンテキスト AI 操作向けにいくつかの新しい HID keycode を追加した。
たとえば、選択中の内容に対して操作を実行する、コンテキスト生成内容を挿入する、コンテキスト検索を開始するといった用途である。&lt;/p&gt;
&lt;p&gt;これはカーネルに AI 機能が組み込まれたという意味ではない。
将来のノートPCキーボードや周辺機器のために入力イベント定義を用意し、デスクトップ環境、アプリ、ベンダーツールがそれらのキーを認識できるようにするものに近い。
実際に何ができるかは、ディストリビューション、デスクトップ環境、アプリケーション層の統合に依存する。&lt;/p&gt;
&lt;h2 id=&#34;すぐにアップグレードすべきか&#34;&gt;すぐにアップグレードすべきか
&lt;/h2&gt;&lt;p&gt;ローリングリリース系のディストリビューションを使っている場合、Linux 7.0 は通常のシステム更新として自然に入ってくる可能性が高い。
Ubuntu 26.04 LTS のような新しいディストリビューションでは、7.0 がデフォルトまたは主要なカーネルバージョンとして採用されることもある。&lt;/p&gt;
&lt;p&gt;ただし、対象のマシンが本番環境、NAS、仮想化ホストである場合、またはクローズドソースドライバや独自カーネルモジュールに依存している場合は、バージョン番号が 7.0 になったという理由だけで手動アップグレードするのは勧めにくい。
より安全な進め方は次の通り。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ディストリビューションが正式なカーネルパッケージを提供するのを待つ。&lt;/li&gt;
&lt;li&gt;GPU、ネットワークカード、ZFS、VirtualBox、VMware、DKMS モジュールの互換性を確認する。&lt;/li&gt;
&lt;li&gt;テスト機またはスナップショット環境で先に検証する。&lt;/li&gt;
&lt;li&gt;7.0.x のポイントリリースでの修正状況を追う。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;kernel.org の v7.x ディレクトリを見る限り、7.0.1、7.0.2、7.0.3 はすでに順次公開されている。
手動でビルドまたはテストするなら、最初の 7.0 tarball だけを見るのではなく、最新の安定版 7.0.x を優先したほうがよい。&lt;/p&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ
&lt;/h2&gt;&lt;p&gt;Linux Kernel 7.0 は、「メジャーバージョンが上がったからすべてを書き換えた」リリースではない。
むしろ、範囲の広い通常のカーネル更新に近い。
ファイルシステムはより信頼性を増し、swap と I/O 経路は引き続き最適化され、新しいハードウェア対応は前進し、Rust、&lt;code&gt;io_uring&lt;/code&gt; の分離、HID 入力定義も長期的な進化に必要な基盤を補っている。&lt;/p&gt;
&lt;p&gt;一般的なデスクトップユーザーにとって、最も実用的な変化はハードウェアサポート、グラフィックスドライバ、省電力、ファイルシステム修復にあるかもしれない。
サーバーや開発者にとっては、XFS のエラー報告、自己修復、&lt;code&gt;io_uring&lt;/code&gt; BPF フィルタリング、swap 最適化、新プラットフォーム対応がより注目に値する。&lt;/p&gt;
&lt;p&gt;参考ソース：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.kernel.org/pub/linux/kernel/v7.x/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;kernel.org：Linux kernel v7.x ディレクトリ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.spinics.net/lists/kernel/msg6151145.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Linux 7.0 リリースメールのミラー&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.phoronix.com/news/Linux-7.0-Released&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Phoronix：Linux 7.0 Released With New Hardware Support, Optimizations &amp;amp; Self-Healing XFS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.omgubuntu.co.uk/2026/04/linux-7-0-kernel-features&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;OMG! Ubuntu：Linux 7.0 kernel brings faster swap &amp;amp; Rock Band 4 controller support&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        
    </channel>
</rss>
