磁盤管理
Linux系統中磁盤管理就是將硬盤通過掛載的方式掛載到linux文件系統中。
1、掛載磁盤的步驟
① 磁盤分區
② 掛載
2、磁盤分區
fdisk : 分區2TB以下的磁盤,最多可以分4個分區
gdisk : 分區2TB以上的磁盤,最多可以分128個分區
3、添加一塊磁盤
lsblk : 查看本機的磁盤
df -h : 查看本機的分區
4、磁盤分區
n : 新建分區
p : 打印分區表
w : 寫入磁盤保存並退出
q : 不保存退出
d : 刪除分區
5、掛載磁盤分區
格式化文件系統
mkfs.xfs /dev/sdb1
6、總結
① 關機
② 添加硬盤
③ 創建分區
fdisk /dev/sdb
或
gdisk /dev/sdb
④ 格式化文件系統
mkfs.xfs /dev/sdb1
⑤ 掛載
mount /dev/sdb1 /mnt
磁盤分區
- 邏輯分區屬於擴展分區,擴展分區屬於主分區
- 主分區又叫做引導分區,是可以安裝系統的分區
目前常見的磁盤分區格式有兩種,MBR分區和GPT分區:
- MBR 分區,MBR 的意思是 "主引導記錄"。MBR 最大支持 2TB 容量,在容量方面存在着極大的瓶頸。
- GPT 分區,GPT 意為 GUID 分區表,它支持的磁盤容量比 MBR 大得多。這是一個正逐漸取代 MBR 的新標准,它是由 UEFI 輔住而形成的,將來 UEFI 用於取代老舊的 BIOS,而 GPT 則取代老舊的 MBR。
# 磁盤分區工具
fdisk 工具用於 MBR 格式
gdisk 工具用於 GPT 格式
磁盤基本分區fdisk
1.添加一塊小於2TB的磁盤進行使用,步驟如下:
-
1.給虛擬機添加一塊新的硬盤
-
2.使用fdisk進行分區
-
3.使用mkfs進行格式化
-
4.使用mount進行掛載
PS: 生產分區建議,如無特殊需求直接使用整個磁盤即可,無需分區。
[root@localhost ~]# fdisk -l
[root@localhost ~]# fdisk /dev/sdb
Command (m for help): m #輸入m列出常用的命令
Command action
a toggle a bootable flag #切換分區啟動標記
b edit bsd disklabel #編輯sdb磁盤標簽
c toggle the dos compatibility flag #切換dos兼容模式
d delete a partition #刪除分區
l list known partition types #顯示分區類型
m print this menu #顯示幫助菜單
n add a new partition #新建分區
o create a new empty DOS partition table #創建新的空白分區表
p print the partition table #顯示分區表的信息
q quit without saving changes #不保存退出
s create a new empty Sun disklabel #創建新的Sun磁盤標簽
t change a partitions system id #修改分區ID,可以通過l查看id
u change display/entry units #修改容量單位,磁柱或扇區
v verify the partition table #檢驗分區表
w write table to disk and exit #保存退出
x extra functionality (experts only) #拓展功能
1). fdisk創建主分區
Command (m for help): n
Partition type:
p primary (0 primary, 0 extended, 4 free) #主分區
e extended #擴展分區
Select (default p): p #選擇創建主分區
Partition number (1-4, default 1): #默認創建第一個主分區
First sector (2048-2097151, default 2048): #默認扇區回車
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-2097151, default 2097151): +50M #分配50MB
2). fdisk創建擴展分區
Command (m for help): n #新建分區
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p): e #創建擴展分區
Partition number (2-4, default 2):
First sector (104448-2097151, default 104448):
Using default value 104448
Last sector, +sectors or +size{K,M,G} (104448-2097151, default 2097151): #空間都給到擴展分區
3). fdisk創建邏輯分區
Command (m for help): n #新建分區
Partition type:
p primary (1 primary, 1 extended, 2 free)
l logical (numbered from 5)
Select (default p): l #創建邏輯分區
Adding logical partition 5
First sector (106496-2097151, default 106496):
Using default value 106496
Last sector, +sectors or +size{K,M,G} (106496-2097151, default 2097151): +100M #分配100MB空間
4). fdisk查看分區情況,並保存
Command (m for help): p #查看分區創建
Device Boot Start End Blocks Id System
/dev/sdb1 2048 104447 51200 83 Linux
/dev/sdb2 104448 2097151 996352 5 Extended
/dev/sdb5 106496 311295 102400 83 Linux
#保存分區
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
#檢查磁盤是否是MBR分區方式
[root@localhost ~]# fdisk /dev/sdb -l|grep type
Disk label type: dos
#安裝parted, 刷新內核立即生效,無需重啟
[root@localhost ~]# yum -y install parted
[root@localhost ~]# partprobe /dev/sdb
2.格式化磁盤
- mkfs格式化磁盤,實質創建文件系統,文件系統類似於將房子裝修成3室一廳,還是2室一廳。
#選項:
# -b 設定數據區塊占用空間大小,目前支持1024、2048、4096 bytes每個塊。
# -t 用來指定什么類型的文件系統,可以是ext4, xfs
# -i 設定inode的大小
# -N 設定inode數量,防止Inode數量不夠導致磁盤不足
#1.格式化整個磁盤
[root@localhost ~]# mkfs.ext4 /dev/sdb
#2.格式化磁盤的某個分區
[root@localhost ~]# mkfs.xfs /dev/sdb1
3.使用mount掛載並使用
- 如果需要使用該磁盤的空間,需要准備一個空的目錄作為掛載點,與該設備進行關聯。
[root@localhost ~]# mkdir /data
[root@localhost ~]# mount /dev/sdb1 /data
磁盤基本分區gdisk
前面我們已經了解到fdisk分區,但fdisk不支持給高於2TB的磁盤進行分區。如果有單塊盤高於2TB,建議使用Gdisk進行分區。
1.使用gdisk進行磁盤分區
#1.安裝gdisk分區工具
[root@localhost ~]# yum install gdisk -y
#2.創建一個新分區,500MB大小
[root@localhost ~]# gdisk /dev/sdb
Command (? for help): n #創建新分區
Partition number (1-128, default 1):
First sector (34-2097118, default = 2048) or {+-}size{KMGTP}:
Last sector (2048-2097118, default = 2097118) or {+-}size{KMGTP}: +500M #分配500M大小
Command (? for help): p #打印查看
Number Start (sector) End (sector) Size Code Name
1 2048 1026047 500.0 MiB 8300 Linux filesystem
Command (? for help): w #保存分區
Do you want to proceed? (Y/N): y #確認
OK; writing new GUID partition table (GPT) to /dev/sdb.
The operation has completed successfully.
#3.創建完成后,可以嘗試檢查磁盤是否為gpt格式
[root@localhost-node1 /]# fdisk /dev/sdb -l|grep type
Disk label type: gpt
#4.安裝parted, 刷新內核立即生效,無需重啟
[root@localhost ~]# yum -y install parted
[root@localhost ~]# partprobe /dev/sdb
2.使用mkfs進行格式化磁盤。
[root@localhost ~]# mkfs.xfs /dev/sdb
3.使用mount命令將某個目錄掛載該分區,進行使用。
[root@localhost ~]# mkdir /data_gdisk
[root@localhost ~]# mount /dev/sdb /data_gdisk
磁盤掛載
前面我們已經提到過,如果需要使用磁盤的空間,需要准備一個空的目錄作為掛載點,與該設備進行關聯。mount主要是為文件系統指定一個訪問入口。
1.通過mount進行掛載,但重啟將會失效。我們稱為臨時生效。
# 選項:-t指定文件系統掛載分區 -a 掛載/etc/fstab中的配置文件 -o 指定掛載參數
# 掛載/dev/sdb1至db1目錄
[root@localhost ~]# mkdir /db1
[root@localhost ~]# mount -t xfs /dev/sdb1 /db1/
ps:centos7選擇xfs格式作為默認文件系統,而且不再使用以前的ext,仍然支持ext4,
xfs專為大數據產生,每個單個文件系統最大可以支持8eb,單個文件可以支持16tb,不僅數據量大,
而且擴展性高。還可以通過xfsdump,xfsrestore來備份和恢復。
2.掛載的磁盤,如果不想使用可以使用umount進行卸載。
#選項: -l 強制卸載
#1.卸載目錄方式
[root@localhost ~]# umount /db1
#2.卸載設備方式
[root@localhost ~]# umount /dev/sdb1
#3.umount不能卸載的情況
[root@localhost db1]# umount /db1
umount: /db1: device is busy.
(In some cases useful info about processes that use
the device is found by lsof(8) or fuser(1)
#PS: 如上情況解決辦法有兩種, 1.切換至其他目錄 2.使用'-l'選項強制卸載
[root@student db1]# umount -l /db1
3.如果需要實現永久掛載則需要將掛載信息寫入/etc/fstab配置文件中實現。
#1.使用blkid命令獲取各設備的UUID
[root@localhost ~]# blkid |grep "sdb1"
/dev/sdb1: UUID="e271b5b2-b1ba-4b18-bde5-66e394fb02d9" TYPE="xfs"
#2.使用UUID掛載磁盤sdb1分區至於db1, 測試掛載
[root@localhost ~]# mount UUID="e271b5b2-b1ba-4b18-bde5-66e394fb02d9" /db1
#3.寫入/etc/fstab中,實現開機自動掛載
[root@localhost ~]# tail -1 /etc/fstab
UUID=e271b5b2-b1ba-4b18-bde5-66e394fb02d9 /db1 xfs defaults 0 0
#4.加載fstab配置文件, 同時檢測語法是否有錯誤
[root@localhost ~]# mount –a
4./etc/fstab配置文件編寫格式
要掛載的設備 | 掛載點(入口) | 文件系統類型 | 掛載參數 | 是否備份 | 是否檢查 |
---|---|---|---|---|---|
/dev/sdb1 | /db1 | xfs | defaults | 0 | 0 |
第四列:掛載參數
參數 | 含義 |
---|---|
async/sync | 是否為同步方式運行。默認async |
user/nouser | 是否允許普通用戶使用mount命令掛載。默認nouser |
exec/noexe | 是否允許可執行文件執行。默認exec |
suid/nosuid | 是否允許存在suid屬性的文件。默認suid |
auto/noauto | 執行mount -a 命令時,此文件系統是否被主動掛載。默認auto |
rw/ro | 是否以只讀或者讀寫模式進行掛載。默認rw |
default | 具有rw,suid,dev,exec,auto,nouser,async等默認參數的設定 |
第五列:是否進行備份。參數的值為0或者1
選項 | 含義 |
---|---|
0 | 代表不做備份 |
1 | 代表要每天進行備份操作 |
2 | 代表不定日期的進行備份操作 |
第六列:是否檢驗扇區:開機的過程中,系統默認會以fsck檢驗我們系統是否為完整
選項 | 含義 |
---|---|
0 | 不要檢驗磁盤是否有壞道 |
1 | 檢驗 |
2 | 校驗 (當1級別檢驗完成之后進行2級別檢驗) |