<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Kernel Panic on mimoexのブログ</title>
    <link>https://www.mimoex.net/tags/kernel-panic/</link>
    <description>Recent content in Kernel Panic on mimoexのブログ</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>ja</language>
    <lastBuildDate>Wed, 05 Aug 2026 19:39:00 +0900</lastBuildDate><atom:link href="https://www.mimoex.net/tags/kernel-panic/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>macOS 26でVeraCrypt使用後にドライブを取り外せず、スリープ復帰時にカーネルパニックする問題</title>
      <link>https://www.mimoex.net/260805-macos-26-veracrypt-unmount-kernel-panic/</link>
      <pubDate>Wed, 05 Aug 2026 19:39:00 +0900</pubDate>
      
      <guid>https://www.mimoex.net/260805-macos-26-veracrypt-unmount-kernel-panic/</guid>
      <description>macOS 26とVeraCrypt 1.26.29 FUSE-T版の環境で、アンマウント後もプロセスが外付けSSDを保持し、スリープ復帰時にIOMediaBSDClientのカーネルパニックが発生した問題と回避策をまとめた。</description>
      <content:encoded><![CDATA[<p>macOS 26へアップグレードしてから、VeraCryptと外付けドライブの組み合わせで深刻な問題が発生するようになった。</p>
<p>私の環境は以下のとおり。</p>
<ul>
<li>MacBook Air M4</li>
<li>macOS 26.5.2</li>
<li>VeraCrypt 1.26.29 FUSE-T版</li>
<li>FUSE-T 1.2.7</li>
<li>USB接続の外付けSSD</li>
</ul>
<h2 id="発生する症状">発生する症状</h2>
<p>VeraCryptで暗号化ドライブをマウントして使用した後、VeraCryptの画面からアンマウントする。</p>
<p>Finder上からボリュームは消え、VeraCrypt上でもアンマウント済みと表示される。しかし、外付けSSDそのものをmacOSから取り外そうとすると失敗する。</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">Volume failed to eject
</span></span></code></pre></div><p>調べたところ、VeraCryptのアンマウント後も、以下のプロセスが残り続けていた。</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">VeraCrypt --core-service
</span></span><span class="line"><span class="cl">go-nfsv4 --backend smb /private/tmp/.veracrypt_aux_mnt1
</span></span></code></pre></div><p>さらに<code>lsof</code>で確認すると、これらのプロセスが外付けSSDのrawデバイスを開いたままにしていた。</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">COMMAND     PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
</span></span><span class="line"><span class="cl">go-nfsv4- 36403 root    4u   CHR   1,20  0t65536  709 /dev/rdisk4
</span></span><span class="line"><span class="cl">VeraCrypt 36404 root    4u   CHR   1,20  0t65536  709 /dev/rdisk4
</span></span></code></pre></div><p>つまり、VeraCrypt上ではアンマウントが完了したように見えても、バックグラウンドのVeraCryptとFUSE-Tプロセスが物理ドライブを保持し続けている。</p>
<h2 id="そのままスリープするとカーネルパニックする">そのままスリープするとカーネルパニックする</h2>
<p>この状態のままMacを長時間スリープさせたところ、復帰後に次のカーネルパニックが発生した。</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">busy timeout[1], (60s): &#39;IOMediaBSDClient&#39; @IOService.cpp:5986
</span></span></code></pre></div><p>macOSがスリープ復帰時にUSBストレージの状態を切り替えようとしたものの、VeraCrypt関連プロセスがデバイスを保持していたため、<code>IOMediaBSDClient</code>の処理が60秒間完了せず、watchdogによってカーネルパニックが発生した可能性が高い。</p>
<p>VeraCrypt関連プロセスをすべて終了させると、<code>lsof</code>からrawデバイスの表示が消え、その直後に外付けSSDを正常に取り外せた。</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">Disk disk4 ejected
</span></span></code></pre></div><p>そのため、少なくとも私の環境では、アンマウント後に残留するVeraCryptおよびFUSE-Tプロセスが、ドライブを取り外せない直接的な原因になっている。</p>
<h2 id="githubでも同様の問題が報告されている">GitHubでも同様の問題が報告されている</h2>
<p>2026年8月5日現在、VeraCryptのGitHubには同様の問題がIssue 
  <a href="https://github.com/veracrypt/VeraCrypt/issues/1845" target="_blank" rel="nofollow noopener noreferrer">#1845</a>
として報告されている。</p>
<p>このIssueでも、アンマウント後に<code>VeraCrypt --core-service</code>と<code>go-nfsv4</code>が残り続けること、<code>SIGTERM</code>では終了しないこと、スリープ時に<code>IOMediaBSDClient</code>のbusy timeoutによるカーネルパニックが発生することが報告されている。</p>
<p>Issue #1845は現在もOpenで、現時点ではメンテナーからの返信やコメントは付いていない。</p>
<h2 id="現在行っている回避策">現在行っている回避策</h2>
<p>根本的な修正が行われるまでは、VeraCryptを使用した後にそのまま長時間スリープしない方がよい。</p>
<p>現在は、次のいずれかで対応している。</p>
<ol>
<li>VeraCrypt使用後にMacをシャットダウンまたは再起動する</li>
<li>残留したVeraCryptとFUSE-Tプロセスを終了させ、外付けドライブを正常にejectしてからスリープする</li>
</ol>
<h3 id="1-veracryptボリュームをすべてアンマウントする">1. VeraCryptボリュームをすべてアンマウントする</h3>
<p>まず、VeraCrypt上ですべてのボリュームをアンマウントする。</p>
<p>書き込み中のデータをできる限りストレージへ反映するため、念のため<code>sync</code>も実行する。</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-sh" data-lang="sh"><span class="line"><span class="cl">sync
</span></span></code></pre></div><h3 id="2-veracryptを終了する">2. VeraCryptを終了する</h3>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-sh" data-lang="sh"><span class="line"><span class="cl">osascript -e <span class="s1">&#39;tell application &#34;VeraCrypt&#34; to quit&#39;</span> 2&gt;/dev/null
</span></span><span class="line"><span class="cl">sleep <span class="m">5</span>
</span></span></code></pre></div><h3 id="3-残留プロセスを確認する">3. 残留プロセスを確認する</h3>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-sh" data-lang="sh"><span class="line"><span class="cl">ps -axo pid,ppid,user,state,etime,command <span class="p">|</span>
</span></span><span class="line"><span class="cl">  grep -Ei <span class="s1">&#39;[V]eraCrypt|[g]o-nfsv4&#39;</span>
</span></span></code></pre></div><p>プロセスが何も表示されなければ、そのまま外付けドライブをejectする。</p>
<p>残っている場合は、ほかのVeraCryptボリュームがマウントされていないことを確認してから、次のコマンドで終了させる。</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-sh" data-lang="sh"><span class="line"><span class="cl">sudo pkill -KILL -f <span class="se">\
</span></span></span><span class="line"><span class="cl"><span class="se"></span>  <span class="s1">&#39;/Applications/VeraCrypt.app/Contents/MacOS/VeraCrypt&#39;</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">sudo pkill -KILL -f <span class="se">\
</span></span></span><span class="line"><span class="cl"><span class="se"></span>  <span class="s1">&#39;go-nfsv4.*\.veracrypt_aux_mnt&#39;</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">sleep <span class="m">3</span>
</span></span></code></pre></div><p><code>SIGTERM</code>も試したが、私の環境では残留プロセスが終了しなかったため、最終的に<code>SIGKILL</code>を使用している。</p>
<h3 id="4-外付けドライブの識別子を確認する">4. 外付けドライブの識別子を確認する</h3>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-sh" data-lang="sh"><span class="line"><span class="cl">diskutil list external physical
</span></span></code></pre></div><p>例えば対象ドライブが<code>disk4</code>の場合、rawデバイスを保持しているプロセスがないことを確認する。</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-sh" data-lang="sh"><span class="line"><span class="cl">sudo lsof -nP /dev/disk4 /dev/rdisk4
</span></span></code></pre></div><p>何も表示されなければ、ドライブをejectする。</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-sh" data-lang="sh"><span class="line"><span class="cl">diskutil eject disk4
</span></span></code></pre></div><p>次のように表示されれば、正常に取り外されている。</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">Disk disk4 ejected
</span></span></code></pre></div><p>この状態になってからUSBケーブルを抜くか、Macをスリープさせる。</p>
<h2 id="注意点">注意点</h2>
<p><code>disk4</code>という番号は固定ではない。接続状況や再起動によって<code>disk5</code>や<code>disk6</code>などに変わるため、毎回<code>diskutil list external physical</code>で確認する必要がある。</p>
<p>また、上記の<code>pkill</code>はVeraCryptのプロセスをまとめて強制終了する。ほかのVeraCryptボリュームがマウントされている状態で実行すると、データ破損につながる可能性がある。</p>
<p>必ず次の条件を満たしてから実行する。</p>
<ul>
<li>VeraCrypt上ですべてのボリュームをアンマウント済み</li>
<li>ファイルのコピーや書き込みが完了している</li>
<li>VeraCryptボリュームを使用しているアプリケーションを終了済み</li>
<li><code>sync</code>を実行済み</li>
</ul>
<p>プロセスが終了しない、rawデバイスの保持が消えない、または<code>diskutil eject</code>が失敗する場合は、そのままスリープやUSBケーブルの抜去を行わず、Macをシャットダウンした方が安全である。</p>
<h2 id="まとめ">まとめ</h2>
<p>macOS 26、VeraCrypt 1.26.29 FUSE-T版、FUSE-T 1.2.7の組み合わせでは、VeraCryptボリュームをアンマウントした後も、<code>VeraCrypt --core-service</code>と<code>go-nfsv4</code>が残留する場合がある。</p>
<p>残留プロセスは物理ドライブのrawデバイスを保持し続けるため、外付けドライブをejectできなくなる。</p>
<p>さらに、この状態で長時間スリープすると、復帰後に<code>IOMediaBSDClient</code>の60秒タイムアウトによるカーネルパニックが発生する可能性がある。</p>
<p>修正されるまでは、VeraCrypt使用後に次のいずれかを実施する必要がありそうだ。</p>
<ul>
<li>Macをシャットダウンまたは再起動する</li>
<li>残留プロセスを強制終了し、rawデバイスが解放されたことを確認してから外付けドライブをejectする</li>
</ul>
<p>少なくとも、VeraCrypt上でアンマウント済みと表示されたことだけを確認して、そのまま長時間スリープする運用は避けた方がよい。</p>
]]></content:encoded>
    </item>
    
  </channel>
</rss>
