<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>文件系统 on 随手记</title><link>https://www.bufio.cn/tags/%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F/</link><description>Recent content in 文件系统 on 随手记</description><generator>Hugo</generator><language>zh-cn</language><copyright>© 2026 &lt;a href="https://beian.miit.gov.cn/" target="_blank" rel="noopener"&gt;苏ICP备2023022553号-1&lt;/a&gt;</copyright><lastBuildDate>Fri, 12 Jun 2026 00:00:00 +0800</lastBuildDate><atom:link href="https://www.bufio.cn/tags/%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F/index.xml" rel="self" type="application/rss+xml"/><item><title>macOS 上用 dd 制作 Windows 安装 U 盘后提示缺少驱动的原因</title><link>https://www.bufio.cn/posts/macos-dd-windows-installer-missing-driver/</link><pubDate>Fri, 12 Jun 2026 00:00:00 +0800</pubDate><guid>https://www.bufio.cn/posts/macos-dd-windows-installer-missing-driver/</guid><description>&lt;p&gt;最近在 macOS 上制作 Windows 安装 U 盘时踩了一个坑：用 &lt;code&gt;dd&lt;/code&gt; 把 Windows ISO 原样写进 U 盘后，机器可以从 U 盘启动，也能进入 Windows 安装界面，但安装器很快提示缺少驱动，或者在选择安装位置之前就卡在“Install Driver to Show Hardware / 缺少介质驱动程序”这一类界面。&lt;/p&gt;
&lt;p&gt;这个现象和 TaurusXin 记录的那篇文章很像。他遇到的是用 Etcher 写 Windows 安装盘后，安装器提示缺少驱动；我这里换成 macOS 下的 &lt;code&gt;dd&lt;/code&gt;，结果仍然类似。表面看像是 NVMe、RST、VMD、USB 控制器驱动问题，实际更可能是启动 U 盘的制作方式不适合 Windows 安装 ISO。&lt;/p&gt;
&lt;p&gt;后面实测可行的方案是：在 macOS 上改用 WinDiskWriter 重新制作 U 盘，并勾选 &lt;code&gt;Patch Installer Requirements&lt;/code&gt; 和 &lt;code&gt;Install Legacy BIOS Boot Sector&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;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 示例：不要照抄执行，diskN 必须先确认清楚&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo diskutil unmountDisk /dev/diskN
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo dd &lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;Win11.iso &lt;span class="nv"&gt;of&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;/dev/rdiskN &lt;span class="nv"&gt;bs&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;4m &lt;span class="nv"&gt;status&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;progress
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sync
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;写完之后，U 盘看起来已经“烧录成功”：&lt;/p&gt;</description></item><item><title>USB 转 SATA / NVMe 桥接芯片在 Linux 下的兼容性对比</title><link>https://www.bufio.cn/posts/usb-sata-nvme-bridge-linux-compatibility/</link><pubDate>Fri, 22 May 2026 00:00:00 +0800</pubDate><guid>https://www.bufio.cn/posts/usb-sata-nvme-bridge-linux-compatibility/</guid><description>&lt;p&gt;很多 2.5 寸硬盘盒、M.2 SATA 硬盘盒、M.2 NVMe 硬盘盒看起来只是“USB 外置硬盘”，但真正决定 Linux 体验的，经常是里面那颗 USB 桥接芯片和它的固件。&lt;/p&gt;
&lt;p&gt;同一块 SSD，换一个桥接芯片，可能会出现完全不同的结果：一个盒子能跑 UASP、能 &lt;code&gt;fstrim&lt;/code&gt;、能读 SMART；另一个盒子只跑 &lt;code&gt;usb-storage&lt;/code&gt;，或者大文件写入时反复 USB reset。本文把常见的 ASMedia ASM1153E、JMicron JMS 系列、Realtek RTL 系列放在一起，对 Linux 下的兼容性做一个偏实用的对比。&lt;/p&gt;
&lt;p&gt;&lt;img src="https://www.bufio.cn/images/usb-storage-bridge-linux-matrix.svg" alt="USB 存储桥接芯片 Linux 兼容性矩阵"&gt;&lt;/p&gt;
&lt;h2 id="先给结论"&gt;先给结论&lt;/h2&gt;
&lt;p&gt;如果只是给 2.5 寸 SATA SSD/HDD 做 USB 外置盒，ASM1153E 和 JMS578 都很常见，也都支持 UASP。ASM1153E 的整体口碑偏稳，但 TRIM/SMART 仍然受固件影响；JMS578 功能完整、价格低、出货量大，但不同固件之间差异明显。&lt;/p&gt;
&lt;p&gt;如果是 NVMe 转 USB，JMS583 和 RTL9210/RTL9210B 是常见选择。JMS583 是早期大量普及的 USB 3.1 Gen2 转 NVMe 桥，规格漂亮，但旧固件、散热和某些主机组合下更容易遇到掉盘或重置；RTL9210/RTL9210B 后来在很多硬盘盒里成为更常见的“稳妥选择”，但也不是免疫，仍然要看固件版本和具体硬盘。&lt;/p&gt;
&lt;p&gt;Linux 下不要只看商品页写的“支持 UASP / 支持 TRIM”。更可靠的判断顺序是：&lt;/p&gt;</description></item><item><title>USB-SATA 桥接芯片的 UAS 兼容性问题排查</title><link>https://www.bufio.cn/posts/usb-sata-uas-compatibility/</link><pubDate>Wed, 20 May 2026 09:30:04 +0800</pubDate><guid>https://www.bufio.cn/posts/usb-sata-uas-compatibility/</guid><description>&lt;p&gt;通过 USB 外接硬盘时，如果遇到磁盘看起来一直很忙，但实际吞吐很低，问题不一定出在文件系统或硬盘本体上。一次比较典型的场景是：USB-SATA 桥接芯片声称支持 UAS，但它的固件实现不稳定，Linux 自动启用 UAS 后反而触发命令超时、USB 设备重置，最终表现成系统层面的 I/O 卡顿。&lt;/p&gt;
&lt;p&gt;这篇文章记录一次这类问题的现象、原因和处理方式。&lt;/p&gt;
&lt;h2 id="问题现象"&gt;问题现象&lt;/h2&gt;
&lt;p&gt;故障最直观的表现是：外接硬盘几乎不可用，但监控上又看不出正常的高吞吐。&lt;/p&gt;
&lt;p&gt;常见现象包括：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;iostat&lt;/code&gt; 中磁盘 &lt;code&gt;%util&lt;/code&gt; 长时间接近或等于 &lt;code&gt;100%&lt;/code&gt;；&lt;/li&gt;
&lt;li&gt;实际 &lt;code&gt;r/s&lt;/code&gt;、&lt;code&gt;w/s&lt;/code&gt;、&lt;code&gt;rkB/s&lt;/code&gt;、&lt;code&gt;wkB/s&lt;/code&gt; 并不高；&lt;/li&gt;
&lt;li&gt;&lt;code&gt;await&lt;/code&gt;、&lt;code&gt;svctm&lt;/code&gt; 或应用侧读写延迟异常升高；&lt;/li&gt;
&lt;li&gt;文件复制、解压、数据库读写、备份任务间歇性卡住；&lt;/li&gt;
&lt;li&gt;偶尔出现 &lt;code&gt;Input/output error&lt;/code&gt;；&lt;/li&gt;
&lt;li&gt;&lt;code&gt;dmesg&lt;/code&gt; 或 &lt;code&gt;journalctl -k&lt;/code&gt; 中反复出现 UAS abort、SCSI timeout、USB reset。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;可以先用下面这些命令观察：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;iostat -xz &lt;span class="m"&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;dmesg -T &lt;span class="p"&gt;|&lt;/span&gt; grep -Ei &lt;span class="s1"&gt;&amp;#39;uas|usb|reset|abort|I/O error|blk_update_request&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;journalctl -k -b &lt;span class="p"&gt;|&lt;/span&gt; grep -Ei &lt;span class="s1"&gt;&amp;#39;uas|usb|reset|abort|I/O error&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;比较典型的内核日志类似这样：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;uas_eh_abort_handler ...
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;scsi host... uas_eh_device_reset_handler
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;usb ... reset SuperSpeed USB device number ...
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;blk_update_request: I/O error, dev sdX, sector ...
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;如果这些日志和外接硬盘卡顿时间点高度重合，就要怀疑 USB 存储协议层的问题。&lt;/p&gt;</description></item><item><title>Linux 各个目录的作用：从根目录理解系统结构</title><link>https://www.bufio.cn/posts/linux-directory-structure-explained/</link><pubDate>Tue, 28 Apr 2026 17:53:07 +0800</pubDate><guid>https://www.bufio.cn/posts/linux-directory-structure-explained/</guid><description>&lt;p&gt;如果你刚开始接触 Linux，打开终端输入 &lt;code&gt;ls /&lt;/code&gt;，会看到一组看起来很固定的目录：&lt;code&gt;bin&lt;/code&gt;、&lt;code&gt;etc&lt;/code&gt;、&lt;code&gt;home&lt;/code&gt;、&lt;code&gt;usr&lt;/code&gt;、&lt;code&gt;var&lt;/code&gt;、&lt;code&gt;proc&lt;/code&gt;、&lt;code&gt;dev&lt;/code&gt; 等。它们不是随意命名的文件夹，而是 Linux 系统长期演化出来的一套目录分工。&lt;/p&gt;
&lt;p&gt;理解这些目录的作用，有助于你知道配置文件在哪里、日志在哪里、用户数据在哪里、程序通常安装在哪里，也能避免误删系统关键文件。本文会以 Linux 根目录 &lt;code&gt;/&lt;/code&gt; 为起点，逐一讲解常见目录的用途。&lt;/p&gt;
&lt;h2 id="1-根目录所有路径的起点"&gt;1. &lt;code&gt;/&lt;/code&gt;：根目录，所有路径的起点&lt;/h2&gt;
&lt;p&gt;Linux 的文件系统是一个单一的树状结构，最顶层就是 &lt;code&gt;/&lt;/code&gt;，也叫根目录。&lt;/p&gt;
&lt;p&gt;无论是系统文件、用户文件、磁盘分区、U 盘、网络挂载目录，最终都会挂载到这棵目录树的某个位置。和 Windows 常见的 &lt;code&gt;C:&lt;/code&gt;、&lt;code&gt;D:&lt;/code&gt; 盘符不同，Linux 更强调“从 &lt;code&gt;/&lt;/code&gt; 开始的一棵树”。&lt;/p&gt;
&lt;p&gt;例如：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;/etc/ssh/sshd_config
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;/home/alice/document.txt
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;/var/log/syslog
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;这些路径都从 &lt;code&gt;/&lt;/code&gt; 开始。&lt;/p&gt;
&lt;p&gt;日常使用时，不建议直接在 &lt;code&gt;/&lt;/code&gt; 下随意创建文件或目录。根目录通常只放系统约定好的一级目录。&lt;/p&gt;
&lt;h2 id="2-bin基础命令目录"&gt;2. &lt;code&gt;/bin&lt;/code&gt;：基础命令目录&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;/bin&lt;/code&gt; 用来存放系统启动和基本维护所需的常用命令。&lt;/p&gt;
&lt;p&gt;常见命令包括：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;ls
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;cp
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;mv
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;rm
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;cat
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;mkdir
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sh
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;这些命令是系统最基础的工具，即使系统处在较小的维护环境中，也通常需要它们。&lt;/p&gt;
&lt;p&gt;在一些现代 Linux 发行版中，&lt;code&gt;/bin&lt;/code&gt; 可能只是一个指向 &lt;code&gt;/usr/bin&lt;/code&gt; 的符号链接。这是因为许多发行版已经采用了 &lt;code&gt;/usr&lt;/code&gt; 合并的目录布局，但从使用者角度看，&lt;code&gt;/bin&lt;/code&gt; 仍然可以理解为“基础命令所在的位置”。&lt;/p&gt;
&lt;h2 id="3-sbin系统管理命令目录"&gt;3. &lt;code&gt;/sbin&lt;/code&gt;：系统管理命令目录&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;/sbin&lt;/code&gt; 中通常存放系统管理相关命令，很多命令主要供 root 用户或系统管理员使用。&lt;/p&gt;
&lt;p&gt;常见命令包括：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;ip
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;reboot
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;shutdown
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;fsck
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;mount
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;其中不少命令和系统启动、磁盘检查、网络配置、关机重启有关。&lt;/p&gt;</description></item></channel></rss>