成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

全面對Linux文件系統解說反刪除方法

運維 系統運維
在Linux文件系統所用的Ext2文件系統中,文件是以塊為單位存儲的,默認情況下每個塊的大小是1K,不同的塊以塊號區分。每個文件還有一個節點,節點中包含有文件所有者,讀寫權限,文件類型等信息。

本人很喜歡Linux文件系統,下面就這個問題來詳細說說Linux文件系統的反刪除方法。Linux是由開發工具軟件、編輯器軟件、CPU圖形用戶界面、網絡工具軟件等組成的一個完整的軟件包。Linux具備現代一切功能完整的UNIX系統所具備的全部特征。

作為一個多用戶、多任務的操作系統,Linux文件系統一旦被刪除,是難以恢復的。盡管刪除命令只是在文件節點中作刪除標記,并不真正清除文件內容,但是其他用戶和一些有寫盤動作的進程會很快覆蓋這些數據。不過,對于家庭單機使用的Linux文件系統,或者誤刪文件后及時補救,還是可以恢復的。

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

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

恢復被誤刪文件的方法

大多數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
然后就可以重新掛載這些Linux文件系統了。

如果是把所有的文件統一安裝在一個大的/分區當中,可以在boot提示符下用linux single進入單用戶模式,盡量減少系統進程向硬盤寫入數據的機會,要不干脆把硬盤掛在別的機器上。另外,恢復出來的數據不要寫到/上面,避免破壞那些有用的數據。如果機器上有dos/windows,可以寫到這些分區上面:
mount –r –n /dev/hda1 /mnt/had
然后就可以執行debugfs:(假設Linux在 /dev/hda5)
#debugfs /dev/hda5
就會出現debugfs提示符debugfs:
使用lsdel命令可以列出很多被刪除的文件的信息:
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
debugfs:
列出的文件有很多(這里找到2692個),***字段是文件節點號,第二字段是文件所有者,第三字段是讀寫權限,接下來是文件大小,占用塊數,刪除時間。然后就可以根據文件大小和刪除日期判斷那些是我們需要的。比如我們要恢復節點是196829的文件:
可以先看看文件數據狀態:
debugfs:stat 
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  /mnt/hda/01.sav
這樣就把文件恢復出來了。退出debugfs:
debugfs:quit
另一種方法是手工編輯inode:
debugfs:mi 
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里面。這個目錄里的文件就是我們要的東東。
Now all O.K. Good Luck.

Linux文件系統分區方案

硬盤的分區由主分區、擴展分區和邏輯分區組成;所以我們在對硬盤分區時要遵循這個標準;主分區(包括擴展分區)的***個數是四個,主分區(包含擴展分區)的個數硬盤的主引導記錄MBR(Master Boot Recorder)決定的,MBR存放啟動管理程序(GRUB,LILO,NTLOARDER等)和分區表記錄。其中擴展分區也算一個主分區;擴展分區下可以包含更多的邏輯分區;所以主分區(包括擴展分區)范圍是從1-4,邏輯分區是從5開始的;
關于一個磁盤的分區,一個磁盤應該有四個主分區,其中擴展也算一個主分區;存在以下分配方案:
1)分區結構之一:四個主分區,沒有擴展分區;[主|分區1] [主分|區2] [主|分區3] [主|分區4]這種情況,如果您想在一個磁盤上劃分五個以上分區,這樣是行不通的;三個主分區 一個擴展分區;[主|分區1] [主|分區2] [主|分區3] [擴展分區][邏輯|分區5] [邏輯|分區6] [邏輯|分區7] [邏輯|分區8] 這種情況行得通,而且分區的自由度比較大;分區也不受約束,能分超過5個分區;這只是舉一個例子;
2)最合理的的分區方式;
最合理的分區結構:主分區在前,擴展分區在后,然后在擴展分區中劃分邏輯分區;主分區的個數+擴展分區個數要控制在四個之內;比如下面的分區是比較好的;[主|分區1] [主|分區2] [主|分區3] [擴展分區][邏輯|分區5] [邏輯|分區6] [邏輯|分區7] [邏輯|分區8] ... ...
[主|分區1] [主|分區2] [擴展分區][邏輯|分區5] [邏輯|分區6] [邏輯|分區7] [邏輯|分區8] ... ...
[主|分區1] [擴展分區][邏輯|分區5] [邏輯|分區6] [邏輯|分區7] [邏輯|分區8] ... ...
最不合理的分區結構:主分區包圍擴展分區;比如下面的;
[主|分區1] [主|分區2] [擴展分區] [主|分區4] [空白未分區空間][邏輯|分區5] [邏輯|分區6] [邏輯|分區7] [邏輯|分區8] ... ...
這樣 [主|分區2] 和 [主|分區4] 之間的 [擴展分區] 是有自由度,但[主|分區4]后的[空白未分區空間]怎么辦?除非把主分區4完全利用擴展分區后的空間,否則您想在主分區4后再劃一個分區是不可能的,劃分邏輯分區更不可能; 雖然類似此種辦法也符合一個磁盤四個主分區的標準,但這樣主分區包圍擴展分區的分區方法實在不可取;

推薦的分區方案

盡管可以將Red Hat Linux裝在一個單一的大分區中,但更好的主意是將它分開. 綜合了單一分區的簡單性和多分區的靈活性,推薦以下配置:
注意: 如果想安裝Red Hat Linux的所有軟件包, 必須使用較大的分區尺寸。一個交換分區 -- 交換分區用來支持虛擬內存。交換分區一般是內存的兩倍大小。一個根分區 -- 根分區是/(根目錄)所在地. 它只需要啟動系統所須的文件和系統配置文件. 對于大多數系統50MB到100MB的根分區可以工作的很好. 一個 /usr 分區 -- /usr 是Red Hat Linux文件系統的許多軟件的所在的地方. 根據您交換安裝的包的數量, 這個分區應該在300MB到700MB之間. 如果可能, 將*** 的空間用于/usr分區. 任何您以后將要安裝的基于RPM的包都會使用比其他 分區更多的/usr空間.
一個 /home 分區 -- 這是用戶的home目錄所在地; 它的大小取決于您的Red Hat Linux文件系統有多少用戶, 以及這些用戶將存放多少數據.
[下面這個分區只適用于Red Hat Linux/Alpha的安裝.

一個MILO分區 -- 使用MILO啟動系統的Alpha用戶需要創建一個1.5MB的DOS分區, 在安裝結束時MILO可以拷貝到這個分區.。
另外, 用戶環境可能會要求創建一個和多個以下的分區: 一個 /usr/local 分區 -- 一般, /usr/local用來存放與其余Red Hat Linux文件系統 不同的軟件, 如不是RPM包的軟件. 它的大小取決于準備存放的這些軟件的數量. 一個 /usr/src 分區 --  Red Hat Linux文件系統中, /usr/src通常存放兩樣東西:
Linux文件系統內核源程序 -- Linux內核的所有源程序都放在這, 新的內核也在這創建. 目前, 內核源程序大概30MB。注意:可能需要更多的空間來創建內核, 或保存幾個不同版本的內核.
RPM包的源程序 -- 如果安裝了包的源程序, 文件將存放在這. 注意:除非特別指定, 創建包也將使用在這的一個'創建目錄'. here.
同樣, 這個分區的尺寸也取決于將在這安裝的軟件的數量。
一個 /tmp 分區 -- 就象它的名字, /tmp分區用來存放臨時文件。對于一個大型的, 多用戶的系統或者網絡服務器, 專門創建一個/tmp分區是一個好主意. 對于一個單用戶的工作站, 就不必專門創建一個/tmp分區了。
一個 /var 分區 -- Red Hat Linux文件系統將把日志寫在/var/log。 打印 隊列的文件通常寫在/var/spool。 這只是兩個寫在/var的例子。 除非特別配置, /var將是根Linux文件系統的一部分, 通常不占很多空間。 如果系統有很多打印, 郵件, 或者日志, 可以考慮專門創建一個/var分區。 一般來講, 只有多用戶或者服務器才需要專門的/var分區。
一個 /boot 分區 -- 這里提到的分區多數是針對大的系統,這個分區則對空間很少的小的系統很有用。所有LILO啟動需要的文件都在/boot目錄。因為/boot中的這些文件(包括Linux內核)占 1M空間, 如果很難為LILO要用的根分區安排100MB空間, 可以只用5-10MB (通常不用那么多)的分區來存放/boot。 雖然仍需要創建一個根分區, 但這時它可以在系統的任何地方 -- BIOS的限制僅適用含有/boot的分區。

Linux文件系統下加掛

在使用Linux文件系統的過程,常常使用虛擬文件系統VFS,通過VFS可以直接存取其它已被內核支持的各種Linux文件系統,用起來就像是在普通的 Linux的ext系列文件系統一樣。只是有一些如NTFS需要重新編譯內核才能支持。
Linux文件系統下加掛一個使用的是mount命令,用man mount命令可以得到命令參數的詳細解釋。下面就來介紹一下在幾種情況下以命令行方式加掛文件系統的具體方法:
1.加掛FAT32文件系統
最簡單的用法:mount /dev/hda6 /mnt/d   
其中,/dev/hda6是筆者Windows的D盤,/mnt/d是目錄加掛點。Linux文件系統會識別到/dev/hda6分區的文件系統類型是什么,然后加掛。當然也可以指定分區的文件系統類型,命令如下:
mount -t vfat /dev/hda6 /mnt/d
在實際中操作中,直接加掛一個windows的分區,中文的文件名和目錄名會出現亂碼,為了避免這種情況可以指定字符集,命令如下:
mount /dev/hda6 /mnt/d -o codepage=936,iocharset=cp936
mount -t vfat /dev/hda6 /mnt/d -o codepage=936,iocharset=cp936   
2.加掛NTFS文件系統
在目前多數的Linux文件系統版本上,需要重編譯Linux核心才能,加掛NTFS分區(參閱
http://www.linux-ntfs.org/
)。核心支持NTFS后,可以用以下命令加掛:
mount -t /dev/hda2 /mnt/c
同樣對于中文的文件名和目錄名會出現亂碼的問題可以指定字符集,不過和加掛vfat分區不同,實際中用以下命令是可行的:
mount -t ntfs -o iocharset=cp936 /dev/hda2 /mnt/c -r
mount -t ntfs -o iocharset=cp936,rw /dev/hda2 /mnt/c
3.加掛U盤/移動硬盤上的文件系統
現在使用U盤的人越來越多了,其實在Linux文件系統下使用U盤也非常簡單,Linux對USB設備有很好的支持,在插入U盤后,U盤被識別為一個SCSI盤,通常您用以下命令就能加掛U盤上的文件系統
mount /dev/sda1 /usb
同樣對于中文的文件名和目錄名會出現亂碼的問題可以指定字符集,命令類似于上面對FAT32介紹的:
mount /dev/sda1 /usb -o pagecode=936,iocharset=cp936
4.加掛Linux文件系統通過samba共享出來的目錄
利用samba共享出來的目錄其實很難說其原來是哪種文件系統,不過這一點不重要,只要它對用戶是透明的就好啦。加掛時,我們指定類型為smbfs,在加掛samba共享的分區時,也會出現中文的文件名和目錄名亂碼情況,可以用以下命令加掛:
mount -t smbfs -o
username=terry,password=terry,codepage=936,iocharset=cp936
//terry-linux/terry /mp3/
mount -t smbfs -o
username=terry,password=terry,codepage=936,iocharset=cp936
//192.168.100.228/terry /mp3/
注意:可以不直接寫password=terry這個參數,系統界時會要你輸入密碼,這樣就可以防止有人直接看到你的密碼。視具體情況而定,-o后面的參數可以對應增減。
5.加掛Window系統共享出來的目錄
在局域網中,常常需要去訪問其它Windows系統共享出來的目錄。在Linux文件系統下,安裝了samba后就可以使用samba中帶的命令來訪問Windows機器的共享資源。
用smbclient來列出Windows機器的共享資源
smbclient -L 192.168.100.111
根據上面所列出Windows的共享資源后,可以選擇需要加掛到本地Linux文件系統中去的Windows的共享資源,然后使用smbmount或mount來加掛,請參照下面幾條命令:
smbmount //192.168.100.111/public /public/
mount //192.168.100.111/d /mnt/cdrom -o username=terry (這樣要在命令行輸入密碼的)
mount //192.168.100.111/d /mnt/cdrom -o username=terry$1234 (這樣則不必在命令行輸入密碼)
注:除了上面介紹的命令行方法,***的方法就是使用其它的客戶端,如LinNeighborhood、networkneighbours、ksmbshare等,請參考其它文章。

以上介紹的都是命令行的方式,每次使用時都要輸入一次,如果你常常要加掛一些Linux文件系統,想在啟動時自動加掛應該怎樣做呢?下面介紹兩種方法:
方法1.
把加掛的命令放在/etc/rc.d/rc.local中。
方法2.
修改分區配置文件/etc/fstab,在啟動時加掛Linux文件系統,下面是我的/etc/fstab文件:
LABEL=/  /    ext3  defaults1 1
none    /dev/pts   devpts   gid=5,mode=6200 0
LABEL=/home  /home    ext3    defaults  1 2
none      /proc    proc    defaults  0 0
none      /dev/shm   tmpfs    defaults  0 0
/dev/hda4   swap     swap    defaults  0 0
/dev/cdrom   /mnt/cdrom        iso9660
noauto,owner,kudzu,ro 0 0
/dev/hda2  /ntfs ntfs defaults,iocharset=cp936  0 0
/dev/hda6  /win  vfat  defaults,codepage=936,iocharset=cp936 0 0
//192.168.100.228/terry /mp3  smbfs  username=terry,password=terry,codepage=cp936,iocharset=cp936 0 0
注意***三行:
倒數第四行,加掛我的C盤,NTFS格式的
倒數第三行,加掛我的D盤,FAT32格式的
倒數第二行,加掛的是我的局域網中另一臺安裝samba的Linux文件系統服務器

【編輯推薦】

  1. 簡單講述Linux文件系統分區了解
  2. Linux文件系統安裝模塊化講解
  3. Linux文件系統類型***入門
  4. 綜合講解linux文件系統分類
  5. 兩個Linux文件系統性能測試工具
責任編輯:佚名 來源: CSDN
相關推薦

2010-02-25 14:50:59

Linux文件系統

2010-11-15 16:41:29

Oracle文件

2011-01-13 14:10:30

Linux文件系統

2010-01-14 09:52:27

linux文件系統

2009-03-10 19:19:16

Linux日志文件系統安裝使用

2020-07-22 14:53:06

Linux系統虛擬文件

2011-01-25 10:27:12

Linux 文件系統屬

2021-06-06 16:55:22

Linux文件系統

2021-04-12 05:44:44

Linux文件系統

2010-04-22 14:45:31

Aix操作系統

2010-03-05 15:49:56

Android界面

2009-12-16 10:21:08

Fedora 8系統

2021-01-18 15:04:53

Linux內核開發者刪除

2009-12-22 15:12:33

Linux擴展文件系統

2009-12-25 09:58:46

linux劃分文件系統

2013-06-05 11:41:53

2009-12-14 13:14:57

2021-11-01 13:38:55

Linux文件系統

2011-01-13 13:18:38

Linux網絡文件

2019-09-20 10:04:45

Linux系統虛擬文件
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久av一区二区三区 | 国产一区免费视频 | 精品欧美一区二区三区久久久 | 日韩在线播放一区 | 91久久精品一区二区二区 | 日韩三级免费网站 | 欧美三级在线 | 国产精品入口久久 | 久久久久亚洲 | 久久久久久国产精品免费免费男同 | 日韩在线一区二区三区 | caoporn国产精品免费公开 | 久久网亚洲 | 亚洲巨乳自拍在线视频 | 99精品免费久久久久久久久日本 | 女同av亚洲女人天堂 | 黑人巨大精品欧美黑白配亚洲 | 久久神马 | 福利视频二区 | 91精品国产综合久久久久久丝袜 | 欧洲尺码日本国产精品 | a级黄色片视频 | 欧美一区二区免费 | ww亚洲ww亚在线观看 | 成人在线视频网 | 精品视频在线一区 | 国产精品黄色 | 亚洲喷水| 国产亚洲精品久久久久久牛牛 | 久久亚洲春色中文字幕久久久 | 懂色中文一区二区在线播放 | 久久网站免费视频 | 日韩在线免费播放 | 欧美中文字幕在线观看 | 亚洲精品视频导航 | 成人久草 | 日韩精品在线网站 | 一区二区在线免费观看 | 青娱乐国产| 久在线 | 亚洲第一天堂 |