本篇內(nèi)容主要講解“怎么在Linux中整理磁盤碎片”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“怎么在Linux中整理磁盤碎片”吧!
成都創(chuàng)新互聯(lián)專業(yè)提供成都主機(jī)托管四川主機(jī)托管成都服務(wù)器托管四川服務(wù)器托管,支持按月付款!我們的承諾:貴族品質(zhì)、平民價(jià)格,機(jī)房位于中國(guó)電信/網(wǎng)通/移動(dòng)機(jī)房,成都機(jī)柜租用服務(wù)有保障!
什么是磁盤碎片
文件系統(tǒng)會(huì)按塊更新文件,如果這些塊沒(méi)有連成一整塊而是分布在磁盤的各個(gè)角落中時(shí),就會(huì)形成磁盤碎片。這對(duì)于 FAT 和 FAT32 文件系統(tǒng)而言是這樣的。在 NTFS 中這種情況有所減輕,但在 Linux(extX)中卻幾乎不會(huì)發(fā)生。下面是原因:
在像 FAT 和 FAT32 這類文件系統(tǒng)中,文件緊挨著寫入到磁盤中。文件之間沒(méi)有空間來(lái)用于增長(zhǎng)或者更新:
NTFS 中在文件之間保留了一些空間,因此有空間進(jìn)行增長(zhǎng)。但因塊之間的空間是有限的,碎片也會(huì)隨著時(shí)間出現(xiàn)。
Linux 的日志型文件系統(tǒng)采用了一個(gè)不同的方案。與文件相互挨著不同,每個(gè)文件分布在磁盤的各處,每個(gè)文件之間留下了大量的剩余空間。這就給文件更新和增長(zhǎng)留下了很大的空間,碎片很少會(huì)發(fā)生。
此外,碎片一旦出現(xiàn)了,大多數(shù) Linux 文件系統(tǒng)會(huì)嘗試將文件和塊重新連續(xù)起來(lái)。
Linux 中的磁盤整理
除非你用的是一個(gè)很小的硬盤或者空間不夠了,不然 Linux 很少會(huì)需要磁盤整理。一些可能需要磁盤整理的情況包括:
◆如果你編輯的是大型視頻文件或者 RAW 照片,但磁盤空間有限
◆如果你使用一個(gè)老式硬件,如舊筆記本,你的硬盤會(huì)很小
◆如果你的磁盤開(kāi)始滿了(大約使用了85%)
◆如果你的家目錄中有許多小分區(qū)
***的解決方案是購(gòu)買一個(gè)大硬盤。如果不可能,磁盤碎片整理就很有用了。
如何檢查碎片
fsck
命令會(huì)為你做這個(gè),換句話說(shuō),如果你可以在 LiveCD 中運(yùn)行它,那么就可以用于所有卸載的分區(qū)。
這一點(diǎn)很重要:在已經(jīng)掛載的分區(qū)中運(yùn)行 fsck 將會(huì)嚴(yán)重危害到你的數(shù)據(jù)和磁盤。
你已經(jīng)被警告過(guò)了。開(kāi)始之前,先做一個(gè)完整的備份。
免責(zé)聲明: 本文的作者與本站將不會(huì)對(duì)您的文件、數(shù)據(jù)、系統(tǒng)或者其他損害負(fù)責(zé)。你需要自己承擔(dān)風(fēng)險(xiǎn)。如果你繼續(xù),你需要接受并了解這點(diǎn)。
你應(yīng)該啟動(dòng)到一個(gè) live 會(huì)話中(如使用安裝磁盤,系統(tǒng)救援CD等)并在你卸載的分區(qū)上運(yùn)行 fsck
。要檢查是否有任何問(wèn)題,請(qǐng)?jiān)谑褂?root 權(quán)限運(yùn)行下面的命令:
fsck -fn [/path/to/your/partition]
您可以運(yùn)行以下命令找到分區(qū)的路徑
sudo fdisk -l
有一個(gè)在已掛載的分區(qū)中運(yùn)行 fsck
(相對(duì))安全的方法是使用-n
開(kāi)關(guān)。這會(huì)對(duì)分區(qū)進(jìn)行只讀文件系統(tǒng)檢查,而不會(huì)寫入任何東西。當(dāng)然,這并不能保證十分安全,你應(yīng)該在創(chuàng)建備份之后進(jìn)行。在 ext2 中,運(yùn)行:
sudo fsck.ext2 -fn /path/to/your/partition
這會(huì)產(chǎn)生大量的輸出,大多數(shù)錯(cuò)誤信息的原因是分區(qū)已經(jīng)掛載了。***會(huì)給出一個(gè)碎片相關(guān)的信息。
如果碎片率大于 20% 了,那么你應(yīng)該開(kāi)始整理你的磁盤碎片了。
如何簡(jiǎn)單地在 Linux 中整理碎片
你要做的是備份你所有的文件和數(shù)據(jù)到另外一塊硬盤中(手動(dòng)復(fù)制他們),格式化分區(qū),然后重新復(fù)制回去(不要使用備份軟件)。日志型文件系統(tǒng)會(huì)把它們作為新的文件,并將它們整齊地放置到磁盤中而不產(chǎn)生碎片。
要備份你的文件,運(yùn)行:
cp -afv [/path/to/source/partition]/* [/path/to/destination/folder]
記住星號(hào)(*)是很重要的。
注意:通常認(rèn)為復(fù)制大文件或者大量文件,使用 dd
或許是***的。這是一個(gè)非常底層的操作,它會(huì)復(fù)制一切,包含空閑的空間甚至是留下的垃圾。這不是我們想要的,因此這里***使用 cp
。
現(xiàn)在你只需要?jiǎng)h除源文件。
sudo rm -rf [/path/to/source/partition]/*
可選:你可以使用如下命令將空閑空間用零填充。也可以用格式化來(lái)達(dá)到這點(diǎn),但是如果你并沒(méi)有復(fù)制整個(gè)分區(qū)而僅僅是復(fù)制大文件(它通常會(huì)形成碎片)的話,就不應(yīng)該使用格式化的方法了。
sudo dd if=/dev/zero of=[/path/to/source/partition]/temp-zero.txt
等待它結(jié)束。你可以用 pv
來(lái)監(jiān)測(cè)進(jìn)度。
sudo apt-get install pvsudo pv -tpreb | of=[/path/to/source/partition]/temp-zero.txt
這就完成了,只要?jiǎng)h除這個(gè)用于填充的臨時(shí)文件就行。
sudo rm [/path/to/source/partition]/temp-zero.txt
待你清零了空閑空間(或者跳過(guò)了這步)。重新復(fù)制回文件,將***個(gè)cp
命令翻轉(zhuǎn)一下:
cp -afv [/path/to/original/destination/folder]/* [/path/to/original/source/partition]
使用 e4defrag
如果你想要簡(jiǎn)單的方法,安裝 e2fsprogs
。
sudo apt-get install e2fsprogs
用 root 權(quán)限在分區(qū)中運(yùn)行 e4defrag
。如果你不想或不能卸載該分區(qū),你可以使用它的掛載點(diǎn)而不是路徑。要整理整個(gè)系統(tǒng)的碎片,運(yùn)行:
sudo e4defrag /
在掛載的情況下不保證成功(你也應(yīng)該在它運(yùn)行時(shí)不要使用你的系統(tǒng)),但是它比復(fù)制全部文件再重新復(fù)制回來(lái)簡(jiǎn)單多了。
總結(jié)
linux 系統(tǒng)中由于它的日志型文件系統(tǒng)有效的數(shù)據(jù)處理很少會(huì)出現(xiàn)碎片。如果你因任何原因產(chǎn)生了碎片,簡(jiǎn)單的方法是重新分配你的磁盤,如復(fù)制出去所有文件并復(fù)制回來(lái),或者使用e4defrag
。然而重要的是保證你數(shù)據(jù)的安全,因此在進(jìn)行任何可能影響你全部或者大多數(shù)文件的操作之前,確保你的文件已經(jīng)被備份到了另外一個(gè)安全的地方去了。
到此,相信大家對(duì)“怎么在Linux中整理磁盤碎片”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!