我可以使用btrfs在同一分区上有两个发行版吗?

我成功地使用了btrfs并幸运地分离了家庭和系统分区。

使用Ubuntu 13.10并想要测试14.04,如何使用btrfs文件系统执行此操作?

系统具有EFI分区,但没有额外的启动分区。 /boot在系统分区内( /@/boot )。

是的你可以。 这就是我现在使用的。 另一个很酷的事情是,在安装了许多类似的操作系统(如Ubuntu和Linux Mint)之后,你可以使用分区来节省大量的硬盘空间。

诀窍是将默认子卷: @@home重命名为分发安装的唯一内容,例如@ – > @mint@trusty@home@homemint@hometrusty

这可以在第一系统安装之后的任何时刻,在第二系统的安装之前完成。 最安全的错误方法是制作子卷的快照,例如:

  1. 在某个地方挂载系统btrfs分区的根子卷(假设是/ dev / sda3),例如到/ mnt: sudo mount btrfs /dev/sda3 /mnt
  2. 可选:列出已存在的子卷 – 只需检查您是否在以下步骤中创建名称冲突: sudo btrfs subvolume list /mnt
  3. 克隆主要的@ subvolume: sudo btrfs subvolume snapshot /mnt/@ /mnt/@trusty
  4. 克隆回家。 我强烈建议不要在不同系统之间共享整个家庭子卷。 (对于共享文档创建另一个子卷,或者甚至更好的单独分区,将它与〜/ Documents,〜/ Desktop等链接并共享): sudo btrfs subvolume snapshot /mnt/@home /mnt/@trustyhome
  5. 在新根@trusty上编辑/mnt/@trusty/etc/fstab trusty /mnt/@trusty/etc/fstab以反映@home – > @trustyhome子卷(和@ – > @trusty的变化,但该步骤不是绝对必要的,因为到了系统的时候读取@ trusty / etc / fstab它必须已经为root假定了正确的子卷。
  6. 编辑/boot/grub/grub.cfg :修改调用当前内核的所有行(它们如下所示: linux /vmlinuz-3.16.0-50-generic.efi.signed root=UUID=9e571eab-4c88-4913-baa3-8d41d94f73d5 ro recovery nomodeset rootflags=subvol=@ )并将linux /vmlinuz-3.16.0-50-generic.efi.signed root=UUID=9e571eab-4c88-4913-baa3-8d41d94f73d5 ro recovery nomodeset rootflags=subvol=@更改为rootflags=subvol=@ rootflags=subvol=@trusty ,以便内核知道要引导的内容。 相反,奇迹般地,当您执行update-grub时,将保留此设置。
  7. 重新启动并执行sudo mount并validation是否使用了正确的新子卷而不是@@home < - 这一步非常重要,否则您丢失数据

一旦你重命名子卷,并确保系统启动,并确保没有@@home – 安装下一个操作系统。 在分区对话框中,使用自定义分区并将系统安装在与第一个操作系统相同的分区上。 请确保,您告诉安装程序不要格式化该分区!

安装后设置链式加载grub,所以你可以从一个安装中选择grub作为另一个的条目,反之亦然(如何?看看链式加载单独的Ubuntu /启动分区的推荐方法是什么 )。

通过拥有一个单独的/boot分区,我不必担心在自动内核升级期间其他Linux的一个Linux混乱grub。