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

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

Chinaunix

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

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

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


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

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

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP