花雨落逝
2024-04-04 00:09 Moderator
学习了
Reply Like 0 View the author
学习了
挂载选项里的 ssd,是针对固态硬盘的优化吗?还是仅对 btrfs 的选项?
挂载选项里的 ssd,是针对固态硬盘的优化吗?还是仅对 btrfs 的选项?
都是,不过ssd现在不需要加了,默认优化
btrfs 里的 swapfile 是支持休眠的,我这里在 20.9 和 23 上都成功了,主要是 btrfs 的文件偏移量不好算(需要高版本的 btrfs-progs (>= 6.2) 提供命令行工具支持)
可以参考 Power management/Suspend and hibernate - ArchWiki (archlinux.org) 自行修改 grub 启动参数实现休眠
挂载父卷
sudo mount /dev/sda2 /mnt
创建swap子卷
sudo btrfs subvolume create /mnt/swap
在swap子卷下创建一个0 byte大小的交换文件
sudo truncate -s 0 /mnt/swap/swapfile
配置交换文件权限
sudo chmod 600 /mnt/swap/swapfile
配置交换文件属性,具有'C'属性集的文件将不受 copy-on-write 的约束。
注意:对于btrfs,“C”标志应该是设置新的或空文件。
sudo chattr +C /mnt/swap/swapfile
配置btrfs禁止压缩交换文件
sudo btrfs property set /mnt/swap/swapfile compression none
将交换文件填充至需要的大小
sudo dd if=/dev/zero of=/swap/swapfile bs=1M count=2048
约束交换文件大小
sudo fallocate /mnt/swap/swapfile -l8G
#注意这里是字母L小写跟着文件大小格式化交换文件
sudo mkswap /mnt/swap/swapfile
启用交换文件
sudo swapon /mnt/swap/swapfile
编辑 /etc/fstab 自动挂载,添加或编辑以下行:
全部贴出来是为了对照你们自己的fstab
第一行挂载系统根目录到subvolid=256这个子卷
UUID=ab65fb1c-e037-40c4-a1bf-34a456efae91 / btrfs subvolid=256,ssd,rw,relatime 0 1
第二行挂载系efi分区
UUID=0A87-B2A1 /boot/efi vfat rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 2
第三行学习deepin全盘安装的特性,创建一个数据子卷,同时挂载到根目录下的data,最新版家庭版的安卓数据也是放在/data的,二次挂载的不同之处我只把root和home放在data里,而没有加入opt、var
第四行先把swap这个子卷挂载到根目录下的/swap目录,再把/swap/swapfile里面这个文件二次挂载到swap,也就是原来的交换分区
使用btrfs分区的特点UUID和父卷一致,所以1、3、4行UUID一样,不同点在于后面的参数subvolid=256将其指向了对应的子卷
看一下双分区deepin运行的成果吧!
注意:需要指出的是,由于systemd低版本组件无法和btrfs文件系统下交换文件进行交互,目前deepin这样做无法实现休眠功能,交换文件也就失去价值了,静待支持!