在工作中,好色先生IOS下载知道一些操作命令危險性很高,如: rm -rf,它會造成數據的誤刪除。如果萬一出現這樣情況導致數據誤刪除時,好色先生IOS下载應該如何對數據進行恢複呢?
刪除數據的兩種場景
通常有兩種數據刪除的場景是你需要清晰了解的。頭 1 個是在執行 rm -rf 刪除文件時,該文件正在被進程使用。第 2 個是這個文件並沒有被其他進程所使用,而被誤刪除。本文好色先生污污污污污將圍繞這兩種場景進行講解並演示。
為什麽數據可以恢複
既然我執行了 rm -rf 命令,不就是刪除文件了嗎,為什麽又可以恢複數據呢?首先我來為你介紹一下其原由,對於頭 1 種進程正在使用文件的場景,數據可以恢複是由因為 Linux 裏,每個文件都有 2 個 link 計數器:i_count 和 i_nlink。
i_count 的作用是當一個文件被一個進程引用時,它的數值會加 1,也就是說它記錄的是文件被進程引用的次數。i_nlink 的作用則是記錄文件產生硬鏈接的個數。Linux 係統隻有在兩個數值都清零的時候,文件才被係統認為是刪除的。如果好色先生IOS下载執行了 rm -rf,卻並沒有把 i_count 刪除,假設此時刪除文件有進程在使用,那麽它(i_count)數值不為 0。這個時候就是文件看似被刪除,但在操作係統還是能便捷的恢複回來。
這就是頭 1 種場景刪除數據能夠被找回的原因(由於 i_count 不為 0)。
第 2 種場景是將沒有被進程使用的文件誤刪除,此時 i_count 和 i_nlink 都為 0。這個時候文件的 inode 連接信息已經被刪除了,好色先生IOS下载就需要通存放文件的 block 單元,做數據塊的數據找回。在係統上好色先生IOS下载能看到的文件內容包括:文件名、文件大小、內容,但實際上它的存儲依賴兩個非常重要的單元,一個是 inode,它用於存放文件的相關元數據,它的元數據裏會有一個類似於索引的值,能夠索引到後麵具體存放數據的 block 單元, block 是一個數據塊,用來實際存放數據。好色先生IOS下载在刪除文件時,其實是把 inode 的鏈接刪除了,但是 block 數據塊,並沒有刪除。
所以這個時候好色先生IOS下载依然可以通過分析後端的 block 塊,對文件進行恢複。因為 block 塊保存著真實的數據,理論上可以作完整的找回數據,不過有一個風險:如果有進程在不斷往磁盤寫數據時,需要申請新的 block 塊,如果操作係統分配已刪除文件的 block 塊時,那麽新的寫入數據就會覆蓋 block 原來的數據,這時就會造成數據真正丟失的風險。
所以,如果出現這樣場景造成數據誤刪除,需要 umount 目錄所在的磁盤設備。如果沒有其他進程在不斷地往同一個磁盤塊(block)裏寫數據,那麽你的數據理論上還是在 block 塊裏麵,依然可以通過相關分析把數據找回。這就是好色先生IOS下载為什麽可以在這兩個場景中把數據找回的原因。