对于像 ext4 这样的文件系统,如果我想尝试新的 Linux 发行版,我必须首先缩小现有分区,然后创建一个锁定到特定大小的新分区,以便我可以安装发行版。这有一些缺点:
BTRFS 子卷可以解决这个问题吗?我真的可以将整个磁盘作为卷/分区,然后我的引导分区、交换分区、根分区和主分区可以作为子卷存在并占用它们占用的空间吗?我可以随时创建一个初始化为零大小的新子卷吗?真的是这样吗?
Fré*_*yer 10
我已经部分地做到了。
从 OpenSUSE 安装(btrfs
默认使用)中,我有:
btrfs subvol create /debian
),debootstrap
,deboostrap --arch=amd64 stable /debian http://deb.debian.org/debian/
,chroot /debian
,安装btrfs-tools
,然后是内核,并设置密码!/boot/grub2/grub.cfg
,添加一项。通常,我会复制一个 OpenSUSE 条目,更改名称 ( Debian
),并在行上linux
添加rootflags=subvol=@/debian
. 我还使用 Debian 内核和 initrd 文件(linux=
和initrd=
行)。注意,GRUB搜索默认根FS,那么这两个文件都在/debian/boot/
)
重新启动...我有一个 Debian 启动条目,可以从 debian 子卷启动 Debian。默认情况下它不会挂载任何内容,但mount -o subvol=@/home /dev/sda2 /home
例如可以挂载 OpenSUSE/home
子卷并使其在 Debian 上也可用。当然,编辑/etc/fstab
会使事情永久化。(并且使用 UUID 更好)。
此安装并不完全令人满意。在 Suse 上更新内核将删除 GRUB Debian 条目。并且在 Debian 上更新内核不会更新 GRUB 配置。(GRUB os-prober 仅扫描分区,而不扫描子卷)。
但是,我的设置证明我们可以在同一分区上安装多个 Linux btrfs
。
注意 OpenSUSE 命名根子卷@
。我们可以用 来查看它btrfs list /
。我不知道其他发行版是否使用其他约定。第一行btrfs subvol show /debian
给出了要使用的名称rootlags=subvol=
是的你可以。看看每个大牌发行版:
\ndebbootstrap
通过使用现有安装(专为从实时系统安装而设计),然后手动配置引导加载程序,可以相对轻松地以这种方式安装 Debian 。debbootstrap
,但 Ubuntu 开发人员完全不支持 AIUI 这样的安装,因此它可能无法可靠地工作。然而,这种方法存在一些实际问题:
\n一般来说,最好使用LVM代替平面分区,并为每个发行版\xe2\x80\x99s 根文件系统创建一个逻辑卷(加上一个用于/home
交换空间,一个用于交换空间)。您仍然需要为每个发行版设置一些基准空间量,但您可以使用 LVM 轻松地动态调整内容,前提是您拥有可以在线调整大小(并且可以缩小)的文件系统。请注意,在此设置中,您仍然需要 \xe2\x80\x98regular\xe2\x80\x99 引导分区(和 EFI 系统分区)。与您建议的 BTRFS 设置不同,几乎所有主要发行版都很好地支持这一点,并且如果您\xe2\x80\x99 小心初始设置,它基本上只需在初始安装之外无需任何手动操作即可工作。