Difference between revisions of "How to use overlayfs on Linux"

From FriendlyELEC WiKi
Jump to: navigation, search
(哪些平台与系统支持OverlayFS)
(使用OverlayFS时的分区布局)
Line 26: Line 26:
 
tmpfs            102304      0    102304  0% /run/user/1000
 
tmpfs            102304      0    102304  0% /run/user/1000
 
</syntaxhighlight>
 
</syntaxhighlight>
==使用OverlayFS时的分区布局==
+
==Partition Settings With OverlayFS==
会有三个分区,分别为 rootfs分区、data分区与boot分区,对应映像文件rootfs.img, userdata.img boot.img:
+
When you use OverlayFS there will be three partitions:rootfs, data and boot, and these partitions correspond to the rootfs.img, the userdata.img and the boot.img separately:
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 
root@NanoPi-M1-Plus:~# lsblk /dev/mmcblk0
 
root@NanoPi-M1-Plus:~# lsblk /dev/mmcblk0
Line 36: Line 36:
 
`-mmcblk0p1 179:1    0  40M  0 part /boot
 
`-mmcblk0p1 179:1    0  40M  0 part /boot
 
</syntaxhighlight>
 
</syntaxhighlight>
其中,rootfs分区存放固化的系统数据,所有对根目录的数据写入,都会写入到 data分区。
+
The system data will be in the rootfs partition and the data written to the root directory will be in the data partition.
 +
 
 
==使用OverlayFS实现恢复出厂设置功能==
 
==使用OverlayFS实现恢复出厂设置功能==
 
===方法1:操作userdata分区===
 
===方法1:操作userdata分区===

Revision as of 12:30, 18 September 2019

查看中文

1 What Is OverlayFS

OverlayFS is a union mount filesystem implementation for Linux. It allows a virtual merge of two partitions, while keeping their actual contents separate. One partition is the rootfs partition and the other is the data partition. It has the following advantages:
1) you can easily restore a system's default settings by formatting the data partition;
2) you can still boot your system since the rootfs is read-only even when the data partition cannot be correctly mounted due to unexpected shutdown.

2 FriendlyELEC's Systems That Support OverlayFS

2.1 Hardware Systems

H3, H5, S5P4418, S5P6818, RK3399 based boards

2.2 OS Systems

FriendlyCore, FriendlyDesktop, Lubuntu

3 如何鉴别系统是否工作在OverlayFS

执行df命令,如果/分区挂载类型为 overlay,表示OverlayFS正在工作:

pi@NanoPi-M1-Plus:~$ df
Filesystem     1K-blocks    Used Available Use% Mounted on
udev              474848       0    474848   0% /dev
tmpfs             102304    3564     98740   4% /run
overlay         28925547 1315493  26112465   5% /
tmpfs             511512       0    511512   0% /dev/shm
tmpfs               5120       4      5116   1% /run/lock
tmpfs             511512       0    511512   0% /sys/fs/cgroup
/dev/mmcblk0p1     40862   11852     29010  30% /boot
tmpfs             102304       0    102304   0% /run/user/1000

4 Partition Settings With OverlayFS

When you use OverlayFS there will be three partitions:rootfs, data and boot, and these partitions correspond to the rootfs.img, the userdata.img and the boot.img separately:

root@NanoPi-M1-Plus:~# lsblk /dev/mmcblk0
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
mmcblk0     179:0    0 29.7G  0 disk
|-mmcblk0p2 179:2    0  1.2G  0 part
|-mmcblk0p3 179:3    0 28.5G  0 part
`-mmcblk0p1 179:1    0   40M  0 part /boot

The system data will be in the rootfs partition and the data written to the root directory will be in the data partition.

5 使用OverlayFS实现恢复出厂设置功能

5.1 方法1:操作userdata分区

factory reset:

mount /dev/mmcblk0p3 /media/ && cd /media/
mv root/ deleteme.root
mv work/ deleteme.work
reboot

cleanup after reboot:

mount /dev/mmcblk0p3 /media/ && rm -rf /media/deleteme.*

5.2 方法2:命令行参数

在内核命令行参数中加入 wipedata=yes,S5P4418与S5P6818平台可以在系统运行时进行修改:

5.2.1 设置下次开机时抹掉data分区的数据(即恢复出厂设置)

sudo fw_setenv bootargs "`cat /proc/cmdline` wipedata=yes"
sudo reboot

5.2.2 开机时不再抹掉data分区

sudo fw_setenv bootargs "`cat /proc/cmdline` wipedata=no"
sudo reboot

其他平台需要根据BSP提供的方法进行kernel command line修改,也可以开机进入uboot命令行进行设置。

6 临时禁用OverlayFS

可以做完TF启动卡之后,用 fdisk 操作TF卡,删除 data 分区。