1. 程式人生 > >Linux磁碟管理:分割槽、格式化、掛載

Linux磁碟管理:分割槽、格式化、掛載

1、磁碟的物理結構:
2、為什麼進行分割槽:
3、磁碟的種類:
4、磁碟分割槽:
5、磁碟分割槽操作:
6、磁碟格式化:
7、掛載磁碟:
8、掛載型別:
9、UUID:

##############################################################

磁碟的物理結構:

在這裡插入圖片描述
磁頭:

磁頭是硬碟中最昂貴的部件,也是硬碟技術中最重要和最關鍵的一環。傳統的磁頭是讀寫合一的電磁感應式磁頭,但是,硬碟的讀、寫卻是兩種截然不同的操作,為此,這種二合一磁頭在設計時必須要同時兼顧到讀/寫兩種特性,從而造成了硬碟設計上的侷限。而MR磁頭(Magnetoresistiveheads),即磁阻磁頭,採用的是分離式的磁頭結構:寫入磁頭仍採用傳統的磁感應磁頭(MR磁頭不能進行寫操作),讀取磁頭則採用新型的MR磁頭,即所謂的感應寫、磁阻讀。這樣,在設計時就可以針對兩者的不同特性分別進行優化,以得到最好的讀/寫效能。另外,MR磁頭是通過阻值變化而不是電流變化去感應訊號幅度,因而對訊號變化相當敏感,讀取資料的準確性也相應提高。而且由於讀取的訊號幅度與磁軌寬度無關,故磁軌可以做得很窄,從而提高了碟片密度,達到每平方英寸200MB,而使用傳統的磁頭只能達到每平方英寸20MB,這也是MR磁頭被廣泛應用的最主要原因。MR磁頭已得到廣泛應用,而採用多層結構和磁阻效應更好的材料製作的GMR磁頭(GiantMagnetoresistiveheads)也逐漸開始普及。

磁軌:

當磁碟旋轉時,磁頭若保持在一個位置上,則每個磁頭都會在磁碟表面劃出一個圓形軌跡,這些圓形軌跡就叫做磁軌。這些磁軌用肉眼是根本看不到的,因為它們僅是盤面上以特殊方式磁化了的一些磁化區,磁碟上的資訊便是沿著這樣的軌道存放的。相鄰磁軌之間並不是緊挨著的,這是因為磁化單元相隔太近時磁性會相互產生影響,同時也為磁頭的讀寫帶來困難。一張1.44MB的3.5英寸軟盤,一面有80個磁軌,而硬碟上的磁軌密度則遠遠大於此值,通常一面有成千上萬個磁軌。磁軌的磁化方式一般由磁頭迅速切換正負極改變磁軌所代表的0和1.

扇區:

磁碟上的每個磁軌被等分為若干個弧段,這些弧段便是磁碟的扇區,每個扇區可以存放512個位元組的資訊,磁碟驅動器在向磁碟讀取和寫入資料時,要以扇區為單位。1.44MB3.5英寸的軟盤,每個磁軌分為18個扇區。

柱面:

硬碟通常由重疊的一組碟片構成,每個盤面都被劃分為數目相等的磁軌,並從外緣的“0”開始編號,具有相同編號的磁軌形成一個圓柱,稱之為磁碟的柱面。磁碟的柱面數與一個盤單面上的磁軌數是相等的。無論是雙盤面還是單盤面,由於每個盤面都只有自己獨一無二的磁頭,因此,盤面數等於總的磁頭數。所謂硬碟的CHS,即Cylinder(柱面)、Head(磁頭)、Sector(扇區),只要知道了硬碟的CHS的數目,即可確定硬碟的容量,硬碟的容量=柱面數磁頭數扇區數*512B。

為什麼要對磁碟進行分割槽?

計算機中存放資料的主要裝置就是硬碟,但是現在的硬碟容量普遍都很大,整塊的磁碟使用有很多的不便,具體內容以下贅述。

首先談談為什麼需要為磁碟分割槽?(當然也是可以不分割槽的,但是你不會有這樣的想法的,即使你有,看看以下的內容你也就會打消你得念頭)

1.磁碟分割槽有利於資料安全:
主要方面:只用一個分割槽,若遇到系統需要重灌或者分割槽需要進行格式化等,原有的重要檔案無法在本硬碟保留,而若提前進行了合理分割槽,則使用者資料不會收到影響;次要方面,我們知道,同等外部條件下,讀取越頻繁,磁碟越容易受損,我們把讀寫頻繁的目錄掛載到一個單獨的分割槽,可以把磁碟的損傷控制在一個集中的區域。

2.磁碟分割槽節約使用者尋找檔案的時間,也節約機器處理的時間:
主要方面:分割槽將資料集中在某個磁柱的區段,當有資料要讀取自該分割槽時, 硬碟只會搜尋相應區段,有助於資料讀取的速度與效能的提升!

3.磁碟分割槽有利於管理與使用

磁碟的種類:

一、 IDE磁碟:在linux中的磁碟碟符標識為:/dev/hd[a-d]
在這裡插入圖片描述

IDE即Integrated Drive Electronics,它的本意是指把控制器與盤體整合在一起的硬碟驅動器,IDE是表示硬碟的傳輸介面。我們常說的IDE介面,也叫ATA(Advanced Technology Attachment)介面,現在PC機使用的硬碟大多數都是IDE相容的,只需用一根電纜將它們與主機板或介面卡連起來就可以了。(不幸的是IDE目前已經快被淘汰)
優點:相容性強,價效比高,價格伊人;
缺點:資料傳輸速率較慢,不支援熱插拔

二、SATA磁碟:在linux中的磁碟碟符標識為:/dev/sd[a-p]
在這裡插入圖片描述

SATA(Serial ATA)口的硬碟又叫串列埠硬碟,是未來PC機硬碟的趨勢,現已基本取代了傳統的PATA硬碟。SATA的全稱是Serial Advanced Technology Attachment,Intel、APT、Dell、IBM、希捷、邁拓這幾大廠商組成的Serial ATA委員會正式確立了Serial ATA 1.0規範,2002年,雖然序列ATA的相關裝置還未正式上市,但Serial ATA委員會已搶先確立了Serial ATA 2.0規範。Serial ATA採用序列連線方式,序列ATA匯流排使用嵌入式時鐘訊號,具備了更強的糾錯能力,與以往相比其最大的區別在於能對傳輸指令(不僅僅是資料)進行檢查,如果發現錯誤會自動矯正,這在很大程度上提高了資料傳輸的可靠性。序列介面還具有結構簡單、支援熱插拔的優點。

三、SCSI磁碟:在linux中磁碟碟符標識:/dev/sd[a-p]
在這裡插入圖片描述

SCSI硬碟是採用SCSI介面的硬碟,SCSI是Small Computer System Interface(小型計算機系統介面)的縮寫,使用50針介面,外觀和普通硬碟介面有些相似。SCSI硬碟和普通IDE硬碟相比有很多優點:介面速度快,並且由於主要用於伺服器,因此硬碟本身的效能也比較高,硬碟轉速快,快取容量大,CPU佔用率低,擴充套件性遠優於IDE硬碟,並且支援熱插拔。

磁碟分割槽:

首先我們要對硬碟分割槽的基本概念進行一些初步的瞭解,硬碟的分割槽主要分為基本分割槽(primary partion)和擴充分割槽(extension partion)兩種,基本分割槽和擴充分割槽的數目之和不能大於四個。且基本分割槽可以馬上被使用但不能再分割槽。擴充分割槽必須再進行分割槽後才能使用,也就是說它必須還要進行二次分割槽。那麼由擴充分割槽再分下去的是什麼呢?它就是邏輯分割槽(logical partion),況且邏輯分割槽沒有數量上限制。

我們常見的磁碟碟符大多數有四個,很多人不知道這其中的原因,我給大家分析一下:

從現在磁碟的配置可以看到,linux中的磁碟標識都為sd[a-p],如果有一塊磁碟那麼就是sda,繼續新增磁碟數量的話就依次為sdb,sdc……sdp。
在這裡插入圖片描述

預設現在有一塊磁碟,如果想上圖一樣分割槽,那麼四塊碟符一次叫sda1,sda2、sda3、sda4。
以上碟符都為基本分割槽,現在要在基本分區劃分邏輯分割槽,比如將sda4劃分,新劃分的碟符被叫做sda5;

在這裡插入圖片描述

我們只分了三個基本分割槽,然後現在在sda3中來進行邏輯分割槽的劃分,假設在sda3中劃分了三個邏輯分割槽,那麼邏輯分割槽碟符的命名依次為sda5,sda6、sda7;

注意:sda1-4始終是保留給基本分割槽使用的,所以新的邏輯分區劃分出來之後,只能從sda5開始命名;這一點必須記住。

正式的分割槽操作:

一、在linux中可以用來分割槽的工具很多,我之講解一種通過命令方式來方便實現的分割槽方法:fdisk

1、通過fdisk -l檢視具體磁碟分割槽狀態:

在這裡插入圖片描述

2、對磁碟/dev/sda進行操作:
通過命令:fdisk /dev/sda
在這裡插入圖片描述

然後輸入m進行檢視fdisk的操作細節:
在這裡插入圖片描述

3、輸入p檢視當前分割槽情況:(與fdisk -l效果一致)
4、對sda進行磁碟分割槽:
輸入n,建立分割槽:
在這裡插入圖片描述

預設建立的為邏輯分割槽,p為基本分割槽(記住基本分割槽最多為四個),然後依次預設建立,

在這裡插入圖片描述

最後使用w對分割槽進行儲存,儲存好之後檢視:
在這裡插入圖片描述

有時候可能磁碟的資訊沒有被載入,使用命令
[[email protected] ~]# partprobe #對磁碟進行重新載入;

二、磁碟的格式化:

磁碟分割槽之後暫時還是不能被使用的,因為要對磁碟進行格式化:

磁碟格式化牽涉兩個不同的程式:低階與高階格式化。前者處理磁碟表面格式化賦與磁片扇區數的特質;低階格式化完成後,硬體磁碟控制器(disk controller)即可看到並使用低階格式化的成果;後者處理“伴隨著作業系統所寫的特定資訊”。
低階格式化
低階格式化(Low-Level Formatting)又稱低層格式化或物理格式化(Physical Format),對於部分硬碟製造廠商,它也被稱為初始化(initialization)。最早,伴隨著應用CHS編址方法、頻率調製(FM)、改進頻率調製(MFM)等編碼方案的磁碟的出現,低階格式化被用於指代對磁碟進行劃分柱面、磁軌、扇區的操作。現今,隨著軟盤的逐漸退出日常應用,應用新的編址方法和介面的磁碟的出現,這個詞已經失去了原本的含義,大多數的硬碟製造商將低階格式化(Low-Level Formatting)定義為建立硬碟扇區使硬碟具備儲存能力的操作。現在,人們對低階格式化存在一定的誤解,多數情況下,提及低階格式化,往往是指硬碟的填零操作。

高階格式化
高階格式化又稱邏輯格式化,它是指根據使用者選定的檔案系統(如FAT12、FAT16、FAT32、exFAT、NTFS、EXT2、EXT3等),在磁碟的特定區域寫入特定資料,以達到初始化磁碟或磁碟分割槽、清除原磁碟或磁碟分割槽中所有檔案的一個操作。高階格式化包括對主引導記錄中分割槽表相應區域的重寫、根據使用者選定的檔案系統,在分割槽中劃出一片用於存放檔案分配表、目錄表等用於檔案管理的磁碟空間,以便使用者使用該分割槽管理檔案。

分割槽格式:
FAT16

這是MS-DOS和最早期的Win95作業系統中最常見的磁碟分割槽格式。它採用16位的檔案分配表,能支援最大為2GB的硬碟,是目前應用最為廣泛和獲得作業系統支援最多的一種磁碟分割槽格式,幾乎所有的作業系統都支援這一種格式,從DOS、Win95、Win97到Win98、Windows NT、Win2000,甚至火爆一時的L inux都支援這種分割槽格式。但是在FAT16分割槽格式中,它有一個最大的缺點:磁碟利用效率低。因為在DOS和Wi ndows系統中,磁碟檔案的分配是以簇為單位的,一個簇只分配給一個檔案使用,不管這個檔案佔用整個簇容量的多少。這樣,即使一個檔案很小的話,它也要佔用了一個簇,剩餘的空間便全部閒置在那裡,形成了磁碟空間的浪費。由於分割槽表容量的限制,FAT16支援的分割槽越大,磁碟上每個簇的容量也越大,造成的浪費也越大。所以為了解決這個問題,微軟公司在Win97中推出了一種全新的磁碟分割槽格式FAT32。

FAT32

這種格式採用32位的檔案分配表,使其對磁碟的管理能力大大增強,突破了FAT16對每一個分割槽的容量只有2 GB的限制。由於硬碟生產成本下降,其容量越來越大,運用FAT32的分割槽格式後,我們可以將一個大硬碟定義成一個分割槽而不必分為幾個分割槽使用,大大方便了對磁碟的管理。而且,FAT32具有一個最大的優點:在一個不超過8GB的分割槽中,FAT32分割槽格式的每個簇容量都固定為4KB,與FAT16相比,可以大大地減少磁碟的浪費,提高磁碟利用率。支援這一磁碟分割槽格式的作業系統有Win97、Win98和Win2000。但是,這種分割槽格式也有它的缺點,首先是採用FAT32格式分割槽的磁碟,由於檔案分配表的擴大,執行速度比採用FAT16格式分割槽的磁碟要慢。另外,由於DOS不支援這種分割槽格式,所以採用這種分割槽格式後,就無法再使用DOS系統。

NTFS

它的優點是安全性和穩定性極其出色,在使用中不易產生檔案碎片。它能對使用者的操作進行記錄,通過對使用者許可權進行非常嚴格的限制,使每個使用者只能按照系統賦予的許可權進行操作,充分保護了系統與資料的安全。支援這種分割槽格式的作業系統已經很多,從 Windows NT 和 Windows 2000 直至 Windows Vista 及 Windows 7,Windows 8。

ext2、ext3

ext2,ext3是linux作業系統適用的磁碟格式,Linux ext2/ext3檔案系統使用索引節點來記錄檔案資訊,作用像windows的檔案分配表。索引節點是一個結構,它包含了一個檔案的長度、建立及修改時間、許可權、所屬關係、磁碟中的位置等資訊。一個檔案系統維護了一個索引節點的陣列,每個檔案或目錄都與索引節點陣列中的唯一一個元素對應。系統給每個索引節點分配了一個號碼,也就是該節點在陣列中的索引號,稱為索引節點號。 linux檔案系統將檔案索引節點號和檔名同時儲存在目錄中。所以,目錄只是將檔案的名稱和它的索引節點號結合在一起的一張表,目錄中每一對檔名稱和索引節點號稱為一個連線。 對於一個檔案來說有唯一的索引節點號與之對應,對於一個索引節點號,卻可以有多個檔名與之對應。因此,在磁碟上的同一個檔案可以通過不同的路徑去訪問它。
Linux預設情況下使用的檔案系統為Ext2,ext2檔案系統的確高效穩定。但是,隨著Linux系統在關鍵業務中的應用,Linux檔案系統的弱點也漸漸顯露出來了:其中系統預設使用的ext2檔案系統是非日誌檔案系統。這在關鍵行業的應用是一個致命的弱點。
Ext3檔案系統是直接從Ext2檔案系統發展而來,ext3檔案系統已經非常穩定可靠。它完全相容ext2檔案系統。使用者可以平滑地過渡到一個日誌功能健全的檔案系統中來。這實際上了也是ext3日誌檔案系統初始設計的初衷。

在linux中使用mkfs命令對分割槽進行格式化,並同時分配格式化型別:

例如將新的邏輯分割槽格式化為ext3型別的格式:
[[email protected] ~]# mkfs.ext3 /dev/sda5
[[email protected] ~]# partprobe #重新載入

三、使用劃分的磁碟——掛載

現在磁碟分割槽好之後就是來使用它了,那麼我們如何使用它呢,那就是掛載; 在linux作業系統中, 掛載是指將一個裝置(通常是儲存裝置)掛接到一個已存在的目錄上。 我們要訪問儲存裝置中的檔案,必須將檔案所在的分割槽掛載到一個已存在的目錄上, 然後通過訪問這個目錄來訪問儲存裝置。

linux作業系統將所有的裝置都看作檔案,
它將整個計算機的資源都整合成一個大的檔案目錄。
我們要訪問儲存裝置中的檔案,必須將檔案所在的分割槽掛載到一個已存在的目錄上,然後通過訪問這個目錄來訪問儲存裝置。

掛載條件
1、掛載點必須是一個目錄。
2、一個分割槽掛載在一個已存在的目錄上,這個目錄可以不為空,但掛載後這個目錄下以前的內容將不可用。對於其他作業系統建立的檔案系統的掛載也是這樣。

掛載型別:

**臨時掛載: mount**

例如將分割槽sda5臨時掛載到/mnt下:
/mnt掛載前:
[[email protected] ~]# ll /mnt
total 0
drwxr-xr-x. 2 root root 6 Jul 24 21:23 cdrom

掛載後:
[[email protected] ~]# mount /dev/sda5 /mnt
[[email protected] ~]# ll /mnt
total 16
drwx------. 2 root root 16384 Dec 11 02:38 lost+found

/mnt中的檔案暫時不顯示不可用;

解除安裝掛載點:
方法一:
[[email protected] ~]# umount /dev/sda5
方法二:
umount /mnt

永久掛載:
主分割槽開機自動就被永久掛載到了系統中,這是為什麼呢?
那是因為掛載資訊被永久的寫進了配置檔案當中;
做法:編輯掛載配置檔案

UUID是什麼:

UUID 是 通用唯一識別碼(Universally Unique Identifier)的縮寫,是一種軟體建構的標準,亦為開放軟體基金會組織在分散式計算環境領域的一部分。其目的,是讓分散式系統中的所有元素,都能有唯一的辨識資訊,而不需要通過中央控制端來做辨識資訊的指定。如此一來,每個人都可以建立不與其它人衝突的UUID。在這樣的情況下,就不需考慮資料庫建立時的名稱重複問題。目前最廣泛應用的UUID,是微軟公司的全域性唯一識別符號(GUID),而其他重要的應用,則有Linux ext2/ext3檔案系統、LUKS加密分割槽、GNOME、KDE、Mac OS X等等。另外我們也可以在e2fsprogs包中的UUID庫找到實現。

UUID作用:
UUID 的目的是讓分散式系統中的所有元素,都能有唯一的辨識資訊,而不需要透過中央控制端來做辨識資訊的指定。如此一來,每個人都可以建立不與其它人衝突的 UUID。在這樣的情況下,就不需考慮資料庫建立時的名稱重複問題。目前最廣泛應用的 UUID,即是微軟的 Microsoft’s Globally Unique Identifiers (GUIDs),而其他重要的應用,則有 Linux ext2/ext3 檔案系統、LUKS 加密分割區、GNOME、KDE、Mac OS X 等等。

檢視UUID:
[[email protected] ~]# blkid

例如將/dev/sda5永久掛載到系統
[[email protected] ~]# vim /etc/fstab

在這裡插入圖片描述

按照這樣的格式,將配置檔案寫入
UUID=2a885580-ce82-41d8-bb04-c90a57fbaa74 /mnt ext3(檔案型別) defaults 0 0