aka*_*IOT 13 filesystem btrfs 12.04
对 btrfs 很感兴趣,我决定在 VM 中玩弄它。只要我记得把它/boot放在一个单独的分区上,安装就很好用,而且一切似乎都很好。
我想做的是为具有不同设置的批量数据创建一个单独的子卷,而不是像@和@home。btrfs subvolume create data会为我做到这一点,但我很好奇为什么它一直命名它@/data(或在我尝试/data或类似的事情时@data)。有没有一种特殊的方法来创建子卷@,@home所以我的数据子卷会显示为@data?(以及:命名方案之间的确切区别是什么?)
附加信息:
/dev/sda以及/dev/sdb/dev/sda并且/dev/sdb是主机操作系统未使用的磁盘上的分区aka*_*IOT 16
唉,看来我发布的有点太早了,在 IRC 上全能的 Zosma 的帮助下,我们发现了它应该如何工作。
子卷@和@home是BTRFS根的孩子,所以/实际上不是文件系统的根目录。所述BTRFS根的UUID在被提供/etc/fstab两次,用于提供所述底座/和/home。挂载文件系统的实际根目录显示安装程序创建的子卷:
root@box:~# mkdir /mnt/btrfs
root@box:~# mount UUID=f8963df3-1320-4bc0-a125-62be185b029e /mnt/btrfs
root@box:~# ls /mnt/btrfs
@ @home
Run Code Online (Sandbox Code Playgroud)
所以这就是他们去的地方!以 ubuntu 安装程序所做的确切方式创建一个新的子卷现在很容易:
root@box:~# btrfs subvolume create /mnt/btrfs/@data
Create subvolume '/mnt/btrfs/@data'
Run Code Online (Sandbox Code Playgroud)
现在,由于我们在 btrfs 根目录中创建了一个子卷,而不是在用于安装的根文件系统中,/data/因此不会单独显示。幸运的是,通过检查/etc/fstab和添加另一个安装来复制安装程序使用的技巧是微不足道的/data:
UUID=f8963df3-1320-4bc0-a125-62be185b029e /data btrfs defaults,subvol=@data 0 2
Run Code Online (Sandbox Code Playgroud)
最后一步是创建挂载点:mkdir /data. 重新启动后,我们将从/data单独的 btrfs 子卷挂载一个目录。
… 利润!
只要我记得将 /boot 放在单独的分区上,安装就很好用
您不需要有单独的 /boot。GRUB2 可以从 btrfs 读取和引导 Linux。
我想做的是为批量数据创建一个单独的子卷,其设置与 @ 和 @home 之类的设置不同。
如果您正在谈论使用不同的挂载选项挂载子卷,请注意目前(2013 年 11 月)它们不受支持:根据 Btrfs 常见问题解答,“我可以使用不同的挂载选项挂载子卷吗? ”,目前只有 btrfs 特定的选项不受支持或未实施。但是,开发人员计划在未来实施它。
btrfs subvolume create data 会为我做到这一点,但我很好奇为什么它一直将它命名为 @/data (或在我尝试 /data 或 @data 时使用类似的东西)
默认情况下,Ubuntu的安装无处不在创建子卷@,并@home在文件系统中,并且你的Ubuntu根实际上是在子卷@。
有没有一种特殊的方法来创建像@ 和@home 这样的子卷,这样我的数据子卷就会显示为@data?(以及:命名方案之间的确切区别是什么?)
@和@home是安装程序选择的任意名称,在/etc/fstab. 事实上,我通常将它们重命名为更具体的名称,这样我就可以在同一个 btrfs 上拥有许多 Ubiquity 安装的发行版,只要我记得更新它们的 fstab。
Funtoo.org-BTRFS 上的更多子卷解释。