亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 3150 | 回復(fù): 0
打印 上一主題 下一主題

修復(fù)文件系統(tǒng) [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2009-10-13 14:34 |只看該作者 |倒序?yàn)g覽
            第8章: 修復(fù)文件系統(tǒng)
            目標(biāo)
            完成這一章,你將能做以下事情:
            ※理解文件系統(tǒng)是如何進(jìn)行更新操作的
            ※理解sync是如何預(yù)防文件系統(tǒng)錯誤
            ※列出文件系統(tǒng)錯誤的三個原因
            ※使用fsck檢查和修補(bǔ)文件系統(tǒng)
            文件系統(tǒng)的維護(hù)
            日常的維護(hù)
            -檢查文件系統(tǒng)的一致性
            -執(zhí)行文件系統(tǒng)備份
            -監(jiān)控磁盤的使用情況
            系統(tǒng)管理員的一個主要的職責(zé)就是保護(hù)用戶的數(shù)據(jù)的安全。由于UNIX對數(shù)據(jù)存儲是通過文件系統(tǒng)的方式,系統(tǒng)會強(qiáng)制性檢查文件系統(tǒng)的存儲環(huán)境是否出現(xiàn)問題。文件系統(tǒng)的完整性十分重要。系統(tǒng)管理員能夠做許多工作來保護(hù)文件系統(tǒng)的完整性。
            這一章,我們會學(xué)習(xí)如何使用fsck工具來檢查和維護(hù)文件系統(tǒng)的完整性。在開始之前,我們先來了解一下文件系統(tǒng)的更新是如何發(fā)生的。
            文件系統(tǒng)的更新
            當(dāng)一個文件系統(tǒng)裝載后,它的超級塊被拷貝到內(nèi)存中。當(dāng)拷貝完成之后,文件系統(tǒng)的標(biāo)記被置為“dirty臟的”。所有的對超級塊的更改首先要去更改這個拷貝。當(dāng)一個SYNC的系統(tǒng)調(diào)用使用的時候,磁盤上的拷貝才會被更新。當(dāng)一個文件系統(tǒng)被卸載的時候,所有的在內(nèi)存中的數(shù)據(jù)會被寫回到磁盤上,文件系統(tǒng)的標(biāo)記被置為“clearn"。
            所有的對metadata進(jìn)行的修改,首先是修改內(nèi)存中的拷貝,然后才會被寫到磁盤上去。一些metadata的修改是立即寫到磁盤上,其它的則是在調(diào)用sync的時候才會被寫到磁盤上。
            舉一個例子:rm myfile命令會引起以下的一些改變:
            1.myfile的目錄的條目被清除。
            2.用來描述myfile的inode被釋放
            3.用來索引剩余數(shù)據(jù)塊和剩余inode的映射圖被更新
            4.超級塊中的剩余數(shù)據(jù)塊的數(shù)量和inode的數(shù)量必須被更新
            不幸的是,不是所有的metadata數(shù)據(jù)都是連續(xù)地存儲在磁盤上的,所以它會進(jìn)行一些寫操作來完成這些處理過程。如果系統(tǒng)在進(jìn)行這些過程中崩潰,就會使metadata數(shù)據(jù)產(chǎn)生不一致。例如如果myfile的目錄條目已經(jīng)被清除,但是inode還沒有被釋放,結(jié)果就是一個inode有一個鏈接,但是并沒有目錄結(jié)構(gòu)指向這個inode。這就是不一致的metadata。
            內(nèi)存緩沖區(qū)
            當(dāng)需要寫用戶數(shù)據(jù)的時候,實(shí)際上并不立即發(fā)生寫磁盤的動作,數(shù)據(jù)會被拷貝到一個內(nèi)存的緩沖區(qū)里。這個操作非常的快。。數(shù)據(jù),同inode信息一起,會在以后的一些時間被寫到磁盤上。通常是在緩沖區(qū)滿的時候和新需要清除一下顎緩沖空間的時候。如果系統(tǒng)在還沒有將緩沖區(qū)中的信息寫到磁盤上去,系統(tǒng)關(guān)閉。文件系統(tǒng)就會被破壞。如果你察覺文件系統(tǒng)已經(jīng)被破壞,你應(yīng)該停止當(dāng)前的工作。
            使用緩沖區(qū)的優(yōu)點(diǎn)和缺點(diǎn):
            使用緩沖區(qū)可以對磁盤進(jìn)行均勻的存取,因?yàn)閮?nèi)核不需要知道磁盤I/O的產(chǎn)生的原因。內(nèi)核只會將緩沖區(qū)寫到磁盤,而不用去關(guān)心緩沖區(qū)數(shù)據(jù)的組成。從磁盤I/O的觀點(diǎn)來看,使用緩沖區(qū),系統(tǒng)的設(shè)計(jì)會更簡單。
            通過使用緩沖區(qū),應(yīng)用程序會很容易地移植到其它的UNIX系統(tǒng)上去,因?yàn)椴煌腢NIX機(jī)器的磁盤I/O也許會不同,但是程序不需要了解這些。它們只是寫到緩沖區(qū),而不用去考慮磁盤的設(shè)置方式。
            使用緩沖區(qū)可以減少對磁盤的讀寫,這會提高整個系統(tǒng)的相應(yīng)時間。換句話說,系統(tǒng)運(yùn)行更快了。
            重復(fù)利用緩沖區(qū)中的數(shù)據(jù)文件也能夠加速系統(tǒng)。
            刷新緩沖區(qū)
                  sync
                  ※將緩沖區(qū)的內(nèi)容寫到磁盤
                  ※保持文件系統(tǒng)為最新
                  ※通常是通過syncer守護(hù)進(jìn)程來激活
                  syncer
                  ※syncer是在系統(tǒng)啟動的過程中自動啟動。
                  ※syncer程序的語法為:
                  ??syncer[seconds]
            數(shù)據(jù)在寫磁盤上之前,會寫到一個緩沖區(qū)里。而緩沖區(qū)寫到磁盤會有一個延遲,直到:
            ※系統(tǒng)需要緩沖區(qū)進(jìn)行其它的操作
            ※最后的塊被修改
            ※文件系統(tǒng)被卸載
            ※sync命令被執(zhí)行
            ※系統(tǒng)關(guān)閉或者重啟動
            syncer
            syncer通常是在系統(tǒng)啟動的時候,在/sbin/init.d/syncer腳本文件中啟動的,它的職責(zé)就是定時刷新緩沖區(qū)。你不需要直接執(zhí)行syncer命令,它會在系統(tǒng)啟動的時候,自動通過/sbin/init.d/syncer腳本執(zhí)行。
            sync
            sync執(zhí)行sync這個系統(tǒng)調(diào)用。執(zhí)行這個命令會刷新還沒有寫到磁盤上的系統(tǒng)緩沖區(qū)數(shù)據(jù),包括修改的超級塊,修改過的inode,和延遲的塊I/O,這會確保在執(zhí)行一個關(guān)鍵的操作如系統(tǒng)關(guān)閉之前,所有的文件修改都會被寫到磁盤上去。你可以在任何時候手工執(zhí)行這個命令,因?yàn)閟ync會自動執(zhí)行syncer守護(hù)進(jìn)程周期執(zhí)行的所有操作。
            介紹fsck
            為什么要運(yùn)行fsck?,
            ※檢查文件系統(tǒng)metadata的完整性
            ※在需要的時候修補(bǔ)metadata數(shù)據(jù)的損壞
            什么時候執(zhí)行fsck?
            ※在系統(tǒng)異常關(guān)閉的時候,會自動運(yùn)行這個命令。
            ※在懷疑文件系統(tǒng)被破壞的時候,可以手工運(yùn)行這個命令。
            當(dāng)操作系統(tǒng)非正常關(guān)閉的時候,文件系統(tǒng)的更改可能會丟失或者未完成。
            fsck工具在系統(tǒng)崩潰或者未正常關(guān)閉的時候會自動運(yùn)行,它會驗(yàn)證你的文件系統(tǒng)的完整性。這個工具會試圖修改任何能夠識別的數(shù)據(jù)錯誤。
            fsck在系統(tǒng)非正常關(guān)閉時會自動運(yùn)行,但是你也可以在懷疑文件系統(tǒng)有錯誤的時候手工運(yùn)行這個命令。
            運(yùn)行fsck
                  例子:在/dev/vg01/myfs2下運(yùn)行fsck
                  1.mount -v
                  2.umount /dev/vg01/myfs2
                  3.fsck -F hfs /dev/vg01/rmyfs2
                  4 mount /dev/vg01/myfs2
                  5. 恢復(fù)任何被破壞的文件:
                  ※fsck刪除任何文件嗎?
                  ※fsck重新連接任何文件嗎?
            運(yùn)行fsck要進(jìn)行的步驟:
            1.mount -v
            使用這個命令來判斷每一個一個文件系統(tǒng)裝載的目標(biāo)。和文件系統(tǒng)的類型,因?yàn)槟阍谶\(yùn)行fsck的時候必須要知道文件類型。
            2.?umount /dev/vg01/myfs1
            ??umount /dev/vg01/myfs2
            fsck必須在一個靜態(tài)的文件系統(tǒng)上運(yùn)行,因此在執(zhí)行命令之前要卸載文件系統(tǒng).
            3.?fsck -F vxfs /dev/vg01/rmyfs1
            ??fsck -F hfs /dev/vg01/rmyfs2
            在運(yùn)行fsck的時候,你必須要指明你要檢查的文件系統(tǒng)的類型。為了達(dá)到最優(yōu)的性能,可以指明包含文件系統(tǒng)的地邏輯卷或者磁盤的裸設(shè)備文件名。
            當(dāng)fsck檢查到一個文件系統(tǒng)不完整,它會報告這個問題,然后詢問是否對其進(jìn)行修復(fù)。
            如果你回答”yes”,fsck會試圖修正這個問題。如果你回答“no”,fsck會忽略這個問題,繼續(xù)進(jìn)行檢查。一般都要選擇"yes",讓系統(tǒng)自動修復(fù)發(fā)現(xiàn)的問題。
            4.?mount /dev/vg01/myfs1
            ??mount /dev/vg01/myfs2
            在fsck完成之后,重新裝載這個文件系統(tǒng)。
            5.恢復(fù)任何被破壞的文件
            為了修正文件系統(tǒng)的錯誤,fsck會刪除一個或者多個文件,觀察fsck輸出的”REMOVE"的信息,確保從磁帶上恢復(fù)受影響的文件。
            fsck會重新鏈接孤兒文件。如果和看到任何重鏈接的信息,檢查文件系統(tǒng)的lost+found目錄。下一章會討論lost+found目錄的細(xì)節(jié)。
            檢查lost+found
            ※存在每一個文件系統(tǒng)中
            ※fsck會拷貝孤兒文件到這些目錄下去。
            ※在每一次fsck完成之后應(yīng)該檢查這個文件
            在每一個文件系統(tǒng)的root目錄下,都應(yīng)該有一個lost+found目錄。這個目錄是newfs命令創(chuàng)建的。在使用fsck命令檢查這個文件系統(tǒng)的時候,你應(yīng)該檢查這個目錄是否存在,如果不存在,你可以通過/usr/sbin/mklost_found命令來重新創(chuàng)建這個目錄。
            fsck將所有檢查有問題的文件放在lost+found目錄下。在fsck完成之后,你應(yīng)該檢查這個目錄的內(nèi)容。這個目錄中的文件可以被移動回它們原始的目錄。文件名是以inode號來命名,所以判斷文件實(shí)際上是屬于那個文件,這十分困難。但是你應(yīng)該試圖找到文件的屬主。對這個文件運(yùn)行file命令。如果這個文件包含文本,查看文本的內(nèi)容來確定文件的屬主。如果文件包含可執(zhí)行代碼,你可檢查是否有SCCS確認(rèn)字符串,如果有,使用what命令可以列出SCCS信息。如果這個文件沒有SCCS字符串,你可以使用strings命令來查看文件的字符。這些字符能幫助確認(rèn)文件屬主。不要試圖通過執(zhí)行在lost+found目錄中的可執(zhí)行文件來找出這個文件是什么文件,因?yàn)樗赡苁瞧茐倪@個磁盤的文件。
            例子:
            # cd /myfs2/lost+found
            # ls -l \#1743
            # file /#1743
            # strings \#1743
            # move \#1743 new_file_name


本文來自ChinaUnix博客,如果查看原文請點(diǎn):http://blog.chinaunix.net/u2/84425/showart_2069351.html
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP