Linux磁盤管理之分區(qū)、格式化與掛載磁盤的方法
1. 引言:為什么要學(xué)習(xí)Linux磁盤管理?
在Linux系統(tǒng)中,磁盤是存儲(chǔ)數(shù)據(jù)的核心硬件,無論是服務(wù)器部署、日常使用還是開發(fā)環(huán)境配置,都離不開磁盤管理。常見場(chǎng)景包括:
- 新服務(wù)器添加硬盤后,需要分區(qū)格式化才能存儲(chǔ)數(shù)據(jù);
- 系統(tǒng)磁盤空間不足時(shí),需擴(kuò)展分區(qū)或掛載新磁盤;
- 為不同數(shù)據(jù)類型(如系統(tǒng)文件、數(shù)據(jù)庫(kù)、日志)劃分獨(dú)立分區(qū),提升安全性和性能。
磁盤管理的核心流程可概括為:識(shí)別磁盤 → 分區(qū) → 格式化 → 掛載,這四個(gè)步驟環(huán)環(huán)相扣。本文將全程以實(shí)操為主,帶你從零掌握每個(gè)環(huán)節(jié)的具體操作。
2. 磁盤管理基礎(chǔ)概念(先搞懂這些再動(dòng)手)
在動(dòng)手操作前,先明確幾個(gè)關(guān)鍵概念,避免踩坑:
2.1 磁盤與分區(qū)表
- 磁盤標(biāo)識(shí):Linux中磁盤以
/dev/sdX(SATA/SCSI接口)或/dev/nvmeXnY(NVMe接口)命名,如/dev/sda(第一塊SATA硬盤)、/dev/nvme0n1(第一塊NVMe硬盤)。 - 分區(qū)表類型:磁盤必須先創(chuàng)建分區(qū)表,才能劃分分區(qū),主流類型有兩種:
| 分區(qū)表類型 | 支持最大磁盤容量 | 最大分區(qū)數(shù) | 適用場(chǎng)景 |
|---|---|---|---|
| MBR(Master Boot Record) | 2TB | 4個(gè)主分區(qū)(或3主+1擴(kuò)展分區(qū)) | 舊設(shè)備、小容量磁盤 |
| GPT(GUID Partition Table) | 18EB | 理論無限制(默認(rèn)128個(gè)) | 新設(shè)備、大容量磁盤(推薦) |
2.2 分區(qū)與文件系統(tǒng)
- 分區(qū):將一塊物理磁盤劃分為多個(gè)邏輯區(qū)域(如
/dev/sda1是第一塊SATA硬盤的第一個(gè)分區(qū)),每個(gè)分區(qū)獨(dú)立使用。 - 文件系統(tǒng):分區(qū)后需格式化(創(chuàng)建文件系統(tǒng)),才能存儲(chǔ)文件。Linux主流文件系統(tǒng):
| 文件系統(tǒng) | 特點(diǎn) | 適用場(chǎng)景 |
|---|---|---|
| ext4 | 穩(wěn)定、兼容好、支持日志 | 系統(tǒng)分區(qū)、數(shù)據(jù)分區(qū)(通用首選) |
| XFS | 高性能、支持大容量、適合并行I/O | 服務(wù)器數(shù)據(jù)分區(qū)、數(shù)據(jù)庫(kù)存儲(chǔ) |
| Btrfs | 支持快照、 RAID、動(dòng)態(tài)擴(kuò)容 | 需要高級(jí)功能的場(chǎng)景(如Docker存儲(chǔ)) |
| vfat | 跨平臺(tái)兼容(Windows/Linux) | U盤、移動(dòng)硬盤(小文件存儲(chǔ)) |
2.3 掛載的核心邏輯
Linux中,分區(qū)不會(huì)自動(dòng)被系統(tǒng)識(shí)別,需通過“掛載”將分區(qū)關(guān)聯(lián)到某個(gè)目錄(如 /data),此后訪問該目錄即操作對(duì)應(yīng)分區(qū)。關(guān)鍵概念:
- 掛載點(diǎn):用于關(guān)聯(lián)分區(qū)的目錄(如
/mnt/disk1),必須是空目錄; - 臨時(shí)掛載:重啟系統(tǒng)后失效(
mount命令); - 永久掛載:通過
/etc/fstab配置,重啟后自動(dòng)生效(推薦)。
3. 第一步:識(shí)別磁盤(查看系統(tǒng)中的磁盤與分區(qū))
在進(jìn)行任何操作前,先確認(rèn)系統(tǒng)已識(shí)別新磁盤,常用命令如下:
3.1lsblk:直觀查看磁盤與分區(qū)結(jié)構(gòu)
lsblk(list block devices)是最常用的磁盤查看工具,輸出清晰易懂:
lsblk
輸出示例(解讀關(guān)鍵信息):
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 100G 0 disk ├─sda1 8:1 0 500M 0 part /boot # 系統(tǒng)引導(dǎo)分區(qū) └─sda2 8:2 0 99.5G 0 part / # 根分區(qū) sdb 8:16 0 200G 0 disk # 新添加的未分區(qū)磁盤(目標(biāo)操作磁盤) nvme0n1 259:0 0 512G 0 disk └─nvme0n1p1 259:1 0 512G 0 part /home # NVMe硬盤的/home分區(qū)
TYPE列:disk表示物理磁盤,part表示分區(qū);MOUNTPOINT列:顯示已掛載的目錄(空表示未掛載)。
3.2fdisk -l:查看磁盤詳細(xì)信息(含分區(qū)表)
fdisk 是傳統(tǒng)磁盤工具,可查看磁盤容量、分區(qū)表類型等細(xì)節(jié):
sudo fdisk -l # 需要root權(quán)限
輸出示例(重點(diǎn)關(guān)注新磁盤 /dev/sdb):
Disk /dev/sdb: 200 GiB, 214748364800 bytes, 419430400 sectors Disk model: Virtual Disk Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: gpt # 分區(qū)表類型為GPT Disk identifier: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
- 若
Disklabel type顯示dos,則為MBR分區(qū)表; - 新磁盤未分區(qū)時(shí),會(huì)提示“no partitions”。
4. 第二步:磁盤分區(qū)(MBR/GPT分區(qū)實(shí)操)
分區(qū)工具選擇:
fdisk:支持MBR和GPT分區(qū)表,操作簡(jiǎn)單(推薦入門);parted:支持大磁盤和GPT,功能更強(qiáng)大(適合高級(jí)場(chǎng)景)。
本文以 GPT分區(qū)表(推薦新磁盤使用)為例,演示分區(qū)流程,同時(shí)兼顧MBR分區(qū)方法。
4.1 用fdisk給新磁盤(/dev/sdb)創(chuàng)建GPT分區(qū)
4.1.1 進(jìn)入fdisk工具(指定目標(biāo)磁盤)
sudo fdisk /dev/sdb # 注意:是/dev/sdb(磁盤),不是分區(qū)(如/dev/sdb1)
進(jìn)入后終端提示 Command (m for help):,輸入對(duì)應(yīng)命令操作。
4.1.2 關(guān)鍵操作步驟(分步詳解)
- 查看幫助:輸入
m,查看所有支持的命令(無需記憶,按需查閱); - 轉(zhuǎn)換分區(qū)表類型(若為MBR需轉(zhuǎn)換):
若磁盤原是MBR分區(qū)表,輸入g轉(zhuǎn)換為GPT(新磁盤默認(rèn)可能無分區(qū)表,輸入g會(huì)創(chuàng)建GPT):
Command (m for help): g Created a new GPT disklabel (GUID: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX)
(若需創(chuàng)建MBR分區(qū)表,輸入 o 即可);
創(chuàng)建分區(qū):輸入 n 新建分區(qū),按提示配置:
Command (m for help): n
Partition number (1-128, default 1): # 分區(qū)號(hào)(默認(rèn)1,直接回車)
First sector (2048-419430399, default 2048): # 起始扇區(qū)(默認(rèn)2048,回車)
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-419430399, default 419430399): +100G # 分區(qū)大小(如+100G表示100GB,直接回車則占滿剩余空間)
Created a new partition 1 of type 'Linux filesystem' and of size 100 GiB.
- 分區(qū)類型默認(rèn)是
Linux filesystem(適用于ext4/XFS等); - 若需創(chuàng)建多個(gè)分區(qū),重復(fù)
n命令即可(如再創(chuàng)建一個(gè)50GB分區(qū));
查看分區(qū)結(jié)果:輸入 p 查看已創(chuàng)建的分區(qū):
Command (m for help): p Disk /dev/sdb: 200 GiB, 214748364800 bytes, 419430400 sectors ... Device Start End Sectors Size Type /dev/sdb1 2048 209717247 209715200 100G Linux filesystem /dev/sdb2 209717248 314574847 104857600 50G Linux filesystem
保存分區(qū)并退出:輸入 w 保存配置(若想放棄,輸入 q 退出):
Command (m for help): w The partition table has been altered. Calling ioctl() to re-read partition table. Syncing disks.
驗(yàn)證分區(qū):退出后執(zhí)行 lsblk,確認(rèn)分區(qū)已創(chuàng)建:
lsblk /dev/sdb
輸出應(yīng)顯示 /dev/sdb1 和 /dev/sdb2 分區(qū)。
4.2 用parted工具創(chuàng)建分區(qū)(進(jìn)階)
parted 支持交互式和命令行模式,適合大容量磁盤分區(qū),以創(chuàng)建100GB XFS分區(qū)為例:
sudo parted /dev/sdb # 進(jìn)入parted交互式模式 (parted) mklabel gpt # 創(chuàng)建GPT分區(qū)表(若已存在可跳過) (parted) mkpart primary xfs 0% 100GB # 創(chuàng)建主分區(qū),文件系統(tǒng)xfs,大小0%-100GB (parted) print # 查看分區(qū) (parted) quit # 退出
5. 第三步:格式化分區(qū)(創(chuàng)建文件系統(tǒng))
分區(qū)后必須格式化,即創(chuàng)建文件系統(tǒng),才能存儲(chǔ)數(shù)據(jù)。使用 mkfs 命令(make filesystem),格式為 mkfs.文件系統(tǒng)類型 分區(qū)路徑。
5.1 常用格式化命令(代碼示范)
5.1.1 格式化為ext4(通用首選)
# 格式化/dev/sdb1為ext4(-F強(qiáng)制格式化,-L添加卷標(biāo),方便識(shí)別) sudo mkfs.ext4 -F -L data1 /dev/sdb1
輸出示例(顯示格式化進(jìn)度和信息):
mke2fs 1.46.5 (30-Dec-2021) Creating filesystem with 26214400 4k blocks and 6553600 inodes Filesystem UUID: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX Superblock backups stored on blocks: ... Writing inode tables: done Creating journal (131072 blocks): done Writing superblocks and filesystem accounting information: done
5.1.2 格式化為XFS(高性能場(chǎng)景)
XFS適合大文件和高并發(fā)I/O,常用于服務(wù)器數(shù)據(jù)分區(qū):
# 格式化/dev/sdb2為XFS(-f強(qiáng)制格式化,-L卷標(biāo)) sudo mkfs.xfs -f -L data2 /dev/sdb2
5.1.3 格式化為vfat(跨平臺(tái)兼容)
適合U盤或移動(dòng)硬盤(Windows和Linux均可訪問):
sudo mkfs.vfat -F 32 /dev/sdb3 # -F 32表示FAT32格式
5.2 關(guān)鍵注意事項(xiàng)
- 格式化會(huì)清除分區(qū)內(nèi)所有數(shù)據(jù),務(wù)必確認(rèn)分區(qū)無重要數(shù)據(jù);
- 卷標(biāo)(
-L參數(shù))可通過blkid命令查看,方便識(shí)別分區(qū); - 不要格式化系統(tǒng)分區(qū)(如
/dev/sda1、/dev/sda2),否則會(huì)導(dǎo)致系統(tǒng)崩潰。
6. 第四步:掛載磁盤(臨時(shí)與永久掛載)
格式化后,需將分區(qū)掛載到目錄才能訪問,分為臨時(shí)掛載(重啟失效)和永久掛載(推薦)。
6.1 臨時(shí)掛載(快速測(cè)試)
使用 mount 命令,格式:sudo mount 分區(qū)路徑 掛載點(diǎn)目錄。
6.1.1 操作步驟
創(chuàng)建掛載點(diǎn)目錄(必須是空目錄):
sudo mkdir -p /mnt/data1 # /mnt/data1為掛載點(diǎn),可自定義(如/home/ubuntu/data) sudo mkdir -p /mnt/data2
掛載分區(qū):
# 掛載ext4分區(qū)/dev/sdb1到/mnt/data1 sudo mount /dev/sdb1 /mnt/data1 # 掛載XFS分區(qū)/dev/sdb2到/mnt/data2 sudo mount /dev/sdb2 /mnt/data2
驗(yàn)證掛載:
# 方法1:df -h 查看掛載狀態(tài)(-h人類可讀格式) df -h
輸出示例(可見 /dev/sdb1 和 /dev/sdb2 已掛載):
Filesystem Size Used Avail Use% Mounted on /dev/sda2 995G 100G 845G 11% / /dev/sdb1 100G 20K 100G 1% /mnt/data1 /dev/sdb2 50G 53M 50G 1% /mnt/data2
或用 mount 命令直接查看:
mount | grep /dev/sdb
6.2 永久掛載(重啟不失效,核心推薦)
臨時(shí)掛載重啟后會(huì)失效,需通過 /etc/fstab 文件配置永久掛載,步驟如下:
6.2.1 步驟1:獲取分區(qū)UUID(推薦用UUID掛載,更穩(wěn)定)
UUID是分區(qū)的唯一標(biāo)識(shí),比 /dev/sdb1 更穩(wěn)定(磁盤順序變化不會(huì)影響掛載):
blkid # 查看所有分區(qū)的UUID和文件系統(tǒng)
輸出示例(重點(diǎn)復(fù)制目標(biāo)分區(qū)的UUID):
/dev/sdb1: LABEL="data1" UUID="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" TYPE="ext4" PARTUUID="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" /dev/sdb2: LABEL="data2" UUID="YYYYYYYY-YYYY-YYYY-YYYY-YYYYYYYYYYYY" TYPE="xfs" PARTUUID="YYYYYYYY-YYYY-YYYY-YYYY-YYYYYYYYYYYY"
6.2.2 步驟2:編輯/etc/fstab文件
/etc/fstab 是系統(tǒng)啟動(dòng)時(shí)自動(dòng)掛載的配置文件,格式為:UUID=xxx 掛載點(diǎn) 文件系統(tǒng)類型 掛載參數(shù) 0 0。
備份fstab文件(重要!防止配置錯(cuò)誤):
sudo cp /etc/fstab /etc/fstab.bak
編輯fstab:
sudo vim /etc/fstab # 用vim編輯,新手可改用nano:sudo nano /etc/fstab
添加掛載配置(在文件末尾添加以下內(nèi)容):
# 掛載/dev/sdb1(ext4)到/mnt/data1 UUID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX /mnt/data1 ext4 defaults 0 2 # 掛載/dev/sdb2(xfs)到/mnt/data2 UUID=YYYYYYYY-YYYY-YYYY-YYYY-YYYYYYYYYYYY /mnt/data2 xfs defaults 0 2
配置參數(shù)解讀:
defaults:默認(rèn)掛載參數(shù)(rw、suid、dev、exec、auto、nouser、async);- 第5列(0):是否dump備份(0=不備份,1=備份);
- 第6列(2):是否開機(jī)自檢(0=不自檢,1=優(yōu)先自檢,2=次要自檢)。
6.2.3 步驟3:驗(yàn)證配置并生效
測(cè)試掛載配置是否正確(關(guān)鍵!避免配置錯(cuò)誤導(dǎo)致系統(tǒng)無法啟動(dòng)):
sudo mount -a # 加載/etc/fstab中的所有配置,無報(bào)錯(cuò)則正確
若報(bào)錯(cuò),檢查UUID、掛載點(diǎn)、文件系統(tǒng)類型是否正確;
驗(yàn)證掛載:再次執(zhí)行 df -h,確認(rèn)分區(qū)已掛載;
重啟測(cè)試(可選):重啟系統(tǒng)后,執(zhí)行 df -h 確認(rèn)掛載依然生效:
sudo reboot
7. 常用磁盤管理輔助命令(必備工具)
7.1 查看磁盤使用情況
df -h # 查看所有掛載分區(qū)的使用情況 du -sh /mnt/data1/* # 查看掛載點(diǎn)下各文件/目錄的大?。?s匯總,-h人類可讀)
7.2 查看分區(qū)UUID和文件系統(tǒng)
blkid # 快速查看所有分區(qū)的UUID、LABEL、TYPE
7.3 卸載分區(qū)(如需修改或移除磁盤)
# 卸載/mnt/data1(確保當(dāng)前不在該目錄下) sudo umount /mnt/data1 # 或通過分區(qū)路徑卸載 sudo umount /dev/sdb1
- 卸載前需退出掛載點(diǎn)目錄(如當(dāng)前在
/mnt/data1,需先執(zhí)行cd ~); - 若提示“device is busy”(設(shè)備忙),用
fuser -m /mnt/data1查看占用進(jìn)程,殺死進(jìn)程后再卸載。
7.4 擴(kuò)展分區(qū)(磁盤空間不足時(shí))
若分區(qū)空間不夠,可擴(kuò)展分區(qū)(以ext4為例):
- 先通過分區(qū)工具(fdisk/parted)擴(kuò)展分區(qū)大?。ㄐ柘葎h除相鄰空閑分區(qū));
- 擴(kuò)展文件系統(tǒng):
# 擴(kuò)展ext4分區(qū)(需先卸載或在線擴(kuò)展) sudo resize2fs /dev/sdb1 # 擴(kuò)展XFS分區(qū)(無需卸載) sudo xfs_growfs /mnt/data2
8. 常見問題排查(避坑指南)
8.1 掛載失?。?ldquo;mount: /mnt/data1: can’t find in /etc/fstab.”
- 原因:使用
mount 掛載點(diǎn)時(shí),未在/etc/fstab配置,需指定分區(qū)路徑:sudo mount /dev/sdb1 /mnt/data1。
8.2 重啟后掛載失效
- 原因:未配置
/etc/fstab,或配置錯(cuò)誤; - 解決:按6.2節(jié)重新配置
/etc/fstab,執(zhí)行sudo mount -a測(cè)試。
8.3 系統(tǒng)無法啟動(dòng)(因fstab配置錯(cuò)誤)
- 原因:
/etc/fstab中UUID、掛載點(diǎn)或文件系統(tǒng)類型錯(cuò)誤; - 解決:
- 啟動(dòng)時(shí)按
e進(jìn)入GRUB編輯模式; - 在linux內(nèi)核行末尾添加
init=/bin/bash,按Ctrl+X啟動(dòng); - 執(zhí)行
mount -o remount,rw /掛載根分區(qū)為可寫; - 編輯fstab:
vim /etc/fstab,修正錯(cuò)誤配置; - 重啟:
reboot。
- 啟動(dòng)時(shí)按
8.4 格式化時(shí)提示“Device or resource busy”
- 原因:分區(qū)已掛載,無法格式化;
- 解決:先卸載分區(qū):
sudo umount /dev/sdb1,再格式化。
9. 總結(jié)與實(shí)操建議
Linux磁盤管理的核心流程是 “識(shí)別→分區(qū)→格式化→掛載”,關(guān)鍵要點(diǎn)總結(jié):
- 新磁盤優(yōu)先選擇GPT分區(qū)表(支持大容量和多分區(qū));
- 文件系統(tǒng)推薦ext4(通用)或XFS(高性能);
- 永久掛載必須配置
/etc/fstab,且務(wù)必先用mount -a測(cè)試; - 操作前備份重要數(shù)據(jù),避免誤格式化系統(tǒng)分區(qū)。
實(shí)操建議:
- 新手可先用虛擬機(jī)(如VMware、VirtualBox)添加虛擬磁盤練習(xí),避免損壞物理機(jī)數(shù)據(jù);
- 實(shí)際部署時(shí),為系統(tǒng)分區(qū)、數(shù)據(jù)分區(qū)、日志分區(qū)劃分獨(dú)立磁盤/分區(qū),提升安全性和可維護(hù)性;
- 定期用
df -h查看磁盤使用情況,避免磁盤滿導(dǎo)致服務(wù)異常。
以上就是Linux磁盤管理之分區(qū)、格式化與掛載磁盤的方法的詳細(xì)內(nèi)容,更多關(guān)于Linux分區(qū)、格式化與掛載磁盤的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Linux 命令行通配符及轉(zhuǎn)義符的實(shí)現(xiàn)
這篇文章主要介紹了Linux 命令行通配符及轉(zhuǎn)義符的實(shí)現(xiàn),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-11-11
關(guān)于bash函數(shù)你可能不知道的一些事情(譯)
這篇文章主要給大家介紹了關(guān)于bash函數(shù)你可能不知道的一些事情,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-07-07
Apache James配置連接達(dá)夢(mèng)數(shù)據(jù)庫(kù)的步驟
本文介紹了如何配置Apache James郵件服務(wù)器以連接達(dá)夢(mèng)數(shù)據(jù)庫(kù),包括導(dǎo)入JDBC驅(qū)動(dòng)、修改配置文件和SQL語(yǔ)句,并提供了解決啟動(dòng)報(bào)錯(cuò)的方法2024-09-09
CentOS7 Docker Nginx部署及運(yùn)行詳解
這篇文章主要介紹了CentOS7 Docker Nginx部署及運(yùn)行詳解,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-08-08
LuManager VPS主機(jī)控制面板安裝和Eduvps免費(fèi)VPS測(cè)評(píng)
這篇文章主要介紹了LuManager VPS主機(jī)控制面板安裝和Eduvps免費(fèi)VPS測(cè)評(píng),需要的朋友可以參考下2016-04-04
如何在CentOS8上安裝和配置Postfix郵件服務(wù)器的方法示例
這篇文章主要介紹了如何在CentOS8上安裝和配置Postfix郵件服務(wù)器的方法示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11

