【OK】UBUNTU看不到盘符
【OK】UBUNTU看不到盘符
第一步:先确认你的 Btrfs 分区关键信息
1. 查看分区的 UUID 和标签
2. 查看 Btrfs 分区的子卷情况
️ 第二步:给 Btrfs 分区打标签 + 创建默认子卷
1. 给分区设置标签(和之前的BATOCERA同名)
2. 创建一个默认子卷(解决udisks2不知道挂哪里的问题)
第三步:配置「开机自动挂载 + 文件管理器侧边栏显示」
1. 创建固定挂载点
2. 获取分区的 UUID(从blkid命令的输出里复制)
3. 编辑/etc/fstab添加挂载配置
4. 测试挂载是否成功
补充:为什么之前的 FAT32 能显示,现在的 Btrfs 不行?
❌ 常见坑排查
===================替换成sdc2========================================
sudo blkid /dev/sdc2
/dev/sdc2: LABEL="BATOCERA" UUID="aa2a5b44-f750-4a75-98c4-1a2f7e4d3fa8" UUID_SUB="8e3020f2-53d0-4a90-b789-2be255c0653f" BLOCK_SIZE="4096" TYPE="btrfs" PARTUUID="c3072e18-02"
我懂了!问题的核心是 Btrfs 分区在 Ubuntu 里的自动挂载与显示逻辑和 FAT32/ext4 不一样,lsblk能看到说明分区本身没问题,是udisks2(负责自动挂载的服务)和文件管理器对 Btrfs 的识别需要额外配置。下面我按「先排查→再修复」的顺序给你一套完整方案:
第一步:先确认你的 Btrfs 分区关键信息
先执行两个命令,搞清楚问题出在哪:
1. 查看分区的 UUID 和标签
bash
运行
sudo blkid /dev/sdc2
你会看到类似这样的输出:
plaintext
/dev/sdc2: UUID="xxxx-xxxx-xxxx-xxxx" UUID_SUB="xxxx-xxxx" LABEL="" TYPE="btrfs" PARTUUID="xxxx-xxxx"
重点看两个字段:
TYPE="btrfs":确认文件系统是 Btrfs(没问题)
LABEL="":如果这里是空的,就是问题之一!udisks2识别不到标签,就不会在文件管理器里显示名字。
2. 查看 Btrfs 分区的子卷情况
Btrfs 是「子卷式」文件系统,udisks2挂载时需要知道「挂载哪个子卷」,如果没有默认子卷,它会直接放弃自动挂载:
bash
运行
sudo btrfs subvolume list /dev/sdc2
如果输出是空的,说明你格式化后没有创建任何子卷,udisks2不知道挂哪里,就不会显示。
️ 第二步:给 Btrfs 分区打标签 + 创建默认子卷
这两步是让udisks2能识别你的分区的关键:
1. 给分区设置标签(和之前的BATOCERA同名)
bash
运行
sudo btrfs filesystem label /dev/sdc2BATOCERA
执行后再用sudo blkid /dev/sdc2看,LABEL字段会变成BATOCERA,文件管理器就能识别到名字了。
2. 创建一个默认子卷(解决udisks2不知道挂哪里的问题)
先临时挂载分区,创建一个名为@的默认子卷(这是 Btrfs 常用的默认子卷名,udisks2能自动识别):
bash
运行
# 1. 创建临时挂载点 sudo mkdir /tmp/btrfs-tmp # 2. 临时挂载分区 sudo mount /dev/sdc2/tmp/btrfs-tmp # 3. 创建子卷 sudo btrfs subvolume create /tmp/btrfs-tmp/@ # 4. 把这个子卷设为默认(让 udisks2 知道要挂它) sudo btrfs subvolume set-default $(sudo btrfs subvolume list /tmp/btrfs-tmp | grep '@' | awk '{print $2}') /tmp/btrfs-tmp # 5. 卸载临时挂载点 sudo umount /tmp/btrfs-tmp
执行完再用sudo btrfs subvolume list /dev/sdc2看,就能看到刚才创建的@子卷了。
第三步:配置「开机自动挂载 + 文件管理器侧边栏显示」
前面两步解决了udisks2识别的问题,但要让它永久显示在文件管理器里,必须配置/etc/fstab,关键是加上x-gvfs-show选项(这是让 Nautilus 显示在侧边栏的核心开关)。
1. 创建固定挂载点
文件管理器只会显示/media或/mnt下的挂载点,所以我们把分区挂到/media/BATOCERA:
bash
运行
sudo mkdir /media/BATOCERA
2. 获取分区的 UUID(从blkid命令的输出里复制)
比如你的 UUID 是12345678-1234-5678-1234-567812345678,先记下来。
3. 编辑/etc/fstab添加挂载配置
bash
运行
sudo nano /etc/fstab
在文件末尾添加一行(把你的UUID替换成你自己的):
bash
运行
UUID=你的UUID /media/BATOCERA btrfs defaults,x-gvfs-show 0 0
defaults:默认挂载选项
x-gvfs-show:关键! 这个选项会让 Nautilus 在侧边栏显示这个挂载点
0 0:Btrfs 不需要 fsck 检查,所以设为 0
按Ctrl+O保存,Ctrl+X退出。
4. 测试挂载是否成功
bash
运行
sudo mount -a
如果没有报错,说明配置正确!现在刷新文件管理器,侧边栏就会出现BATOCERA分区了。
补充:为什么之前的 FAT32 能显示,现在的 Btrfs 不行?
FAT32/NTFS 是通用格式,udisks2默认会自动挂载并显示;
Btrfs 是 Linux 原生文件系统,udisks2对它的自动挂载支持需要「标签 + 默认子卷 + 正确的挂载点配置」三个条件,少一个就不会显示。
❌ 常见坑排查
挂载点不在/media或/mnt里:如果挂在~/或其他目录,Nautilus 不会显示。
没加x-gvfs-show选项:这是文件管理器侧边栏显示的核心开关,漏加就不会显示。
Ubuntu 版本太旧:20.04 及以下版本的udisks2对 Btrfs 支持很差,建议升级到 22.04 以上。
重启一下udisks2服务:如果配置完还是不显示,执行sudo systemctl restart udisks2,再刷新文件管理器。
你可以先按第一步执行blkid和btrfs subvolume list,把结果告诉我,我帮你看看具体是哪个环节出了问题~
=============================================================
$ sudo blkid /dev/sdc2
/dev/sdc2: LABEL="BATOCERA" UUID="aa2a5b44-f750-4a75-98c4-1a2f7e4d3fa8" UUID_SUB="8e3020f2-53d0-4a90-b789-2be255c0653f" BLOCK_SIZE="4096" TYPE="btrfs" PARTUUID="c3072e18-02"
=======================================
sudo btrfs filesystem label /dev/sdc2 BATOCERA
===========================
# 1. 创建临时挂载点 sudo mkdir /tmp/btrfs-tmp # 2. 临时挂载分区 sudo mount /dev/sdc2 /tmp/btrfs-tmp # 3. 创建子卷 sudo btrfs subvolume create /tmp/btrfs-tmp/@ # 4. 把这个子卷设为默认(让 udisks2 知道要挂它) sudo btrfs subvolume set-default $(sudo btrfs subvolume list /tmp/btrfs-tmp | grep '@' | awk '{print $2}') /tmp/btrfs-tmp # 5. 卸载临时挂载点 sudo umount /tmp/btrfs-tmp
========================================
sudo blkid /dev/sdc2
=======================================
[sudo] ubunto 的密码:
/dev/sdc2: LABEL="BATOCERA" UUID="aa2a5b44-f750-4a75-98c4-1a2f7e4d3fa8" UUID_SUB="8e3020f2-53d0-4a90-b789-2be255c0653f" BLOCK_SIZE="4096" TYPE="btrfs" PARTUUID="c3072e18-02"
UUID=aa2a5b44-f750-4a75-98c4-1a2f7e4d3fa8 /media/BATOCERA btrfs defaults,x-gvfs-show 0 0
按Ctrl+O保存,回车
Ctrl+X退出。
==================================================================================
$ sudo blkid /dev/sdc2
/dev/sdc2: LABEL="BATOCERA" UUID="aa2a5b44-f750-4a75-98c4-1a2f7e4d3fa8" UUID_SUB="8e3020f2-53d0-4a90-b789-2be255c0653f" BLOCK_SIZE="4096" TYPE="btrfs" PARTUUID="c3072e18-02"
=======================================
sudo btrfs filesystem label /dev/sdc2 BATOCERA
===========================
# 1. 创建临时挂载点 sudo mkdir /tmp/btrfs-tmp # 2. 临时挂载分区 sudo mount /dev/sdc2 /tmp/btrfs-tmp # 3. 创建子卷 sudo btrfs subvolume create /tmp/btrfs-tmp/@ # 4. 把这个子卷设为默认(让 udisks2 知道要挂它) sudo btrfs subvolume set-default $(sudo btrfs subvolume list /tmp/btrfs-tmp | grep '@' | awk '{print $2}') /tmp/btrfs-tmp # 5. 卸载临时挂载点 sudo umount /tmp/btrfs-tmp
==========================================================
=======================================
========================================
sudo blkid /dev/sdc2
=======================================
[sudo] ubunto 的密码:
/dev/sdc2: LABEL="BATOCERA" UUID="aa2a5b44-f750-4a75-98c4-1a2f7e4d3fa8" UUID_SUB="8e3020f2-53d0-4a90-b789-2be255c0653f" BLOCK_SIZE="4096" TYPE="btrfs" PARTUUID="c3072e18-02"
UUID=aa2a5b44-f750-4a75-98c4-1a2f7e4d3fa8 /media/BATOCERA btrfs defaults,x-gvfs-show 0 0
按Ctrl+O保存,回车
Ctrl+X退出。
==================================================================================
sudo btrfs filesystem label /dev/sdc2 BATOCERA-USB
========================================
===========================================================================================