在Android系统中,F2FS 文件系统问题分析步骤
步驟一:導出分區原始數據,生成img文件。
? ? ? ?經過多年迭代,F2FS文件系統越來越穩定可靠。目前被大量地運用到Android中,用于存放用戶數據(userdata分區)。而隨著硬件成本的降低,手機中存儲的容量也在激增,甚至達到了1T的容量。另外一方面,為了提升用戶數據的安全性,Google也在Android中引入了用戶數據加密的特性。這些都為分析用戶數據分區增加了障礙。
? ? ? ?由于用戶數據分區(userdata分區)過大,如果我們把它完整導出來需要花費巨大的人力、物力。一個是需要準備足夠大的磁盤,另外則是需要等待較長的時間。但是,對于F2FS分區,我們一般不會這么做。由于F2FS的文件系統元數據(metadata)只存放于分區開頭。我們的問題如果只是涉及到分析這部分,那么我們只需要導出超過元數據(metadata)大小即可。例如,對于100G大小的分區,我們只需要導出前面1G就遠遠足夠了。
? ? ? ?目前,用于對整個分區進行加密的方法有兩種。一種是采用內聯加密,另外則是使用device-mapper來實現。如果是第一種內聯加密的方式,只要分區進行了解密動作。那么,我們直接讀取該塊設備的設備節點即可獲得解密后的數據。而Android對用戶數據(metadata分區)的解密動作分為兩段。最后一段是發生在開機輸入用戶秘鑰解鎖手機的階段。所以,我們可以在解鎖屏幕后,使用以下命令導出數據:
# dd if=/dev/block/by-name/userdata of=./userdata.bak bs=512M count=2? ? ? ?而對于使用了device-mapper技術進行加解密的。則我們需要找到經過device-mapper層后的塊設備節點。尋找device-mapper層的掛載節點可以通過執行如下指令獲得:
# cat /proc/mounts | grep data /dev/block/dm-5 /data ext4 rw,lazytime,seclabel,nosuid,nodev,noatime,discard,noauto_da_alloc,errors=panic,data=ordered 0 0? ? ? ?然后,我們就可以使用如下指令把用戶數據導出來:
# dd if=/dev/block/dm-5 of=./userdata.bak bs=512M count=2? ? ? ?而后,這里還存在一個問題,那就是這個導出來的用戶數據分區(userdata)可以存在哪里。我這里提供兩個選擇,一個是直接把它存在用戶數據分區(userdata)中;另外一個則是新建一個tmpfs分區,然后把導出來的數據存在其中。可以使用如下指令掛載一個tmpfs分區:
# mkdir /mnt/tmpfs # mount -t tmpfs tmpfs /mnt/tmpfs?
步驟二:使用dump.e2fs工具,分析文件系統的super block、checkpoint信息。
? ? ? ?為方便分析,當把用戶數據分區(userdata)導出來后,我們可以把分區數據給傳送到電腦上。采用如下命令即可:
# adb pull /data/userdata.bak ./? ? ? ?這時候,我們就可以請出我們的分析工具dump.e2fs了。它靜靜地躺在編譯后的AOSP源碼目錄下:
./out/host/linux-x86/bin/dump.f2fs? ? ? ?我們直接執行它,即可得到如下幫助信息:
chenyuwen@chenyuwen-Precision-T1700:/mnt/mydisk/AOSP$ ./out/host/linux-x86/bin/dump.f2fs Error: Device not specifiedUsage: dump.f2fs [options] device [options]:-d debug level [default:0]-i inode no (hex)-n [NAT dump nid from #1~#2 (decimal), for all 0~-1]-s [SIT dump segno from #1~#2 (decimal), for all 0~-1]-S sparse_mode-a [SSA dump segno from #1~#2 (decimal), for all 0~-1]-b blk_addr (in 4KB)-V print the version number and exit??? ? ?這幫助信息簡單明了。通過不同的參數,可以導出文件系統的NAT、SIT、和SSA信息等。參數后面跟一個數字范圍,代表需要導出的信息的范圍。當使用參數0~-1的時候,即可導出所有的信息。例如,導出所有的NAT信息:
# dump.f2fs -n 1~-1 ./userdata.bak? ? ? ?執行這個指令之后,就會在當前目錄下生成一個dump_nat文件。使用vim打開它,即可查看。
總結
以上是生活随笔為你收集整理的在Android系统中,F2FS 文件系统问题分析步骤的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: btr如何修改服务器手机版我的世界,我的
- 下一篇: 我的世界java安装_我的世界游戏安装教