Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
| lwc:hardware:wear_leveling [2025/11/13 07:43] – John Harrison | lwc:hardware:wear_leveling [2025/11/14 10:58] (current) – John Harrison | ||
|---|---|---|---|
| Line 9: | Line 9: | ||
| sudo e2fsck -f / | sudo e2fsck -f / | ||
| sudo resize2fs -M / | sudo resize2fs -M / | ||
| - | sudo fdisk / | + | sudo fdisk / |
| sudo resize2fs / | sudo resize2fs / | ||
| - | sudo partprobe / | ||
| </ | </ | ||
| === inside fdisk === | === inside fdisk === | ||
| + | execute the following commands: | ||
| < | < | ||
| p – print table (to get start sector of p1) | p – print table (to get start sector of p1) | ||
| - | d – delete partition | + | d – delete partition |
| n – create new primary partition #1 | n – create new primary partition #1 | ||
| - | Use same start sector | + | |
| - | Choose a smaller size that is slightly larger than the new filesystem | + | |
| + | - when asked " | ||
| w – write changes | w – write changes | ||
| </ | </ | ||
| Line 33: | Line 34: | ||
| * temporary files created by programs go to RAM | * temporary files created by programs go to RAM | ||
| * keeps logs/temp writes from wearing out eMMC | * keeps logs/temp writes from wearing out eMMC | ||
| - | * mode=1777 | + | * mode=1777: world-writable sticky bit (normal for /tmp) |
| * limit size of files/logs | * limit size of files/logs | ||
| inside ''/ | inside ''/ | ||
| Line 51: | Line 52: | ||
| </ | </ | ||
| === lighten ext4 journaling === | === lighten ext4 journaling === | ||
| - | | + | //not sure '' |
| + | | ||
| * '' | * '' | ||
| * '' | * '' | ||
| Line 57: | Line 59: | ||
| * '' | * '' | ||
| * data=writeback + sudden power loss = some recently changed files may become garbage inside (but no FS corruption) | * data=writeback + sudden power loss = some recently changed files may become garbage inside (but no FS corruption) | ||
| + | * add/change the '' | ||
| + | * '' | ||
| + | |||
| + | === enable Trim === | ||
| + | * When a file is deleted trim says to tell the OS to tell the flash controller that those blocks are no longer used. | ||
| + | * Unused blocks even in the file system can be used by the controller to help with wear leveling | ||
| + | * Continuous trim is apparently a bad idea but for wear leveling a periodic trim of 1x/week is helpful | ||
| + | < | ||
| + | sudo systemctl enable fstrim.timer # defaults to 1x/week | ||
| + | sudo systemctl start fstrim.timer | ||
| + | </ | ||
| + | |||
| + | ==== Zram ==== | ||
| + | *Zram doesn' | ||
| + | //the below suggestions have not been tested// | ||
| + | < | ||
| + | sudo apt update | ||
| + | sudo apt install zram-tools # or sudo apt install systemd-zram-generator | ||
| + | sudo nano / | ||
| + | </ | ||
| + | inside ''/ | ||
| + | < | ||
| + | # =========================== | ||
| + | # ZRAM configuration for BBB | ||
| + | # =========================== | ||
| + | |||
| + | [zram0] | ||
| + | # swap zram | ||
| + | type = swap | ||
| + | compression-algorithm = zstd | ||
| + | zram-size = 256M | ||
| + | |||
| + | [zram1] | ||
| + | # /var/log on zram | ||
| + | type = ext4 | ||
| + | mount-point = /var/log | ||
| + | zram-size = 64M | ||
| + | |||
| + | [zram2] | ||
| + | # /tmp on zram (optional) | ||
| + | type = ext4 | ||
| + | mount-point = /tmp | ||
| + | zram-size = 64M | ||
| + | </ | ||
| + | then | ||
| + | < | ||
| + | sudo systemctl daemon-reload | ||
| + | sudo systemctl start /dev/zram0 # check if already started | ||
| + | sudo systemctl start /dev/zram1 | ||
| + | sudo systemctl start /dev/zram2 | ||
| + | # check | ||
| + | lsblk | ||
| + | zramctl | ||
| + | df -h | ||
| + | # disable journaling | ||
| + | tune2fs -O ^has_journal /dev/zram1 # do not do for zram0 Yes do for zram2 | ||
| + | mkswap /dev/zram0 | ||
| + | </ | ||
| + | //If using zram, remove the ''/ | ||