在关于子卷的 btrfs wiki 页面上,它说默认情况下,在创建 btrfs(即make.btrfs <devicenode>)时,会创建一个子卷 ID=5 的顶级子卷。
新创建的文件系统也是一个子卷,称为顶级,内部有一个 id 5。该子卷不能被删除或被另一个子卷替换。
我尝试使用 来显示这个子卷btrfs subvolume list -a /btrfs.mountpoint,但它没有显示,为什么?
更新 在尝试(自助)时,我试图找到有关此顶级子卷 ID=5 的更多信息,该子卷是(如上所述)在上面创建的。因此,我尝试挂载到真正的 btrfs 根(我应该是子卷 id=0)并查看其内容,如下所示:
# mount a specific subvolume of a btrfs
$> mount -t btrfs -o subvolid=0 /dev/sda /mnt
# show the output of the "."-entry of the subvolume-root (show inodevalue)
$> ls /mnt -lai | head -n 2
total 112656
256 drwxr-xr-x 1 root root 432 May 25 09:08 .
Run Code Online (Sandbox Code Playgroud)
再次卸载后我做了同样的事情(这次使用子卷 ID=5)
# mount a specific subvolume of a btrfs
$> mount -t btrfs -o subvolid=5 /dev/sda /mnt
# show the output of the "."-entry of the subvolume-root (show inodevalue)
$> ls /mnt -lai | head -n 2
total 112656
256 drwxr-xr-x 1 root root 432 May 25 09:08 .
Run Code Online (Sandbox Code Playgroud)
它产生与根子卷和 ID=5 相同的输出(就像子卷 ID=5 一样)。也许这说明了为什么它不通过命令显示btrfs subvolume list -a?
无论如何,因为即使是根卷也被分配了一个子卷(至少与挂载一起使用),所以在 处没有显示任何内容似乎很奇怪btrfs subvolume list -a。
(更新修正了粘贴错误的btrfs subvolume命令的错误)
更新2
btrfs和 的手册页btrfs-progs以及引用的 wiki 页面(参见问题开头)在阐述如何创建文件系统卷根、子卷、子卷......btrfs 方面并不是非常精确。
根据邮件列表上的一些解释,这是:
[a]使用时可以从挂载的卷中访问所有子卷
-o subvolid=0.(请注意,0不是根卷的真实ID,它只是挂载它的快捷方式。)[强调](来源https://www.mail -archive.com/linux-btrfs@vger.kernel.org/msg17141.html)
这让我相信,尽管第一次引用,子卷 id 5 是根(至少在我的情况下)。
无论如何,几年前 btrfs 邮件列表显示了一种情况,即 btrfs subvolume list 甚至没有正确报告所有普通快照,这让我相信所有不显示子卷的问题也有可能是一个错误。
更重要的是,我希望有人能在回答这个问题时对此进行一些阐述。
| 归档时间: |
|
| 查看次数: |
5015 次 |
| 最近记录: |