璀璨星空
deepin
2024-08-18 11:36 哈萨雅琪:
为什么要用brtfs ,比ext4和xfs好么?
主要是快照这个备份比deepin自带的好,更新系统的时候不用担心出问题没法回退需要重装的情况,而且deepin自带的那个备份太慢太占领空间
Reply Like 0 View the author
为什么要用brtfs ,比ext4和xfs好么?
主要是快照这个备份比deepin自带的好,更新系统的时候不用担心出问题没法回退需要重装的情况,而且deepin自带的那个备份太慢太占领空间
root@ziggy-PC:/mnt# rsync -avrP /media/ziggy/Roota /mnt/@main
root@ziggy-PC:/mnt# rsync -avrP /media/ziggy/Roota/opt /mnt/@opt
root@ziggy-PC:/mnt# rsync -avrP /media/ziggy/Roota/home /mnt/@home
root@ziggy-PC:/mnt# rsync -avrP /media/ziggy/Roota/root /mnt/@root
求解答,这里是不是应该在后边加个“/”才对啊
root@ziggy-PC:/mnt# rsync -avrP /media/ziggy/Roota/ /mnt/@main
root@ziggy-PC:/mnt# rsync -avrP /media/ziggy/Roota/opt/ /mnt/@opt
root@ziggy-PC:/mnt# rsync -avrP /media/ziggy/Roota/home/ /mnt/@home
root@ziggy-PC:/mnt# rsync -avrP /media/ziggy/Roota/root/ /mnt/@root
root@ziggy-PC:/mnt# rsync -avrP /media/ziggy/Roota /mnt/@main
root@ziggy-PC:/mnt# rsync -avrP /media/ziggy/Roota/opt /mnt/@opt
root@ziggy-PC:/mnt# rsync -avrP /media/ziggy/Roota/home /mnt/@home
root@ziggy-PC:/mnt# rsync -avrP /media/ziggy/Roota/root /mnt/@root
求解答,这里是不是应该在后边加个“/”才对啊
root@ziggy-PC:/mnt# rsync -avrP /media/ziggy/Roota/ /mnt/@main
root@ziggy-PC:/mnt# rsync -avrP /media/ziggy/Roota/opt/ /mnt/@opt
root@ziggy-PC:/mnt# rsync -avrP /media/ziggy/Roota/home/ /mnt/@home
root@ziggy-PC:/mnt# rsync -avrP /media/ziggy/Roota/root/ /mnt/@root
rsync 如果路径末尾不带/ ,意思是以目录形式同步
这里意思是把@main这个子卷 和 roota这个目录同步, 同步全目录含内容
Popular Events
More
前期准备
安装准备
btrfs分区划分子卷
ziggy@ziggy-PC:~$ lsblk -f NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS sdb ├─sdb1 vfat FAT32 DCF5-3A2C /boot/efi ├─sdb2 swap 1 swap e2a198a1-6e12-4248-bca8-b5cfbf4ce723 [SWAP] ├─sdb3 btrfs deepin 68e253cf-9282-47b3-b087-9c5910950c88 89.9G 32% /
根据lsblk得出btrfs分区为/dev/sdb3,挂载
root@ziggy-PC:~# mount /dev/sdb3 /mnt/
root@ziggy-PC:/mnt# btrfs subvolume create /mnt/@main root@ziggy-PC:/mnt# btrfs subvolume create /mnt/@home root@ziggy-PC:/mnt# btrfs subvolume create /mnt/@opt root@ziggy-PC:/mnt# btrfs subvolume create /mnt/@root
系统部署
初始系统安装
乾坤大挪移
处于总所周知的两个原因,在安装完初始系统后,如果我们想要让系统正常在btrfs卷上运行并使能快照功能,就需要手动将已经安装好的系统迁移到btrfs子卷中
sda ├─sda1 ext4 1.0 Roota a7f4b3d4-5d3d-45a1-a27b-798aa6fbae48 30.7G 26% /media/ziggy/Roota sdb ├─sdb1 vfat FAT32 DCF5-3A2C /boot/efi ├─sdb2 swap 1 swap e2a198a1-6e12-4248-bca8-b5cfbf4ce723 [SWAP] ├─sdb3 btrfs deepin 68e253cf-9282-47b3-b087-9c5910950c88 89.9G 32% /mnt
root@ziggy-PC:/mnt# rsync -avrP /media/ziggy/Roota /mnt/@main root@ziggy-PC:/mnt# rsync -avrP /media/ziggy/Roota/opt /mnt/@opt root@ziggy-PC:/mnt# rsync -avrP /media/ziggy/Roota/home /mnt/@home root@ziggy-PC:/mnt# rsync -avrP /media/ziggy/Roota/root /mnt/@root
文件配置
数据迁移完成后,由于btrfs卷与系统原安装路径不一致以及系统安装到btrfs子卷后的引导顺序,需要对数个配置文件进行重新配置
"Firmware固件==>efi引导文件==>Grub==>Btrfs母卷==>Btrfs子卷Grub==>Btrfs子卷rootfs"
/boot目录
/boot目录中需要对grub.cfg引导文件进行修改,这里可以分为几步
通过搜索将初始系统的UUID批量替换为btrfs母卷的UUID
观察grub.cfg文件中对系统绝对路径的引用,在"/"前加上"/@main",表明该路径修改后为子卷中的路径
在linux行内核启动参数中添加"rootflags=subvol=@main"指示grub引导btrfs母卷中的@main子卷
linux /@main/boot/vmlinuz-6.1.32-amd64-desktop-hwe root=UUID=68e253cf-9282-47b3-b087-9c5910950c88 ro splash quiet rootflags=subvol=@main DEEPIN_GFXMODE=$DEEPIN_GFXMODE initrd /@main/boot/initrd.img-6.1.32-amd64-desktop-hwe
/etc目录
# <file system> <mount point> <type> <options> <dump> <pass> # /dev/sdb1 LABEL=Roota UUID=68e253cf-9282-47b3-b087-9c5910950c88 / btrfs rw,relatime,ssd,compress=zstd,subvol=@main 0 1 UUID=68e253cf-9282-47b3-b087-9c5910950c88 /home btrfs rw,relatime,ssd,subvol=@home 0 1 UUID=68e253cf-9282-47b3-b087-9c5910950c88 /opt btrfs rw,relatime,ssd,subvol=@opt 0 1
root@ziggy-PC:/boot/grub# cat /etc/default/grub # Written by org.deepin.dde.Grub2 GRUB_CMDLINE_LINUX_DEFAULT="splash quiet rootflags=subvol=@main"
EFI目录(如果是UEFI引导的话)
root@ziggy-PC:/boot/grub#mount /dev/sdb1 /mnt
root@ziggy-PC:/boot/efi/EFI/deepin# cat grub.cfg search.fs_uuid 68e253cf-9282-47b3-b087-9c5910950c88 root hd0,gpt2 set prefix=($root)'/@main/boot/grub' configfile $prefix/grub.cfg
快照部署
由于前文提及@main子卷用于根卷不打算作为常用系统子卷使用,因此在该基础上创建一个@sys快照子卷来作为日用环境
root@ziggy-PC:/# btrfs subvolume snapshot /mnt/@main /mnt/@sys
快照创建完成后,由于子卷发生改变,因此需要重复"### 文件配置"步骤来调整新子卷的内容,但通用文件不需要改动
/boot目录
/etc目录
初始化部署
由于"初始化"环境本质上还是以快照子卷的形式存在,因此仅需要参考前面快照部署内容即可完成部署。即对@sys子卷做只读快照操作为同btrfs母卷下的"@snaps/@restore子卷"(支持个人习惯的自定义)以及修改/etc对应文件即可完成.snapshots的"-r" 参数为只读快照
root@ziggy-PC:/# btrfs subvolume snapshot -r /mnt/@sys /mnt/@snaps/@restore
由于通过安装器安装的系统一般还会附属"高级菜单",个人建议直接利用高级菜单,将其描述修改为Restore,initrd和linux路径修改为自己的初始化环境子卷。这样就可以在选Restore菜单引导时进入初始化环境了。
但值得注意的是,建议恢复时是以快照的形式先将"@restore子卷"恢复到一个新子卷中再进行用户配置环节操作,这样就可以极大程度避免初始化环境被破坏了.
参考文献: @AMZ 将uos/deepin运行在btrfs文件系统,并启用快照功能