1. 程式人生 > >2.1 linux 儲存結構和硬碟劃分

2.1 linux 儲存結構和硬碟劃分

 2.1 一切從“/”開始

Linux系統中的目錄、字元裝置、塊裝置、套接字、印表機等等都被抽象成了檔案,即劉遄老師所一直強調的——Linux系統中一切都是檔案。既然平時跟咱們打交道的都是檔案,那麼又應該如何的找到它們呢?在Windows作業系統中想要找到一個檔案,肯定就要依次進入“D盤”後再進入某某目錄中找到所需要的檔案,但在Linux系統中可並不存在C/D/E/F碟符呦,一切的檔案都是從“根(/)”目錄開始的,按照FHS檔案系統層次結構標準協定採用樹形結構來存放檔案並定義了每個區域的用途。另外在Linux系統中的檔案及目錄名稱是嚴格區分大小寫的,例如root、rOOt、Root、rooT等等均代表是不同的獨立目錄,並且名稱中不得包含斜槓(/)。如圖6-1所示:

第6章 儲存結構與磁碟劃分。第6章 儲存結構與磁碟劃分。

圖6-1 Linux系統中的檔案儲存結構

剛剛提到的FHS檔案系統層次結構標準協定(Filesystem Hierarchy Standard)是工程師們在Linux系統中儲存檔案的時候需要遵守的規則,FHS是根據以往無數Linux系統使用者和開發者的經驗而總結出來的,指導咱們應該把檔案儲存到什麼位置,以及告訴運維人員應該在何處找到所需的檔案。但目前FHS對於運維工程師來講也算是一種道德操守,有些運維人員就是懶得遵守,或者根本沒有聽說過這個東東,依然會把檔案到處亂放。劉遄老師並不要求同學們去譴責他們,而應該把自己的知識活學活用,千萬不要認準這個FHS協定只講死道理,那吃虧的就可能是自己啦,最常見的目錄所對應的用處包括有:

目錄名稱 應放置檔案的內容
/boot 開機所需檔案——核心,開機選單及所需配置檔案等
/dev 任何裝置與介面都以檔案形式存放在此目錄
/etc 配置檔案
/home 使用者主目錄
/bin 單使用者維護模式下還能夠被操作的命令
/lib 開機時用到的函式庫及/bin與/sbin下面命令要呼叫的函式
/sbin 開機過程中需要的
/media 一般掛載或刪除的裝置
/opt 放置第三方的軟體
/root 系統管理員的主資料夾
/srv 一些網路服務的資料目錄
/tmp 任何人均可使用的“共享”臨時目錄
/proc 虛擬檔案系統,例如系統核心,程序,外部裝置及網路狀態等
/usr/local 使用者自行安裝的軟體
/usr/sbin 非系統開機時需要的軟體/命令/指令碼
/usr/share 幫助與說明檔案,也可放置共享檔案。
/var 主要存放經常變化的檔案,如日誌。
/lost+found 當檔案系統發生錯誤時,將一些丟失的檔案片段存放在這裡

另外還有一個重要的概念——“路徑”,路徑指的是如何定位到某個檔案,分為絕對路徑相對路徑。在Linux系統中的絕對路徑指的是從根目錄(/)開始寫起的檔案或目錄名稱,而相對路徑則指的是相對於當前路徑的寫法,舉個例子幫助同學們來理解吧,假如有個外國遊客來到中國旅遊找不到洗手間了來跟您問路,那麼您有兩種都正確的指路方法:

絕對路徑(absolute):首先坐飛機來到中國,到了北京出首都機場做地鐵到十號線潘家園站,出站坐34路到農光裡下車路口左轉。

相對路徑(relative):前面路口左轉

這兩種方法沒有對錯之分,因為如果您說的是絕對路徑,那麼任何一個外國人都可以按照這個提示找到洗手間,缺點是過於繁瑣。如果您說的是相對路徑,這話雖然變得很簡練但這個外國人只能從當前出發找到洗手間,而並不能在以後的每個路口都左轉後找到洗手間,因此缺點就是不具備普遍性。如果同學們還不能理解的話先不要著急,以後通過實踐的練習肯定能夠徹底明白的,倒是FHS中所規範的目錄作用最好先背一背,以後肯定會有用的。

6.2 物理裝置的命名規則

Linux系統中一切都是檔案,那麼硬體裝置肯定也不例外。既然是檔案就必須有名稱啦,系統核心的udev裝置管理器會自動把硬體名稱規範起來,目的是讓運維人員可以通過裝置檔案的名字猜出裝置大致的屬性以及分割槽資訊等,對於陌生的裝置這點特別的方便,另外udev服務會一直以守護程序的形式執行並偵聽來自核心發出的訊號來管理/dev目錄下的裝置檔案。常見的硬體命名規則如下:

硬體裝置 檔名稱
IDE裝置 /dev/hd[a-d]
SCSI/SATA/U盤 /dev/sd[a-p]
軟碟機 /dev/fd[0-1]
印表機 /dev/lp[0-15]
光碟機 /dev/cdrom
滑鼠 /dev/mouse
磁帶機 /dev/st0或/dev/ht0(IDE裝置)

因為現在的IDE裝置已經很少見啦,所以一般硬碟裝置都會是以“/dev/sd”開頭的,而一臺主機上可以有多塊硬碟,因此係統便會用a-p來代表16塊不同的硬碟(預設從a開始分配)且分割槽編號也很有講究。

主分割槽或擴充套件分割槽的編號從1開始至4結束。

邏輯分割槽從編號5開始。

第6章 儲存結構與磁碟劃分。第6章 儲存結構與磁碟劃分。

圖6-2 裝置檔名稱

首先/dev/目錄中儲存的應當是硬體裝置檔案,其次sd開頭代表是儲存裝置,然後a代表是系統中同類介面中第一個被識別到裝置,最後的5代表這個裝置一定是個邏輯分割槽。簡單總結來說“/dev/sda5”代表的就是——“這是系統中第一塊被識別到的硬體裝置中分割槽編號為5的邏輯分割槽的檔案”。很多同學可能基礎並不好,不太理解前面所說的主分割槽、擴充套件分割槽和邏輯分割槽的概念,接下來簡單科普下硬碟的知識,如前面《Linux就該這麼學》書籍第0章中強調的編寫初衷,劉遄老師不要求同學們記住下面的知識,只要看懂就行了。

計算機中有了硬碟裝置才使得遊戲通關過後可以儲存記錄而不是再每次再重頭開始,硬碟裝置則是由大量的扇區組成的,其中第一個扇區最重要,它裡面儲存著主引導記錄分割槽表資訊。單個扇區容量為512bytes組成,主引導記錄需要佔用446bytes,分割槽表的為64bytes,結束符佔用2bytes,而其中每記錄一個分割槽資訊需要16bytes,這最多四個能有幸被寫到第一個扇區中的分割槽資訊就叫做主分割槽,扇區的資訊寫入如圖6-3所示。

第6章 儲存結構與磁碟劃分。第6章 儲存結構與磁碟劃分。

圖6-3 第一扇區中的資料資訊

那麼問題來了——好像最多隻能創建出4個分割槽?於是為了解決分割槽個數不夠的問題,可以將其中的16bytes(原本要寫入主分割槽資訊)的空間拿出來指向到另外一個分割槽上面,也就是說擴充套件分割槽其實並不是一個“分割槽”,而更像是一個“指標”,指向了另外的一個分割槽的指標。那麼運維人員一般會選擇用3個主分割槽加1個擴充套件分割槽的方法,然後在擴充套件分割槽中創建出數個邏輯分割槽,這樣就可以用分割槽來滿足多分割槽的需求了,主分割槽、擴充套件分割槽、邏輯分割槽可以像如圖6-4來規劃。

第6章 儲存結構與磁碟劃分。第6章 儲存結構與磁碟劃分。

圖6-4 硬碟分割槽的規劃

這是第三塊IDE裝置(比較少見了)中的編號為8的邏輯分割槽

2.1.2 檔案系統與資料資料

使用者在硬體儲存裝置上面正常建立檔案寫入讀取修改轉存檔案控制檔案等等操作都是依靠了檔案系統來完成的,檔案系統的作用是把硬碟合理的規劃,保證使用者正常的使用需求,在Linux系統中支援的檔案系統就有數十種,而最常見的檔案系統有:

Ext3是一款日誌檔案系統,能夠在異常宕機中避免檔案系統資料丟失的情況,自動修復資料的不一致與錯誤,然而對於容量較大的硬碟來說需要耗費在修復上的時間也會非常多,並且也不能保證100%資料不流失。它會把整個磁碟的每個寫入動作細節都預先記錄下來,以便在異常宕機後能夠回溯追蹤到被中斷的部分。

Ext4可以稱為是Ext3的後繼版本,作為RHEL6系統中的預設檔案管理系統,它支援更大的檔案系統到1EB(1EB=1,073,741,824GB且能夠有無限多的子目錄),另外Ext4檔案系統能夠批量分配block塊並作"Extents"極大的提高了讀寫效率。

XFS作為最新RHEL7中預設的檔案管理系統,它的日誌型檔案管理系統的優勢在意外宕機後尤其明顯,可以快速的恢復可能被破壞的檔案,另外經過優化後日志功能對硬碟效能影響非常小,同時最大支援18EB的儲存容量滿足了幾乎所有需求。

紅帽RHEL7系統中比較大的變化之一就是在檔案系統方面使用XFS替換了Ext4,從紅帽官方釋出的說明來看確實是一次不小的進步,但是我在實測中發現並不完全屬實,因為單講對於測試一款檔案系統的“讀取”這一評測專案,到底要測試讀取的檔案個數有多少個?每個檔案的大小是多少?讀取時佔用CPU、記憶體等系統資源情況,以及作業系統、不同的硬體配置等等因此當劉遄老師充分的考慮到這些不定因素後就會發現實在不敢直接照抄紅帽官方的介紹,我個人認為在效能方面XFS雖然比Ext4有所提升,但絕不是壓倒性的,因此XFS檔案系統最卓越的亮點應該當屬可支援18EB的儲存容量吧~

當咱們拿到了一塊新的硬碟儲存裝置之後首先要分割槽,然後格式化檔案系統最後才能掛載正常的使用,就像當拿到了一張大白紙,首先為了使用方便要裁剪,然後為了書寫工整要先畫格。分割槽的操作取決於您的需求和硬碟大小,也是可以不做的,而格式化檔案系統則是必做的,劉遄老師再來給您簡單的科普下格式化後發生的事情吧,但是再強調下不用記,只要看懂就行了~

日常中在硬碟要儲存的資料實在太多了,因此就要有個叫super block的“硬碟地圖”,並不是把資料直接寫入到這個“大地圖”裡面,而是在上面記錄著整個檔案系統的資訊,因為如果把所有的資訊都寫入到這裡面的話,就一定會導致它的體積變的很大,查詢與寫入速度會變的很慢,於是每個檔案的許可權與屬性都會記錄在inode中(每個檔案都會佔用一個獨立的inode表格,預設為128bytes),記錄著:

該檔案的訪問許可權(read,write,execute)

該檔案的所屬主與組(owner,group)

該檔案的大小(size)

該檔案的建立或狀態修改時間(ctime)

該檔案的最後一次訪問時間(atime)

該檔案的修改時間(mtime)

檔案的特殊許可權(SUID,SGID,SBIT)

該檔案的真實資料地址(point)

而檔案的實際資料內容則儲存在block塊中(大小可以是1K、2K或4K),一個inode大小僅為128bytes(Ext3),記錄一個block消耗4bytes,一般當把inode寫滿後就會取出一個block用於號碼記錄而不再是儲存實際的檔案系統。下面的說明中以4K為例。

情況一:檔案體積很小(1K),那麼依然會佔用一個block,潛在的浪費3K。

情況二:檔案體積很大(5K),那麼會佔用兩個(5K-4K剩下的1K也要佔用一個block)。

實際上隨著計算機系統的發展產生出了眾多的檔案系統,為了使使用者在讀取或寫入檔案時不用關心底層的硬碟結構,於是在Linux核心中的軟體層為使用者程式提供了一個VFS檔案系統介面(Virtual File System),這樣就轉而統一對這個虛擬檔案系統進行操作啦。如圖6-5所示,即實際檔案系統在VFS下隱藏了自己的特性和細節,使得咱們在日常使用時覺得“檔案系統都是一樣的”,比如使用cp命令就在任何檔案系統中複製檔案了。
第6章 儲存結構與磁碟劃分。第6章 儲存結構與磁碟劃分。

圖6-5 VFS虛擬檔案系統結構

2.1.3 掛載硬體裝置

用習慣了Windows系統讓咱們覺得一切都理所應當,平時把U盤插入到電腦後也根本沒有考慮過到底系統做了那些事情,又是為什麼能夠訪問到這個U盤內資料的。劉遄老師推薦在Linux系統中這些最好是手動來做,因為這會讓同學們更好的把控資料。如前面所講當拿到了一塊全新的硬碟儲存裝置之後首先要分割槽,然後格式化最後才能掛載正常使用。分割槽和格式化大家以前常常聽到,但“掛載”又是個什麼東東呢?掛載操作指的是當用戶需要使用硬碟裝置或分割槽資料時,需要先將與一個已存在的目錄檔案做關聯,而這個動作就叫“掛載”。下面的課程中會逐步教會同學們如何使用硬碟裝置,但這個掛載理論知識實在比較複雜,而且實在太重要了,因此決定再單獨拿出一個小節單獨的講解一下,不光要能看懂還要記住。

mount命令用於掛載檔案系統,格式為:“mount 檔案系統 掛載目錄”。

掛載是在使用硬體裝置前的最後操作的一步,只需要用mount命令把硬體裝置與一個目錄做關聯,然後就能在這個目錄中看到硬體裝置中的資料了。對於比較新的Linux系統來講一般是不需要使用-t引數來指定說明檔案系統型別的,這點Linux系統會自動進行判斷。而mount -a命令引數是非常厲害的,執行後會自動檢查/etc/fstab檔案中有無疏漏被掛載的裝置檔案,然後進行自動掛載操作。

引數 作用
-a 掛載所有在/etc/fstab中定義的檔案系統
-t 指定檔案系統的型別


例如需要把裝置"/dev/sdb2"掛載到"/backup"目錄,檔案格式是ext4。mount命令只需要填寫裝置與掛載目錄引數就行,一般系統會自動去判斷要掛載檔案的型別~因此只需要這樣來做:

執行命令:mount /dev/sdb2 /backup

雖然按照上面的方法執行mount命令後就能立即使用檔案系統了,但重啟後掛載就會失效,也就是說需要每次開機後都手動的掛載一下,這肯定不是咱們想要的方案,因此如果您想讓硬體裝置和目錄永久的進行自動關聯,就必須把掛載資訊按照指定的格式寫入到/etc/fstab檔案中。這個檔案中包含著諸多掛載所需的資訊專案,一旦配置好之後就能永久的為您服務啦。

填寫格式如下:“裝置檔案 掛載目錄 格式型別 許可權選項 自檢 優先順序”
裝置檔案:一般為裝置的路徑+裝置名稱,也可以寫UUID值。
掛載目錄:指定要掛載到的目錄,需掛載前建立好。
格式型別:即指定檔案系統的格式,比如有ext3/ext4/xfs/swap/iso9660(此為光碟裝置)等等。
許可權選項:預設為defaults(rw,suid,dev,exec,auto,nouser,async),可指定acl或quota等。
自檢:若為1則開機後進行磁碟自檢,0為不自檢。
優先順序:若“自檢”為1,則可對多塊硬碟進行優先順序設定。

那麼要想讓檔案系統為"ext4"的硬體裝置"/dev/sdb2"開機後自動掛載到"/backup"目錄上,預設許可權無需開機自檢,就需要在/etc/fstab檔案中寫入下面的資訊,重啟後檢查也會成功~

[[email protected] ~]# vim /etc/fstab
#
# /etc/fstab
# Created by anaconda on Wed May 4 19:26:23 2017
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/rhel-root / xfs defaults 1 1
UUID=812b1f7c-8b5b-43da-8c06-b9999e0fe48b /boot xfs defaults 1 2
/dev/mapper/rhel-swap swap swap defaults 0 0
/dev/cdrom /media/cdrom iso9660 defaults 0 0 
/dev/sdb2 /backup ext4 defaults 0 0

umount命令用於撤銷已經掛載的裝置檔案,格式為:“umount [掛載點/裝置檔案]”。

掛載檔案系統是為了使用硬體資源,解除安裝檔案系統就意味不再使用硬體的裝置資源,而掛載的操作就是硬體裝置與目錄的關聯動作,因此解除安裝操作只需要說明想要取消關聯的裝置檔案或掛載目錄其中的一項即可,而且一般也不需要加其他額外的引數,例如來嘗試手動的解除安裝掉“/dev/sdb2”這個裝置檔案吧:

[[email protected] ~]# umount /dev/sdb2
6.5 新增硬碟裝置

根據剛剛對管理硬體裝置所學的理論知識,先來理清一下思路吧~首先需要在虛擬機器中模擬再新增入一塊新的硬碟儲存裝置,然後逐步的進行分割槽、格式化、掛載操作,最後通過檢查系統掛載狀態和真實的使用來最終驗證硬體是否已正確部署好了吧。

第1步:使用虛擬機器軟體的好處又一次體現出來了,因為咱們不需要為了做這個實驗而特意去買一塊真實的硬碟,而是通過虛擬機器軟體進行硬體模擬就可以,操作步驟首先是把虛擬機器系統關機後點擊“編輯虛擬設定”選項,選擇新增按鈕新增一塊新的硬體裝置,如圖6-6所示。

第6章 儲存結構與磁碟劃分。第6章 儲存結構與磁碟劃分。 圖6-6 在虛擬機器系統中新增硬體裝置

第2步:然後選擇想要新增的硬體型別為硬碟,這確實沒有什麼需要說明的,點選下一步按鈕就可以啦~如圖6-7所示。

第6章 儲存結構與磁碟劃分。第6章 儲存結構與磁碟劃分。

圖6-7 選擇新增硬體型別

第3步:選擇硬碟裝置的型別為SCSI(預設推薦)並點選下一步按鈕,這樣一會虛擬機器中的裝置名稱應該會為“/dev/sdb”,如圖6-8所示。

第6章 儲存結構與磁碟劃分。第6章 儲存結構與磁碟劃分。

圖6-8 選擇硬碟裝置型別

第4步:選中“建立新虛擬磁碟”選項,而不是調取以前已有的硬碟,再次點選下一步按鈕即可,如圖6-9所示。

第6章 儲存結構與磁碟劃分。第6章 儲存結構與磁碟劃分。

圖6-9 選擇磁碟型別

第5步:設定最大磁碟大小為預設20GB,這個數值是限制這臺虛擬機器使用的最大硬碟空間而不是立即會佔用滿,因此預設20GB就很合適了,點選下一步按鈕吧~如圖6-10所示。

第6章 儲存結構與磁碟劃分。第6章 儲存結構與磁碟劃分。

圖6-10 設定硬碟的最大使用空間

第6步:設定磁碟裝置檔案的儲存位置和名稱,這一項不需要修改,直接點選完成按鈕吧,如圖6-11所示。

第6章 儲存結構與磁碟劃分。第6章 儲存結構與磁碟劃分。

圖6-11 磁碟裝置檔案的儲存位置

第7步:將新硬碟新增好後就可以看到裝置資訊了,這裡不需要做任何修改,直接點選確認按鈕後開啟虛擬機器就可以了,如圖6-12所示。

第6章 儲存結構與磁碟劃分。第6章 儲存結構與磁碟劃分。

圖6-12 檢視虛擬機器硬體設定資訊

在虛擬機器中成功模擬了硬碟裝置後就應該能夠看到抽象成的裝置檔案了,按照前面說的udev服務命名規則,第二個被識別的SCSI裝置應該會被儲存成/dev/sdb,這個就是硬碟裝置檔案啦。但在開始使用前還應該進行分割槽操作,從中取出一個500M的分割槽裝置以供後面的操作使用。

fdisk命令用於管理磁碟分割槽,格式為:“fdisk [磁碟名稱]”。

管理Linux系統中的硬碟裝置最常用的方法就當屬是用fdisk命令了,這條命令提供了新增、刪除、轉換分割槽等等功能於一身的“一站式分割槽服務”,不過這條命令的引數是互動式的,而不是像咱們以前直接寫到命令後面的引數一樣,因此在管理硬碟裝置的時候特別方便,可以根據需求動態的調整。

引數 作用
m 檢視全部可用的引數
n 新增新的分割槽
d 刪除某個分割槽資訊
l 列出所有可用的分割槽型別
t 改變某個分割槽的型別
p 檢視分割槽表資訊
w 儲存並退出
q 不儲存直接退出

第1步:首先使用fdisk命令嘗試管理/dev/sdb硬碟裝置,看到提示資訊後輸入引數p來檢視硬碟裝置內已有的分割槽資訊,這其中包括了硬碟的容量大小,扇區個數等等資訊:

[[email protected] ~]# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0x47d24a34.
Command (m for help): p
Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x47d24a34
Device Boot Start End Blocks Id System

第2步:輸入引數n來嘗試新建分割槽資訊,系統會要求選擇繼續輸入引數p來建立主分割槽,或者輸入引數e來建立擴充套件分割槽,因此輸入引數p來建立一個主分割槽:

Command (m for help): n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p

第3步:確認建立一個主分割槽後,系統要求您先輸入分割槽的編號,既然已經知道主分割槽的編號範圍是1-4,因此預設輸入1就可以了,接下來系統會提示定義下起始的扇區,這一項預設不需要改動,系統會自動計算出最靠前空閒的扇區位置,咱們敲擊一下回車就可以,最後系統會要求定義分割槽的結束扇區位置,這其實就是想要去定義下整個分割槽的大小是多少,但其實不用去算扇區的個數,只需要輸入+2G即可創建出一個容量為2G的硬碟分割槽。

Partition number (1-4, default 1): 1
First sector (2048-41943039, default 2048):此處敲擊回車
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): +2G
Partition 1 of type Linux and of size 2 GiB is set

第4步:再次使用引數p來檢視下硬碟裝置中的分割槽資訊,果然就能看到一個名稱為/dev/sdb1,起始扇區為2048,結束扇區是4196351的分割槽啦,這時候千萬不要直接關閉視窗,而應該敲擊引數w後回車,這樣分割槽資訊才是真正的寫入成功啦。

Command (m for help): p
Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x47d24a34
Device Boot Start End Blocks Id System
/dev/sdb1 2048 4196351 2097152 83 Linux
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.

第5步:當做完上面所說的所有步驟後,Linux系統會自動把這個硬碟分割槽抽象成/dev/sdb1這個裝置檔案,可以用file命令來看到這個檔案的屬性,但是劉遄老師在講課和工作中發現有些時候系統並沒有自動的把分割槽資訊同步給Linux核心,而且這種情況似乎還比較常見,但不能算作是嚴重的bug,因為如果裝置資訊沒有被抽象為檔案,也可以輸入partprobe命令來手動的同步資訊到核心,而且一般推薦敲擊兩次會效果更佳,但一旦遇到連這個命令都不能解決的時候,那麼就重啟計算機吧,這個殺手鐗百試百靈,一定會有用的。

[[email protected] ]# file /dev/sdb1
/dev/sdb1: cannot open (No such file or directory)
[[email protected] ]# partprobe
[[email protected] ]# partprobe
[[email protected] ]# file /dev/sdb1
/dev/sdb1: block special

Linux系統對於沒有被格式化的儲存裝置是不知道怎麼樣寫入資料的,因此當咱們對儲存裝置分割槽後需要再進行一次格式化操作,很類似於平時給白紙劃上橫線,這樣再寫字的時候就會十分規整有條理啦,在Linux系統中用於格式化的是mkfs命令,這條命令很有意思,因為在Shell終端中輸入mkfs後再敲擊兩下Tab鍵補齊命令就會有這樣的效果:

[[email protected] ~]# mkfs
mkfs mkfs.cramfs mkfs.ext3 mkfs.fat mkfs.msdos mkfs.xfs
mkfs.btrfs mkfs.ext2 mkfs.ext4 mkfs.minix mkfs.vfat

對!這個mkfs命令作為一款格式化的工具非常貼心,它把常用的檔案系統名稱用字尾的方式儲存成了檔案,使用方法非常的簡單:"mkfs.檔案型別名稱",例如要格式分割槽為xfs檔案系統,則命令應為"mkfs.xfs /dev/sdb1"。

[[email protected] ~]# mkfs.xfs /dev/sdb1
meta-data=/dev/sdb1 isize=256 agcount=4, agsize=131072 blks
 = sectsz=512 attr=2, projid32bit=1
 = crc=0
data = bsize=4096 blocks=524288, imaxpct=25
 = sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=0
log =internal log bsize=4096 blocks=2560, version=2
 = sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0

終於把儲存裝置給分割槽、格式化好了,接下來就是要來掛載並使用啦。這些步驟也非常的簡單,首先是建立一個用於掛載裝置的掛載點目錄,然後使用mount命令將儲存裝置與掛載點進行關聯,最後還可以用df -h命令來檢視下掛載狀態和硬碟使用量資訊。

[[email protected] ~]# mkdir /newFS
[[email protected] ~]# mount /dev/sdb1 /newFS/
[[email protected] ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/rhel-root 18G 3.5G 15G 20% /
devtmpfs 905M 0 905M 0% /dev
tmpfs 914M 140K 914M 1% /dev/shm
tmpfs 914M 8.8M 905M 1% /run
tmpfs 914M 0 914M 0% /sys/fs/cgroup
/dev/sr0 3.5G 3.5G 0 100% /media/cdrom
/dev/sda1 497M 119M 379M 24% /boot
/dev/sdb1 2.0G 33M 2.0G 2% /newFS

du命令用於檢視檔案的資料佔用量,格式為:“ du [選項] [檔案]”。

既然儲存裝置已經順利的掛載完畢,就可以來嘗試通過掛載點目錄往儲存裝置中寫入檔案了,順便再給同學們介紹一下用於檢視檔案資料佔用量的du命令,簡單來說就是看一個或多個檔案佔用了多大的硬碟空間,還可以用du -sh /*命令來檢視在Linux系統根目錄下所有一級目錄分別佔用的空間大小,那麼比如可以先從某些目錄中複製過來一批檔案,然後檢視下這些檔案總共佔用了多大的容量:

[[email protected] ~]# cp -rf /etc/* /