我有一个由 4 个磁盘组成的现有 btrfs raid1 卷。它已经包含几个子卷,我希望将 Ubuntu 安装到其中一个子卷。我已完成以下操作:
mount -o subvolid=0 /dev/sda1 /btrfsroot
btrfs subvol create rootsfs /btrfsroot
btrfs subvol set-default 376 /btrfsroot
mount /dev/sda1 /rootfs (to ensure I've set the correct id)
但是安装程序在分区程序之后崩溃了(说它无法从中删除所需的文件/target/
)。我已将其设置为使用分区而不/dev/sda1
进行格式化。btrfs
/
我做了大量研究,但乍一看很难说出将 Ubuntu 安装到现有btrfs
子卷的最佳做法是什么。我也尝试过:
/dev/sd[a-d]
根本不进行分区并将它们添加到btrfs
卷中。当我以这种方式安装时,它可以工作(我必须手动安装/dev/sda
到/target/
),但随后我grub
在重新启动时卡在调试 shell中。- 为每个磁盘划分 100 MB 空间(作为
/dev/sda1
)并创建一个mdadm
阵列以用作/boot/
(btrfs
分区为/dev/s[a-d]2
)。分区后安装程序再次崩溃,提示无法删除所需文件,但/target/
实际上什么都没有。
我已阅读信息在 Ubuntu 维基文章中我猜我遇到了他们提到的 set-default 破坏 Ubuntu 布局的问题。虽然我的理解是这只是安装后的问题 - 我甚至无法做到这一点。
最佳做法是什么?我想要安装到单独的子卷上的原因是为了使我的 Ubuntu 安装与驱动器上的其他所有内容区分开来。在不冒数据丢失风险的情况下,将安装到根子卷中是否安全?
答案1
免责声明
我从未使用过 btrfs RAID。该解决方案仅在单卷 btrfs 根分区上进行了测试
确保根候选上没有
/@
和子卷。/@home
启动 Ubuntu 安装程序,然后选择其他东西当它询问您有关磁盘分区的问题时。
将您的 btrfs 分区标记为根文件系统,但是不要让安装程序重新格式化它。
按照您的喜好排列所有其他分区。我总是选择在系统上使用外部
/boot
分区gpt
,这样以后就可以迁移到更高级的分区(例如bcache
)或其他分区。(在 上,gpt
您可以拥有任意数量的分区,因此我认为使用专用分区没有什么真正的缺点/boot
。)完成安装。
安装程序将为您创建@
和@home
子卷。稍后您可以将它们重命名为其他名称 - 只需确保您也在/etc/fstab
和上更新新名称即可/boot/grub/grub.cfg
。
在 Ubuntu 14.04、Mint 16、Mint 15、Ubuntu 13.10 和 Ubuntu 13.04 上进行了测试。