CubieBoard中文论坛

 找回密码
 立即注册
搜索
热搜: unable
查看: 8624|回复: 6

建議Cubian安裝至Nand後將ext4加上 journal 功能

[复制链接]
发表于 2014-11-3 18:33:29 | 显示全部楼层 |阅读模式
原本Cubian安裝至 Nand 後 , 不正常斷現後經常發生 nandb 分區導至系統無法開機 ,
經 cubieplayer 兄提醒經由 cubian-nandinstall 安裝系統至 nand 後 , 系統預設是關閉 ext4 之 journal 功能

開啟方法有2種

1. 尚未由 sdcard 安裝至 nand 時 , 可修改安裝程序後即可啟用 journal , 節錄 cubieplayer 兄之說明

  找到
  /usr/lib/cubian-nandinstall/install.sh
  註釋掉第285行
  disableJournal
  就可以了,斷電數據會自動恢復,但是會減少nand的使用壽命

2. 已經安裝至 nand 後可用以下方法啟用
  
  先檢查 nandb 是否開啟 journal 功能  sudo debugfs -R features /dev/nandb

  如果有出現 Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize 那就是有開啟

  如果沒有可用以下指令 開啟 nandb 之 journal 功能
  sudo tune2fs -O has_journal /dev/nandb

  我試過了執行以上指令不會影響原本磁區之資料 , 開啟之後我做了一些測試 , 在大量 copy file 時將電源關閉
  重開機時會出現錯誤 , 但系統都會自動修正 ext4 分區資料 , 可以正常啟動系統沒有問題 ,
  我大約試了4至5次都可以資料復原 , 建議大家可以考慮啟用功能 , 但 cubieplayer 兄有提到
  會減少nand的使用壽命 , 因為每一次寫入動作都會先寫入日誌檔 , 表示 nand 使用次數會加倍
  但我只是用 cb2 開機  run 預設之程式 , 並無作大量資料存檔用 , 甚至我還開了 ram disk 減少
  nand 的實體寫入動作 , 比較不會影響 nand  的使用壽命 !!


  <7>EXT4-fs (nandb): ext4_orphan_cleanup: deleting unreferenced inode 32167[   19.626549] EXT4-fs (nandb): ext4_orphan_cleanup: deleting unreferenced inode 32167
<7>EXT4-fs (nandb): ext4_orphan_cleanup: deleting unreferenced inode 32146
[   19.649235] EXT4-fs (nandb): ext4_orphan_cleanup: deleting unreferenced inode 32146
<7>EXT4-fs (nandb): ext4_orphan_cleanup: deleting unreferenced inode 32144
[   19.671435] EXT4-fs (nandb): ext4_orphan_cleanup: deleting unreferenced inode 32144
<7>EXT4-fs (nandb): ext4_orphan_cleanup: deleting unreferenced inode 32143
[   19.693554] EXT4-fs (nandb): ext4_orphan_cleanup: deleting unreferenced inode 32143
<6>EXT4-fs (nandb): 4 orphan inodes deleted
[   19.712933] EXT4-fs (nandb): 4 orphan inodes deleted
<6>EXT4-fs (nandb): recovery complete
[   19.740669] EXT4-fs (nandb): recovery complete
<6>EXT4-fs (nandb): mounted filesystem with writeback data mode. Opts: (null)
[   19.779485] EXT4-fs (nandb): mounted filesystem with writeback data mode. Opts: (null)
<6>VFS: Mounted root (ext4 filesystem) on device 93:2.
[   19.799853] VFS: Mounted root (ext4 filesystem) on device 93:2.
<6>devtmpfs: mounted
[   19.816652] devtmpfs: mounted







回复

使用道具 举报

发表于 2014-11-9 16:19:27 | 显示全部楼层
非常好的经验。

我认为cubian X1 应该默认打开journal, 然后给客户自己选择,是disable 还是保留这个功能。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-11-9 23:03:38 | 显示全部楼层
本帖最后由 PeterW 于 2014-11-9 23:04 编辑
joyhope 发表于 2014-11-9 16:19
非常好的经验。

我认为cubian X1 应该默认打开journal, 然后给客户自己选择,是disable 还是保留这个功能 ...

同意您的想法 , 甚至應該強制開啟 !!

我想 cubieboard 的使用應該有2種人

1. 當作開發版使用 , 經常會開機/關機 , 有時程式寫當了還會強制斷電重開 , 這種用途時應該打開 journal ,
    否則開發環境很容易損壞

2. 當作 Web 或 其他APP應用常常會將資料儲存至磁區(or Disk) , 如此一來我想不管資料是否有開啟 journal
   存放在 SDCARD or NAND 都不是一個好主意 , 這時將系統及資料存放於 hard disk ( or SSD ) 應該是比較
   好的選擇

我的結論是 : 不管用 SDCARD or NAND 版本 , 都應該開啟 journal 功能 !!
回复 支持 反对

使用道具 举报

发表于 2014-11-14 21:53:24 | 显示全部楼层
本帖最后由 sxgpic 于 2014-11-15 12:48 编辑

最好是参照 openwrt 的做法,系统做成 squashfs + overlayfs/aufs/unionfs 的形式。
闪存里面用可写的 jffs2/yaffs/logfs/f2fs/ubifs 闪存文件系统作 overlay,系统在高度压缩而且只读的 squashfs 分区里面。
对配置文件的修改或对软件的安装、升级都是  copy on write 方式,放在可写分区里面。
万一可写分区受损大不了格一下就行了(类似 “快速恢复出厂设置”),只读的系统 squashfs 分区不受影响,仍能启动。
至于重要数据,别放在 NAND 里面。
回复 支持 反对

使用道具 举报

发表于 2014-11-15 17:53:01 | 显示全部楼层
最好是参照 openwrt 的做法


在cubieboard 的结构下,完全不需要使用这个方法。

NAND 本身是能承载正常的文件读写的。

回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-11-15 18:01:48 | 显示全部楼层
joyhope 发表于 2014-11-15 17:53
在cubieboard 的结构下,完全不需要使用这个方法。

NAND 本身是能承载正常的文件读写的。

我想 sxgpic 兄提到的openwrt 的做法 , 應該是將 cubieboard 安裝成 nand 寫入次數最少的方法了 ,

但 joyhope 兄您的說法應該也是對的 , 因為在極少量的 system log 寫入狀況下 , nand 的磁區應該是

被平均使用的 , 重覆寫入同一區塊的次數是很少的 , 我想 cubieboard 應該是承受的得了 !!
回复 支持 反对

使用道具 举报

发表于 2014-11-18 16:42:56 | 显示全部楼层
PeterW 发表于 2014-11-15 18:01
我想 sxgpic 兄提到的openwrt 的做法 , 應該是將 cubieboard 安裝成 nand 寫入次數最少的方法了 ,

但 jo ...

像 openwrt 这样 squashfs + overlayfs 不只是为了减少 nand 写入次数,更重要的是节省空间(系统被打包到高度压缩的 squashfs 分区中),能够快速恢复 “出厂设置(初始状态)”(可写的 overlay 分区万一出问题可以重新格式化掉,不影响系统启动)。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|粤ICP备13051116号|cubie.cc---深刻的嵌入式技术讨论社区

GMT+8, 2024-5-6 17:47 , Processed in 0.022883 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2012 Comsenz Inc. | Style by Coxxs

返回顶部