2012-09-11 54 views
5

從/ dev/block/mmcblk0p1讀取最新數據時,從/ dev/block/mmcblk0讀取返回的舊數據。我的問題是,如果數據寫入/ dev/block/mmcblk0,linux會保持備份嗎?這是因爲我能夠通過讀取該節點來讀取SD卡的舊內容。讀取/ dev/block/mmcblk0和/ dev/block/mmcblk0p1之間的差異

+5

您確定它正在返回「舊數據」,就像在寫入數據之前一樣?這聽起來像這兩個塊設備是整個磁盤和第一個分區。 mmcblk0p1上的IO就像在mmcblk0上用偏移量讀/寫一樣。 – cdleonard

+3

cdleonard是正確的。 mmcblk0是整個磁盤(從引導扇區開始幷包含分區表),mmcblk0p1是第一個分區。 mmcblk0無法包含「舊」數據。 – Gnurou

回答

9

Linux內核中的mmc子系統註冊格式爲mmcblkXpY的設備節點。

  • withing Linux內核註冊的每個MMC裝置接收到它自己的MMC設備編號X
  • 在特定裝置上的每個分區接收它自己的號碼ý

普通文件I /可安裝指向一個分區的設備節點之後執行O操作。

另請注意,除非/dev/mmcblkX設備上存在有效的分區表,否則系統上將不會有後續的/dev/mmcblkXpY節點。