我安装了 2 个驱动器作为 RAID1 btrfs 阵列(btrfs v3.12,Ubuntu 14.04)。一切工作正常,除了 nautilus 和其他基于 GUI 的应用程序看到两个磁盘,都标记为“Raid1”。一个已安装(工作 btrfs 磁盘),另一个已卸载。
有谁知道为什么这个“幽灵”卷存在或如何摆脱它?
编辑 - 添加其他详细信息:
“sudo btrfs filesystem show”的结果:
$ sudo btrfs filesystem show
Label: Raid1 uuid: 3d12bc7b-61b1-4dea-b78b-ef9a44a6b698
Total devices 2 FS bytes used 2.39TiB
devid 1 size 3.64TiB used 2.43TiB path /dev/sdg1
devid 2 size 3.64TiB used 2.43TiB path /dev/sdh1
Btrfs v3.12
我的文件系统表:
UUID=3d12bc7b-61b1-4dea-b78b-ef9a44a6b698 /media/btr0 btrfs defaults,noauto 0 0
fstab 似乎所做的就是将设备安装为 /media/btr0。如果我注释掉 fstab 条目,它会自动安装为 /media/fred/Raid1。
答案1
我假设您指的是在两个块设备之上创建的 btrfs raid1 文件系统,这些块设备是用类似的东西创建的mkfs.btrfs -L Raid1 -d raid1 /dev/sd* /dev/sd*
在本地复制了此设置(基于 Funtoo 的说明)这里):
$ dd if=/dev/zero of=/tmp/btrfs-vol0.img bs=1G count=1
$ dd if=/dev/zero of=/tmp/btrfs-vol1.img bs=1G count=1
$ sudo losetup /dev/loop0 /tmp/btrfs-vol0.img
$ sudo losetup /dev/loop1 /tmp/btrfs-vol1.img
创建了fs
$ sudo mkfs.btrfs -L Raid1 -d raid1 /dev/loop0 /dev/loop1
Loop0 和 Loop1 都出现在鹦鹉螺和统一(此处使用 ubuntu 14.10)。这实际上与BTFS本身,而是由于方式尤迪卡和乌德夫工作。
有两种方法可以对 GUI 工具隐藏设备,如下所述。解决方案 1(首选)将仅隐藏 Ghost 设备,解决方案 2 将从 GUI 工具中隐藏这两个设备。
1. 创建 udev 规则以忽略设备
在 /etc/udev/rules.d 中创建一个文件(例如/etc/udev/rules.d/99-local-udisks-btrfs.rules
),并添加如下规则:
KERNEL==“sdh1”,ENV {UDISKS_IGNORE}:=“1”
然后运行sudo udevadm trigger
来触发规则。
有关更多信息,请参阅以下链接:https://wiki.archlinux.org/index.php/udev, https://askubuntu.com/questions/124094/how-to-hide-an-ntfs-partition-from-ubuntu
2.添加到/etc/fstab
例如
LABEL=rootfs / btrfs 默认值,subvol=@,autodefrag 0 0
LABEL=rootfs /home btrfs 默认值,subvol=@home,autodefrag 0 0
LABEL=Raid1 /tmp/raid1 btrfs 默认 0 0
使用文件系统 LABEL= 或 UUID=,您可以从中检索
$ sudo btrfs filesystem show [<path>|<uuid>|<device>|label]
标签: '突袭1' uuid:98780c23-5330-4357-8fb8-ef3307fdabc3
设备总数 使用 2 FS 字节 112.00KiB
devid 1 大小 使用 1.00GiB 231.75MiB 路径 /dev/loop0
devid 2 使用大小 1014.19MiB 211.75MiB 路径 /dev/loop1Btrfs v3.14.1
将更改保存到后,这两卷将立即从 unity 和 nautilus 中消失/etc/fstab。但是,如果您的挂载点位于 /media 下,则这将不起作用