UBIFS檔案系統之分割槽掛載
本文是鄙人在學習根檔案系統移植中對UBIFS檔案系統分割槽掛載的過程,以及對其中常見問題的分析與解答。
檔案掛載:將一個裝置(通常是儲存裝置)掛接到一個已存在的目錄上。
由於linux作業系統將所有的裝置都看做檔案,我們要訪問儲存裝置中的檔案,必須將檔案所在的分割槽掛載到一個已存在的目錄上,然後通過訪問這個目錄來訪問儲存裝置。
掛載分為手動掛載和自動掛載,這裡介紹UBIFS檔案系統的手動掛載過程,UBIFS檔案系統將是以後常用的檔案系統。
條件:1.根檔案系統已經掛上,將一個mtdblock分割槽作為UBIFS檔案系統型別,然後掛在一個目錄下。
2.busybox(提供掛載命令)
步驟:
一、~ >:cat proc/mtd
這裡是看我們的分割槽資訊,以便於我們選擇掛哪個分割槽,我有五個分割槽:mtd0,mtd1,mtd2,mtd3,mtd4。分別對應u-boot(1M)、kernel(15M)、roofts(40M)、apps(100M)、data(100M),我選擇mtd2,即rootfs這個分割槽進行掛載。
二、用mtd2來關聯為ubi裝置。ubiattach命令用來連結原始flash裝置到UBI(原始flash裝置的卷管理系統,管理操縱多個卷實現損耗平衡,不需考慮壞塊,邏輯擦除塊)並且建立相應的UBI裝置。
這時我們可以看到我們建立的UBI裝置ubi0
三、劃分邏輯卷,ubimkvol命令用來從UBI裝置上建立UBI卷。我們便可以看見UBI卷ubi0_0。
置於最後這個引數,因為我用的是版本比較舊的busybox,所以需要輸入劃分大小,我劃分33M,所以後面數字為33*1024*1024.
四、掛載(mount命令),並檢查是否掛載成功。
五、掛載成功以後記得dmesg,用來檢視自己所掛檔案系統的資訊
這裡的available PEBs的值在使用你的所掛分割槽時比較重要。
六、接下來說說我遇到的常見的問題
1、UBI error: ubi_io_write: error -5 while writing 512 bytes to PEB 0:512, written 0 bytes
這個選項不要選就可以了。
2、隨機出現的壞塊問題,這裡不做解釋,因為是隨機的嘛。
3.bad CRC(ubifs)和(jffs2)
這是因為沒有擦除乾淨,我們可以在u-boot裡面進行擦除,比如:nand erase 1000000 2800000,這裡的起始地址和大小隨你的分割槽而定。
4、附上新版busybox的掛載步驟