linux文件備份方法,linux文件複製命令

概述

相信大家在做文件遷移時,會有人遇到過這樣一個奇怪的問題:相同的文件放置在不同的硬碟上面,佔用存儲空間相差很大,部分目錄甚至達到2倍。這裡我們先從Linux存儲的本質開始介紹。


Linux文件系統的存儲方式

在Linux系統中一個文件由目錄項、inode和數據塊組成,數據塊作為存儲的最小單元。

♦ 目錄項:包括文件名和inode節點號。

♦ Inode:又稱文件索引節點,包含文件的基礎信息以及數據塊的指針。

♦ 數據塊:包含文件的具體內容。

1、inode

理解inode,要從文件儲存說起。文件儲存在硬碟上,硬碟的最小存儲單位叫做”扇區”(Sector),每個扇區儲存512位元組(相當於0.5KB)。

操作系統讀取硬碟的時候,不會一個扇區一個扇區地讀取,這樣效率太低,而是一次性連續讀取多個扇區,即一次性讀取一個”塊”(block)。這種由多個扇區組成的”塊”,是文件存取的最小單位。”塊”的大小,最常見的是4KB,即連續八個 sector組成一個 block。

文件數據都儲存在”塊”中,那麼很顯然,我們還必須找到一個地方儲存文件的元信息,比如文件的創建者、文件的創建日期、文件的大小等等。這種儲存文件元信息的區域就叫做inode,中文譯名為”索引節點”。

 面試官:為什麼Linux文件拷貝後所佔存儲反而更大了?

2、inode的大小

inode也會消耗硬碟空間,所以硬碟格式化的時候,操作系統自動將硬碟分成兩個區域。一個是數據區,存放文件數據;另一個是inode區(inode table),存放inode所包含的信息。


磁碟存儲分析

同一個文件在不同的硬碟佔用不同的磁碟空間,從本質講是這些文件的inode和block不同導致的。而這些參數是在硬碟初始化時設定的,會不會是因為這個原因導致的呢?

通過命令dumpe2fs 查看兩塊硬碟的信息:

硬碟 1 :

 面試官:為什麼Linux文件拷貝後所佔存儲反而更大了?
 面試官:為什麼Linux文件拷貝後所佔存儲反而更大了?

硬碟 2 :

 面試官:為什麼Linux文件拷貝後所佔存儲反而更大了?
 面試官:為什麼Linux文件拷貝後所佔存儲反而更大了?

從上面可以看出硬碟1的Block size: 8192 而硬碟2為Block size: 4096,也就是說硬碟1的最小存儲單元為8K,硬碟2為4K,會不會是因為文件裡面有好多小於4K的文件,當存儲在硬碟1最少佔用8k的空間導致上面奇怪的現象?


判斷驗證

在 硬碟1創建一個空文件,並輸入一個空格保存,

#vi test.txt

使用du –sh test.txt 發現文件大小為8K 如圖:

 面試官:為什麼Linux文件拷貝後所佔存儲反而更大了?

硬碟2 做同樣的動作

 面試官:為什麼Linux文件拷貝後所佔存儲反而更大了?

判斷再驗證

拷貝硬碟的文件進行對比

硬碟2:

 面試官:為什麼Linux文件拷貝後所佔存儲反而更大了?

硬碟1:

 面試官:為什麼Linux文件拷貝後所佔存儲反而更大了?

可以發現相同的文件不同的硬碟,佔用的空間大小不同。到這裡問題也就解決了,只需要重新做一下格式化就可以了。

原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/232975.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
投稿專員的頭像投稿專員
上一篇 2024-12-11 13:24
下一篇 2024-12-11 13:24

相關推薦

發表回復

登錄後才能評論