RaspberryPi树莓派如何优化提升EMMC/SDCard/TF卡的寿命

一般来说,树莓派3之前使用TF卡作为存储设备,树莓派4之后有内置存储,当然也可以使用TF卡。但不管哪一种,都免不了被系统频繁读写。而EMMC或TF卡频繁读写是很容易损坏的。
那么,树莓派有哪些步骤可以减少内置存储的使用呢?

整体原则

不重要的读写,统统都放内存。

基本节省技巧

/var/run放到内存中:

if ! grep -q "/var/run" $FSTAB; then
  echo "none /var/run tmpfs size=2M,noatime 0 0" >> /etc/fstab
fi

创建一个临时的内存盘,暂存平时的频繁读取的临时文件:

把日志目录放到内存中:

if ! grep -q "/media/ram0" $FSTAB; then
  echo "none /media/ram0 tmpfs size=64M,mode=777,noatime 0 0" >> /etc/fstab
fi

我不太关心日志,日志不需要存下来

if ! grep -q "/var/log" $FSTAB; then
  echo "none /var/log tmpfs size=4M,noatime 0 0" >> /etc/fstab
fi

if ! grep -q "/run/log" $FSTAB; then
  echo "none /run/log tmpfs size=2M,noatime 0 0" >> /etc/fstab
fi

我日常使用内存不多,不要swap

在Linux中,swap就是虚拟内存,如果物理内存不够,就会用到磁盘来当虚拟内存。
如果你的树莓派日常使用过程中,内存占用不多的话,建议将swap关掉。

执行命令,卸载swap:

dphys-swapfile swapoff
dphys-swapfile uninstall
systemctl disable dphys-swapfile.service

固态存储特有的磁盘整理

很多文章都提到,固态存储使用fstrim可以延长寿命。原理是删除文件的时候,固态存储(EMMC/TF卡)为了优化性能,不会马上说这块可以重新被写入。如果一直不说这个事,那系统会只写剩下的那些空间,固态存储每个块的读写都是有限次数的,所以从概率上看这些块就会更快损坏。
那总要有个时候说这个事情吧,什么时候呢?就是使用fstrim的时候。其实,fstrim就是把磁盘上面已经删除的空间重新整理出来,告诉系统这里可以重新写入。

树莓派打开fstrim很简单:

systemctl enable fstrim.timer

Leave a comment