为什么 Ubuntu 18.04 在安装过程中默认不再创建多个 BTRFS 子卷?

为什么 Ubuntu 18.04 在安装过程中默认不再创建多个 BTRFS 子卷?

在安装 Ubuntu 16.04 LTS Server 期间,我可以选择手动分区并使用 BTRFS 创建 / 分区。安装程序自动将其映射到创建一个名为 的子卷@/@home为其自身创建另一个名为 的子/home卷。对于 UB 18.04 来说,情况似乎不再如此,/如果我只创建一个分区,我只能为其自身获得一个 BTRFS 子卷。

是我做错了什么,还是事情只是因为某种原因而发生了变化?如果是后者,是否有关于为什么会改变的讨论?以前的设置是否有任何需要在新版本中解决的缺点?如果新的安装程序已经成熟,是否有任何计划恢复旧的行为?

我自己找不到这样的讨论,只有关于旧行为UB 16.04。

谢谢!

答案1

安装程序不知道 BTRFS 子卷,但有一个解决方法。

这是Ask Ubuntu 的答案。由于我只是偶尔使用 Ubuntu 而从未使用过 BTRFS,所以最好验证一下我的答案。

 - Do the server setup as usual, at the *Finish installation* step, select **Go Back** and **Execute a shell**.
 - List all your target file systems:

        mount | grep target

        /dev/dm-0 on /target type btrfs (rw,noatime,space_cache,subvolid=257,subvol=/@)
        /dev/dm-0 on /target/home type btrfs (rw,noatime,space_cache,subvolid=258,subvol=/@home)
        proc on /target/proc type proc (rw,nosuid,nodev,noexec,relatime)
        devtmpfs on /target/dev type devtmpfs (rw,nosuid,relatime,size=475608k,nr_inodes=118902,mode=755)

 - Take a note of the BTRFS device, in this example `/dev/dm-0`.
 - Now un-mount all of your mounted file systems.

        umount /target/dev
        umount /target/proc
        umount /target/boot/efi
        umount /target/home
        umount /target/

 - Mount your **flat** btrfs filesystem :

        cd /tmp
        mkdir work
        mount /dev/dm-0 work
        cd work

 - Verify the mount is correct (should show `@` and `@home`):

        ls 

        @ @home

 - Create your additional subvolumes (`@tmp`, `@var`, `@var-log`)

        btrfs subvolume create @tmp
        btrfs subvolume create @var
        btrfs subvolume create @var-log

 - Move the data

        mv @/var/log/* @var-log/
        mv @/var/* @var/

        # Remove data from tmp
        rm @/tmp/* @/tmp/.*

        # For 18.04, remove the swapfile since it won't work on btrfs
        rm @/swapfile

 - Add the new subvolumes to fstab, the device part may be different than the previous mount command, copy the device part from the already existing mount points.

        ...
        /dev/mapper/root-root /               btrfs   noatime,subvol=@ 0       1
        /dev/mapper/root-root /home           btrfs   noatime,subvol=@home 0       2
        /dev/mapper/root-root /var            btrfs   noatime,subvol=@var 0       2
        /dev/mapper/root-root /var/log        btrfs   noatime,subvol=@var-log 0       2


 - Unmount

        cd /tmp
        umount work
        sync


 - `exit`, then **Finish the installation**

 - Install and configure [snapper](http://snapper.io), a great tool for automatizing snapshots.

答案2

我的答案的一部分来自用户邮件列表

这取决于您使用的安装程序。如果您使用默认的 subiquity 安装程序,您将获得当前设置。如果您使用不再默认的 di 安装程序,您将获得以前的设置。

我仍然缺少一些背景讨论,如果将来也会将多个不同的子卷添加到新的安装程序中,或者是否不再推荐这样的设置。

相关内容