想 Deepin 安装到 Btrfs 文件系统中,简单
Tofloor
poster avatar
comzhong
deepin
2017-07-22 06:33
Author
本帖最后由 comzhong 于 2017-7-27 11:44 编辑

       看见好几个人总想安装  Deepin 到 btrfs 文件系统,其实很简单(btrfs 不稳定,会丢失数据不推荐,搞坏了不负责)

      安装时进入 live 环境,或者你喜欢用 tty 也可以,总之,修改 /usr/share/deepin-installer/resources/default_settings.ini,关键之处就在下面三个位置,其实就是在变量中增加 “btrfs”,改成下面这样就可以了:


可用文件系统列表
  1. # Specify available filesystem types used by normal disk partition.
  2. # Name of filesystems are separated by ';'
  3. # Currently supported filesystems are:
  4. #  * btrfs,
  5. #  * ext4, ext3, ext2,
  6. #  * fat16, fat32,
  7. #  * hfs,
  8. #  * hfsplus,
  9. #  * jfs,
  10. #  * nilfs2,
  11. #  * reiser4,
  12. #  * reiserfs,
  13. #  * xfs,
  14. # Note:
  15. #  * EFI filesystem might be hidden in legacy mode.
  16. #  * `unused` means this partition is not used.
  17. # Exact fs names can be found in partman/fs.cpp::GetFsTypeByName()
  18. partition_supported_fs = "btrfs;ext4;ext3;ext2;efi;linux-swap;jfs;reiserfs;xfs"
Copy the Code


默认新文件系统
  1. # Default filesystem for new partition.
  2. partition_default_fs = "btrfs"
Copy the Code


boot分区文件系统列表
  1. # Filesystem list for boot partition.
  2. # If /boot is used, this rule applies to it;
  3. # Else this rule applies to /.
  4. partition_boot_partition_fs = "btrfs;ext4;ext3;ext2"
Copy the Code


不想根目录分区被格式化可以在这里去掉
  1. # If mount point of a partition is in this list, format that partition
  2. # compulsively.
  3. # Note that this list is a subset of |partition_mount_points|.
  4. partition_formatted_mount_points = "/boot;/tmp;/var"
Copy the Code


====================================
安装完成,先别点“安装完成”重启,先进tty,创建一个快照:
  1. sudo mount /dev/sda5 /mnt
  2. sudo btrfs subvolume snapshot /mnt /mnt/snap-deepin
Copy the Code


进系统后,复制一份快照
  1. sudo btrfs subvolume snapshot /snap-deepin /snap-backup
Copy the Code


进系统后,查看快照
  1. sudo btrfs subvolume list /
Copy the Code

进系统后,删除快照
  1. btrfs subvolume del /snap-deepin
Copy the Code

启动快照snap-deepin,在grub菜单中  linux 后面增加参数
  1. rootflags=subvol=snap-deepin
Copy the Code

设置为默认subvolume,这个在live环境用,256是subvolume id,root subvolume 的 id 是 5 ,可用 0 标识。在系统中用的话,不知道是不是重启生效,懒得试了。
  1. sudo mount /dev/sda5 /mnt
  2. sudo btrfs subvolume set-default 256 /mnt
Copy the Code
default subvolume有什么用呢?
利用snapshot和default subvolume,可以很方便的实现不同系统版本的切换,比如将系统安装在一个subvolume下面,当要做什么危险操作的时候,先在subvolume的基础上做一个快照A,如果操作成功,那么什么都不用做(或者把A删掉),继续用原来的subvolume,A不被删掉也没关系,多一个快照在那里也不占空间,如果操作失败,那么可以将A设置成default subvolume,并将原来的subvolume删除,这样就相当于系统回滚。
有了这样的功能后,Linux的每次操作都能回滚,养成在修改操作前做snapshot的习惯,就再也不用担心rm误删文件了。
现在有些发行版已经有了类似的功能,如ubuntu,将安装工具(apt)和Btrfs结合,自动的在安装软件之前打一个snapshot,然后安装软件,如果成功,删除新的snapshot,如果失败,修改default subvolume为新的snapshot,删除掉原来的snapshot,这样对系统没有任何影响,并且所有操作对用户是透明的。










Reply Favorite View the author
All Replies
2 / 2
To page
tmacy
deepin
2017-07-23 02:55
#21
https://bbs.deepin.org/post/142951
安装之前格式化分区,安装的时候,不要格式化分区,何必这么麻烦,我觉得我那样装就挺好的。 ...

恩,如果安装器支持btrfs,先建立子卷,再装系统到子卷,可能会更好,甚至不同目录单独建立子卷。一般服务器的lvm就是这么玩的。
Reply View the author
comzhong
deepin
2017-07-23 03:05
#22
本帖最后由 comzhong 于 2017-7-22 19:32 编辑
https://bbs.deepin.org/post/142951
恩,如果安装器支持btrfs,先建立子卷,再装系统到子卷,可能会更好,甚至不同目录单独建立子卷。一般服 ...

那个就要修改不少东西了,我一向喜欢简单,不喜欢搞得太复杂
Reply View the author
黄榛
deepin
2018-08-31 22:55
#23
This is a wonderful post, but I think something should be added:

After adding btrfs contents to that file, if your btrfs partition(s) is already formatted,  before you run the installer, remember umounting partitions you want to use for the new deepin system you install. Or you will not find those partitions, because the live system automaticly mount some filesystems in disks, and the installer doesn't umount them.

                                    ----From Deepin 15.6 Live System with no fcitx.... By the way, 15.7 Live System couldn't load to desktop. It ran into something like "out of range" error.
Reply View the author
2 / 2
To page