亚洲韩日午夜视频,欧美日韩在线精品一区二区三区,韩国超清无码一区二区三区,亚洲国产成人影院播放,久草新在线,在线看片AV色

您好,歡迎來到思海網絡,我們將竭誠為您提供優質的服務! 誠征網絡推廣 | 網站備案 | 幫助中心 | 軟件下載 | 購買流程 | 付款方式 | 聯系我們 [ 會員登錄/注冊 ]
促銷推廣
客服中心
業務咨詢
有事點擊這里…  531199185
有事點擊這里…  61352289
點擊這里給我發消息  81721488
有事點擊這里…  376585780
有事點擊這里…  872642803
有事點擊這里…  459248018
有事點擊這里…  61352288
有事點擊這里…  380791050
技術支持
有事點擊這里…  714236853
有事點擊這里…  719304487
有事點擊這里…  1208894568
有事點擊這里…  61352289
在線客服
有事點擊這里…  531199185
有事點擊這里…  61352288
有事點擊這里…  983054746
有事點擊這里…  893984210
當前位置:首頁 >> 技術文章 >> 文章瀏覽
技術文章

恢復已刪除的Linux文件

添加時間:2017-9-18 20:21:36  添加: 思海網絡 
作為一個多用戶、多任務的操作系統,Linux下的文件一旦被刪除,是難以恢復的。盡管刪除命令只是在文件節點中作刪除標記,并不真正清除文件內容,但是其他用戶和一些有寫盤動作的進程會很快覆蓋這些數據。

  1、Ext2文件系統結構的簡單介紹

  在Linux所用的Ext2文件系統中,文件是以塊為單位存儲的,默認情況下每個塊的大小是1K,不同的塊以塊號區分。每個文件還有一個節點,節點中包含有文件所有者,讀寫權限,文件類型等信息。對于一個小于12個塊的文件,在節點中直接存儲文件數據塊的塊號。如果文件大于12個塊,那么節點在 12個塊號之后存儲一個間接塊的塊號,在這個間接塊號所對應的塊中,存儲有256個文件數據塊的塊號(Ext2fs中每個塊號占用4字節,這樣一個塊中所能存儲的塊號就是1024/4=256)。如果有更大的文件,那么還會在節點中出現二級間接塊和**間接塊。

  2、恢復被誤刪文件的方法

  大多數Linux發行版都提供一個debugfs工具,可以用來對Ext2文件系統進行編輯操作。不過在使用這個工具之前,還有一些工作要做。

  首先以只讀方式重新掛載被誤刪的文件所在分區。使用如下命令:(假設文件在/usr分區)

  mount –r –n –o remount /usr -r表示只讀方式掛載;-n表示不寫入/etc/mtab,如果是恢復/etc上的文件,就加上這個參數。如果系統說xxx partion busy,可以用fuser命令查看一下是哪些進程使用這個分區上的文件:

  fuser –v –m /usr

  如果沒有什么重要的進程,用以下命令停掉它們:

  fuser -k –v –m /usr

  然后就可以重新掛載這些文件系統了。

  如果是把所有的文件統一安裝在一個大的/分區當中,可以在boot提示符下用linux single進入單用戶模式,盡量減少系統進程向硬盤寫入數據的機會,要不干脆把硬盤掛在別的機器上。另外,恢復出來的數據不要寫到/上面,避免破壞那些有用的數據。如果機器上有dos/windows,可以寫到這些分區上面:

  mount –r –n /dev/hda1 /mnt/had

  然后就可以執行debugfs:(假設Linux在 /dev/hda5)

  #debugfs /dev/hda5

  就會出現debugfs提示符debugfs:

  使用lsdel命令可以列出很多被刪除的文件的信息:

Word-WRAP: break-word" bgColor=#f3f3f3>      debugfs:lsdel
  debugfs: 2692 deleted inodes found.
  Inode Owner Mode Size Blocks Time deleted
  164821 0 100600 8192 1/ 1 Sun May 13 19:22:46 2001
  36137 0 100644 4 1/ 1 Tue Apr 24 10:11:15 2001
  196829 0 100644 149500 38/ 38 Mon May 27 13:52:04 2001

  列出的文件有很多(這里找到2692個),第一字段是文件節點號,第二字段是文件所有者,第三字段是讀寫權限,接下來是文件大小,占用塊數,刪除時間。

  然后就可以根據文件大小和刪除日期判斷那些是我們需要的。比如我們要恢復節點是196829的文件:

  可以先看看文件數據狀態:

      debugfs:stat <196829>
  Inode: 196829 Type: regular Mode: 0644 Flags: 0x0 Version: 1
  User: 0 Group: 0 Size: 149500
  File ACL: 0 Directory ACL: 0
  Links: 0 Blockcount: 38
  Fragment: Address: 0 Number: 0 Size: 0
  ctime: 0x31a9a574 -- Mon May 27 13:52:04 2001
  atime: 0x31a21dd1 -- Tue May 21 20:47:29 2001
  mtime: 0x313bf4d7 -- Tue Mar 5 08:01:27 2001


  dtime: 0x31a9a574 -- Mon May 27 13:52:04 2001
  BLOCKS:
  594810 594811 594814 594815 594816 594817
  TOTAL: 38

  然后就可以用dump指令恢復文件:

  debugfs:dump <196829> /mnt/hda/01.sav

  這樣就把文件恢復出來了。退出debugfs:

  debugfs:quit

  另一種方法是手工編輯inode:

      debugfs:mi <196829>
  Mode [0100644]
  User ID [0]
  Group ID [0]
  Size [149500]
  Creation time [0x31a9a574]
  Modification time [0x31a9a574]
  Access time [0x31a21dd1]
  Deletion time [0x31a9a574] 0
  Link count [0] 1
  Block count [38]
  File flags [0x0]
  Reserved1 [0]
  File acl [0]
  Directory acl [0]
  Fragment address [0]
  Fragment number [0]
  Fragment size [0]
  Direct Block #0 [594810]
  Triple Indirect Block [0]

  使用mi指令后每次顯示一行信息以供編輯,其它行可以直接按回車表示確認,把deletion time改成0(未刪除),Link count改成1。改好后退出debugfs:

  debugfs:quit

  然后用fsck檢查/dev/hda5

  fsck /dev/hda5

  程序會說找到丟失的數據塊,放在lost+found里面。這個目錄里的文件就是我們要的了。 

 

關鍵字:Linux、文件、數據

分享到:

頂部 】 【 關閉
版權所有:佛山思海電腦網絡有限公司 ©1998-2024 All Rights Reserved.
聯系電話:(0757)22630313、22633833
中華人民共和國增值電信業務經營許可證: 粵B1.B2-20030321 備案號:粵B2-20030321-1
網站公安備案編號:44060602000007 交互式欄目專項備案編號:200303DD003  
察察 工商 網安 舉報有獎  警警  手機打開網站