1. 程式人生 > >Linux磁盤分區管理筆記

Linux磁盤分區管理筆記

RoCE 一個 block 存儲管理 lin umount remove 遞歸 roc

磁盤管理(disk manage) - 01-15-AM
存儲管理(storage manage)

新硬盤的管理流程:分區fdisk或parted--〉格式化mkfs--〉掛載mount
思考:將分區、格式概念和一套3室一廳的房子聯系起來。或者將分區、格式概念和一個衣櫃聯系起來。也可以將分區、格式概念和小學生的方格寫字本聯系起來。
技術分享圖片

分區的作用:將硬盤上的數據進行分類管理,如c盤存操作系統,d盤存安裝軟件,e盤存電影和音樂。
格式化:是一個創建文件系統的過程,將分區中的容量按邏輯上分成inode表、數據塊等信息。
掛載:將一個分區的文件系統加載(讀)到一個目錄中。即目錄是訪問分區文件系統的入口,訪問這個掛載點目錄就等同於訪問這個分區文件系統中的文件。

硬盤分區(disk partition):
GPT分區管理:parted命令
GPT:是GUID(Globally Unique Identifier) Partition Table全局唯一標識分區表的縮寫。GPT分區表中只有主分區這個管理概念。允許創建128個主分區。GPT分區表可以用來管理總容量大於2TB以上的硬盤。硬盤的UUID號可用blkid命令來查。

GUID:全局唯一標識符(GUID,Globally Unique Identifier)是一種由算法生成的二進制長度為128位的數字標識符。GUID主要用於在擁有多個節點、多臺計算機的網絡或系統中。GUID標識符由隨機產生的字母、數字混合組成。

練習準備:將linux虛擬機關機,給虛擬機添加5塊SCSI接口的2GB的硬盤,創建快照“5塊2G硬盤”,然後將虛擬機開機,執行lsblk命令顯示磁盤塊設備列表。

要求:將2GB的硬盤sdb用GPT分區表進行管理,要求給sdb硬盤創建2個主分區,第1個主分區容量是1.5G,另一個主分區的容量使用所有剩余空間。
查塊設備列表(list block):lsblk
定義分區表標簽(即格式):parted -s /dev/sdb mklabel gpt
創建第1個1.5G的主分區:parted -s /dev/sdb mkpart primary 1M 1.5G
創建第2個主分區(使用所有剩余空間-1):parted -s /dev/sdb mkpart primary ‘1.5G -1‘

查看sdb硬盤的分區表信息:lsblk 或 fdisk -l /dev/sdb

parted命令的附加功能:
顯示(print)sdb硬盤的分區表:parted /dev/sdb p
刪除(remove)sdb硬盤的2號分區:parted -s /dev/sdb rm 2

mount掛載:將分區的文件系統內容讀取到一個目錄中。訪問這個掛載點目錄就等同於訪問這個分區文件系統中的文件。其實windows中的c、d等盤符就是自動掛載的目錄。例如,在windows中插入U盤後會被自動分配到一個盤符,這就是微軟在後臺做的一個mount自動掛載的程序。

要求:將sdb硬盤的第1個分區格式化成ext4文件系統,將第2個分區格式化成xfs文件系統。將第1個分掛載到/mnt/sdb1目錄中,將第2個分掛載到/mnt/sdb2目錄中。分別往分區的掛載點目錄中寫入一些數據。
查分區:lsblk
格式化1號分區:mkfs.ext4 /dev/sdb1 或 mkfs -t ext4 /dev/sdb1
格式化2號分區:mkfs.xfs /dev/sdb2 或 mkfs -t xfs /dev/sdb1
創建掛載點目錄:mkdir -pv /mnt/sdb{1,2} 或 mkdir -pv /mnt/sdb1 /mnt/sdb2
手動掛載:mount /dev/sdb1 /mnt/sdb1 ; mount /dev/sdb2 /mnt/sdb2
查掛載信息:lsblk 或 df -hT 或 mount
寫入數據:touch /mnt/sdb1/{a.txt,b.mp3} ; cp -v /etc/host* /mnt/sdb2
遞歸(-R)顯示/mnt目錄中的文件名列表:ls -R /mnt

課堂練習:參考sdb硬盤的操作,將sdc、sdd硬盤也做同樣的分區、格式化、手動掛載、寫入文件操作。
磁盤分區的參考腳本(入門級):
入門級腳本:即沒有if條件、for循環這些控制語句的腳本,通常是一次性的腳本。
cat pt.sh 腳本內容如下
#!/bin/bash
#腳本中以#號開頭的內容為註釋,僅起到說明作用。上面的#!/bin/bash腳本的解釋器程序名,通常是/bin/bash或/bin/sh或/bin/python。
#以下的a、x是變量,$a、$x是調用變量a、x的取值。
a=/dev/sdc
x=/mnt/sdc
lsblk
parted -s $a mklabel gpt
parted -s $a mkpart primary 1M 1.5G
parted -s $a mkpart primary ‘1.5G -1‘
lsblk
mkfs.ext4 ${a}1
mkfs.xfs ${a}2
mkdir -pv ${x}1 ${x}2
mount ${a}1 ${x}1
mount ${a}2 ${x}2
touch ${x}1/{a.txt,b.mp3}
cp -v /etc/host* ${x}2/
ls ${x}1 ${x}2
lsblk

給腳本添加可執行權限:chmod +x pt.sh
運行腳本:./pt.sh 或 bash pt.sh 或 sh pt.sh 或 python pt.py

到此,GPT分區的管理介紹完畢,其中內容包括分區的查詢lsblk、創建parted、格式化mkfs、掛載mount。


MBR分區表管理:
MBR:是主引導記錄(main boot record)的縮寫。
MBR:是保存在硬盤的0磁道0柱面1扇區的位置,占用512字節(因為1個扇區默認的大小是512字節)。其中bootloader引導程序占用446字節,DPT(disk partition table)分區表占用64字節,magic占用2字節。

MBR的分區表特點:
0.只能管理總容量在2TB以內的硬盤。
1.最多只允許分4個主分區,因為DPT分區表總容量是64字節,每個分區占用16字節,即64/16=4。
2.如果想分的個以上的分區,可采用分一個主分區(primary)和一個擴展分區(extend),然後在擴展分區中創建邏輯(logical)分區來實現。
3.主分區的編號為1~4,第1個邏輯分區的編號默認為5。
4.只能在主分區和邏輯分區上格式化創建文件系統。並且只能在主分區和邏輯分區上寫入文件。
技術分享圖片

技術分享圖片

硬盤分5個分區的方案(用MBR分區表):
方案一、1個主分區,1個擴展分區,4個邏輯分區。
方案二、3個主分區,1個擴展分區,2個邏輯分區。

練習準備:將sdb硬盤的兩個分區的文件系統依次卸載掉,並刪除sdb硬盤的所有分區。
查分區表信息:lsblk
卸載分區的文件系統:umount /mnt/sdb1 /mnt/sdb2
刪除分區表(修改分區表格式標簽即可):parted -s /dev/sdb mklabel msdos
查分區表信息:lsblk

MBR分區練習:將2GB的硬盤sdb用MBR分區表進行管理,要求給sdb硬盤創建1個容量為1.2G的主分區,再創建一個擴展分區容量為所有剩余空間。在擴展分區中創建2個邏輯分區,第1個邏輯分區容量為600M,第2個邏輯分區的容量為所有剩余空間。
查分區表信息:lsblk
cfdisk管理分區:cfdisk /dev/sdb
cfdisk快捷鍵:n是new新建 p是primary主分區 l是logical邏輯分區
W(大寫)是wite保存(寫入) q是quit退出
創建主分區:n新建==>p主分區==>1.2G回車==>beginning回車==>W(大寫)保存==>yes回車
創建邏輯分區1:選free空閑空間==> n新建==>l邏輯分區==>600M回車==>beginning回車
創建邏輯分區2:選free空閑空間==> n新建==>l邏輯分區==>600M回車==>beginning回車==>W保存==>yes回車==>q鍵退出
查分區表信息:lsblk

練習要求:將sdb硬盤的第1個分區格式化成ext4文件系統,將第1、2個邏輯分區格式化成xfs文件系統。將第1個分掛載到/mnt/data目錄中,將第1、2個邏輯分區分別掛載到/mnt/mysql、/mnt/web目錄中。分別往分區的掛載點目錄中寫入一些數據。
查分區表信息:lsblk
格式化分區:mkfs.ext4 /dev/sdb1
mkfs.xfs /dev/sdb5
mkfs.xfs /dev/sdb6
創建掛載點目錄:mkdir -pv /mnt/{data,mysql,web}
手動掛載:mount /dev/sdb1 /mnt/data
mount /dev/sdb5 /mnt/mysql
mount /dev/sdb6 /mnt/web
寫入數據:touch /mnt/data/{a1.txt,b1.mp3}
mkdir -pv /mnt/mysql/{haha,hehe}
cp -v /etc/host* /mnt/web/
遞歸顯示文件名列表:ls -R /mnt/{data,mysql,web}

課堂練習:參考sdb硬盤的操作,將sdc、sdd硬盤分區的文件系統卸載掉,刪除sdc、sdd硬盤的分區表,再做同樣的分區、格式化、手動掛載、寫入文件操作。


fstab自動掛載:
mount手動掛載的缺點:當系統重啟後,用戶必須重新手動將分區的文件系統掛載到指定的目錄。但是用戶可以將mount手動掛載的命令寫到/etc/rc.d/rc.local開機運行腳本文件中,系統在啟動時會自動執行rc.local腳本中的命令。

fstab自動掛載配置文件:fstab是file system table文件系統表的縮寫。是用來記錄磁盤分區設備自動掛載信息的配置文件。系統啟動時會讀取/etc/fstab文件中的掛載配置信息,並自動掛載裏面的設備。

練習:查看/etc/fstab配置文件內容,熟悉fstab文件格式。(可用man 5 fstab了解文件的格式)
技術分享圖片

Linux磁盤分區管理筆記