延长树莓派上SD卡的使用寿命

引用:http://shumeipai.nxez.com/2014/02/28/extend-the-life-of-raspberries-come-in-sd-card.html

在一个SD卡上运行GNU/Linux的最佳实践

  1. 一张容量更大的卡   假设写操作在卡上的各个地方都有可能进行,这样越大的卡在同一区域多次书写的概率越小。对于大多数的树梅派GNU/Linux发行版来说,一张4GB的卡够用了,但8GB或者16GB从这个角度来看更合适。让我们把4GB提高到8GB,那么在同一区域进行写操作的概率会减少一半。
  2. 坚持选个好牌子  已经有许多文章都提到要坚持选择顶级品牌的SD卡。我没有整理出一份品牌列表也没有特别支持哪个品牌,但幸运的是已经有很多文章显示了顶级品牌和它们的报废率。
  3. 调整GNU/Linux写入到内存而不是SD卡上  这使用了一个叫“tmpfs”的功能,它是GNU/Linux提供的一个非常酷的玩意。Tmpfs能够像写入一个正常的文件系统一样让写操作写入内存中。它快捷,高效并且易于使用。下面会详细介绍。
  4. SD卡设置为只读模式  这实际上把GNU/Linux变成了一个只读模式,类似于你从Live CD启动的GNU/Linux。这样阻止了任何的写操作从理论上来讲延长了SD卡的寿命。但这也有许多缺陷。首先,你得在配置上花点功夫,这已经超出了本文的范围。其次,所有的改动会在系统重启后消失因为它们没有写入SD卡里。对于我来说,GNU/Linux运行在只读模式实在是要命所以我不推荐这么极端的做法。

使用Tmpfs

如我前面所说,tmpfs会写入到内存中而不是本地磁盘(树梅派上实际是SD卡)。使用它非常简单。你要做的只是增加一个到/etc/fstab文件的入口(挂载你想写入到内存的文件夹到内存里)并且重启(这样每次服务开始写文件之前都会把这些文件夹先挂载到内存里)。

剩下的事情系统内核会替你搞定,把写操作写入到内存里的虚拟文件系统。这还有个巧妙之处,系统内核只会使用写操作所需数量的内存而不是整个挂载的大小。让我们举个例子,我想要把下面这一行加入到/etc/fstab文件中:


1

tmpfs /var/log tmpfs defaults,noatime,nosuid,mode=0755,size=100m 0 0

系统内核将会把/var/log挂载到内存中,然而在文件真正被写入到/var/log之前不会使用任何内存。当文件被写入到/var/log时,系统内核将会把它保存在内存里并且只占用用于保存文件的内存空间。当文件从/var/log中删除时,相对应的内存空间将被释放。

这意味着它只占用用于保存文件的内存空间,这是非常高效的。

在/etc/fstab中,你也可以为每个挂载指定内存配额。在上面的例子里,我们设置的是”size=100m”所以/var/log最多使用100m的内存空间。这是为了防止一个文件系统占用了全部内存以至于系统速度变慢甚至崩溃。通过运行”mount”命令,我们可以看到在上面的例子里/var/log被挂载为一个tmpfs在内存里的卷,大小是100MB。


1

2

Filesystem Size Used Avail Use% Mounted on

tmpfs 100M 596K 100M 1% /var/log

在GNU/Linux里有许多可能会频繁写入到地方。下面是一个我初步整理的应该可以适用于大多数发行版的列表。


1

2

3

4

5

tmpfs /tmp tmpfs defaults,noatime,nosuid,size=100m 0 0

tmpfs /var/tmp tmpfs defaults,noatime,nosuid,size=30m 0 0

tmpfs /var/log tmpfs defaults,noatime,nosuid,mode=0755,size=100m 0 0

tmpfs /var/run tmpfs defaults,noatime,nosuid,mode=0755,size=2m 0 0

tmpfs /var/spool/mqueue tmpfs defaults,noatime,nosuid,mode=0700,gid=12,size=30m 0 0

你看我使用了”size=”参数来避免试图保存大量的数据时占用大量内存的问题。出于安全和性能方面的考虑,”noatime”和”nosuid”参数也推荐设置,”mode=”和”gid=”对应的权限和用户组要与原来存在于SD卡上的文件系统保持一致。

恩,tmpfs也可以进行权限控制。通常情况下,所有在/etc/fstab下挂载的文件和标准的Unix/Linux文件没什么区别。所以即使因为一些原因挂载失效了,写操作也会成功写入到SD卡上。

需要记住的一点是所有挂载到tmpfs的文件将会在重启时丢失。所以上面的例子里/var/log文件会在关机时或重启时清空。所以不要把tmpfs用于那些你需要在重启后依然存在的文件。

我正在积极的使用这些设置,到目前为止结果还不错。时间会告诉我们这对于树莓派和/或者SD卡的寿命延续有何作用,但是现在已经有很多文章说能够正常运行很久,因为我们知道GNU/Linux不像其他操作系统一样需要频繁重启。上面的方法希望可以延长使用寿命,特别是你打算一年365天,每周7×24小时的开着树莓派。

原文地址:https://www.cnblogs.com/bongem/p/12122129.html

时间: 2024-07-29 22:00:52

延长树莓派上SD卡的使用寿命的相关文章

不从SD卡启动树莓派2

本文你可以学到: berryboot使用,kali安装,开挂的MobaXterm,以及关于通过LABEL和UUID挂载的小技巧. 本文默认你有一定Linux基础,同时针对刚入门的水平,因为这是我的折腾记录.不懂可以留言或者email. 首先要明确的是现在暂时没有完全脱离sd卡的方法,因为Pi是默认从SD卡启动的.只是实现了将系统放在别的地方(U盘,硬盘,局域网),但是还是要有一张sd卡(可以很小,64M以内都可以)作为/boot来引导,无法完全做到从U盘启动,但是启动后可以拔掉SD卡运行. 我只

Android Rom分区 与 SD卡读写

1.Rom分区 在Android中,对数据的保护是很严密的.除了放在SD卡中的数据,一个应用所拥有的数据库.文件等内容都是不允许其他应用直接访问的,这一部分数据都是在/data/data里面. 这里所说的SD卡是逻辑上的SD卡,比如我现在用的galaxy s4 的Rom是16g,Android系统会把这16g分成两个部分,一个是系统和应用程序数据区,另一个就是虚拟的SD卡,可以称它为内置SD卡. 我们平时外插进手机的是TF卡,简称Micro SD卡,具体的可以参考百度. 三星手机默认的内置SD卡

OpenWrt自动挂载sd卡

我们在编译的时候经常会遇到flash不够用的问题,怎么解决呢?可以通过挂载usb或者sd卡解决问题.在此介绍一下openwrt挂载sd卡. 1. 安装sd卡的驱动以及相关支持 make kernel_menuconfig Device Drivers -> MMC/SD/SDIO card support -> 找到该目录 如图在相关选项前打上"*"号 保存并退出 接下来make menuconfig Kernel modules ->Native Language

Linux SD卡建立两个分区

本文主要介绍Linux 环境下SD卡建立两个分区的操作流程: 操作环境:Linux Ubuntu 2016.4 操作目的:将 SD 卡分为两个分区:第一分区格式为 FAT32,大小500M.第二个分区为 ext4,占剩下的所有空间,用来装 Ubuntu的文件系统 具体操作如下: 一 . 使用 lsblk 或者 fdisk -l 查看系统上的存储设备,找出SD卡的设备名,我的系统上SD卡的设备名是:/dev/sdb,包含一个分区,分区名是sbb1 二 . 使用命令fdisk开始分区 1. sudo

zedboard烧写SD卡启动linux镜像

1. 先把SD卡格式化,然后把镜像文件拷贝到SD卡,下面应该是没有文件系统的 2. 插上SD卡,Zedboard设置启动模式,有5个跳线帽,配置如下,上电启动 3. 看下串口的输出 原文地址:https://www.cnblogs.com/429512065qhq/p/8782601.html

在大于32GB或64GB容量的SD卡上使用NOOB安装树莓派 - Using NOOB on SD cards larger than 32GB or 64GB for Raspberry Pi

在树莓派上玩了一小段时间了,因为装的软件包越来越多,所以越来越感觉16G的SD卡没办法长期使用下去.于是采购了几张64G的SD卡,打算周末装上系统.可是按照一般的流程,在Windows下用SD Formatter格式化后,我的Raspberry Pi 2B似乎完全无动于衷,一点反应也没有.经过查找资料,找到了原因.主要是因为大于32GB的SD卡, SD Formatter会默认以exFAT的格式进行格式化,而Raspberry Pi目前的机型都还不支持对该格式的识别,因此才会无法识别大于32GB

树莓派(raspberry pi) 系统在SD卡上安装Linux

刚刚拿到一只Simon同学出借的树莓派(raspberry pi) ,准备一张4GB的SD卡,准备跑一下Linux. 在Windows 7上用 工具 Win32DiskImager写入img到SD卡上,报错,失败. 好在俺有Linux vmware虚拟机,在虚拟机上搞,执行命令 sudo dd bs=1M if=2012-12-16-wheezy-raspbian.img  of=/dev/sdb tips: 错误:接电启动树莓派,派上只有红色的Power灯亮,HDMI电视机上没有输出. 原因:

向SD卡写入树莓派的操作系统

用到的工具: Win32 Disk Imager: sd卡读卡器  Raspbian操作系统镜像:下载地址 步骤1:下载操作系统的镜像 树莓派基金会的网站罗列了一些树莓派可以使用的操作系统,其中Raspbian是官方支持的操作系统,它是基于Linux的Debian发行版.如果没有特殊要求,一般都会使用Raspbian. 操作系统文件将近有1GB的大小,在这段空闲里去喝口茶吧. 下载完成后还需要解压成img文件,这有3GB左右. 步骤2:下载安装Win32 Disk Imager 上面给出了Win

树莓派 Raspberry Pi 吐槽SD卡TF卡的朋友看过来

有图有真相.不多说了. 做广告了(实在其实真不是啊)认准防水型啊. 用手电筒照一照,铅笔画条线,然后就可以上剪刀了. 效果如下. 树莓派 Raspberry Pi 吐槽SD卡TF卡的朋友看过来