Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> Linux 教學

NAND Flash 壞塊跳過與 nand scrub 強制擦除操作指南

編輯:Linux 教學

現象

Skipping bad block at 0x011a0000
Skipping bad block at 0x011c0000
...
Skipping bad block at 0x01380000

啟動或擦寫過程中大量輸出「Skipping bad block」,表示 NAND 控制器檢測到出廠標記或運行時標記的壞塊,自動跳過。

nand scrub 命令

nand scrub
  • 作用:強制擦除整片 NAND,**忽略壞塊標記**,將所有塊視為好塊擦除。
  • 適用場景:開發板調試、文件系統損壞需完全重建、測試 NAND 物理極限。
  • 風險:會抹除出廠壞塊標記,導致真壞塊被誤用,數據可靠性下降;每次擦除消耗 1 次 P/E 壽命 (通常 10 萬次)。

執行後反饋

「nand scrub 後問題解決了」—— 典型開發階段現象:文件系統元數據落在壞塊導致掛載失敗,scrub 後重新劃分分區、格式化可暫時恢復。

最佳實踐建議

  1. 量產產品嚴禁使用 nand scrub,必須尊重壞塊管理機制 (BBT、ECC、磨損均衡)。
  2. 開發調試階段可用,但 scrub 後應**立即運行壞塊掃描工具** (如 nand bad、nand info) 重新標記壞塊。
  3. 文件系統選型:UBIFS/YAFFS2 內建壞塊處理,比手動 scrub 可靠得多。
  4. 定期備份關鍵分區 (Bootloader、DTB、Kernel),壞塊增長導致啟動失敗時可快速恢復。

相關 U-Boot NAND 命令速查

命令功能
nand info顯示 NAND 幾何參數、壞塊統計
nand bad掃描並顯示所有壞塊地址
nand erase 擦除指定範圍 (會跳過壞塊)
nand write 寫入 (自動跳過壞塊)
nand read 讀取 (自動跳過壞塊,ECC 校驗)
nand scrub強制全片擦除 (忽略壞塊標記,慎用!)

總結

「Skipping bad block」是正常保護機制。nand scrub 是開發調試的「核選項」,能暫時繞過壞塊導致的擦寫失敗,但**犧牲可靠性與壽命**。生產環境務必使用成熟的 FTL/文件系統 (UBIFS) 管理壞塊,切勿依賴 scrub。

Copyright © Windows教程網 All Rights Reserved