1. 磁盤分區類型
磁盤分區主要分為兩種類型:
-
MBR
MBR是一個比較古老的分區類型了,不支持2TB的大硬盤。在磁盤的0磁道0扇區的512字節存放的就是MBR的信息。前446字節為bootloader,后面64字節存放的是分區表,后面2字節存放的是55aa的分區標識符。MBR分區類型最多只能支持4個主分區和擴展分區,其余的分區只能是邏輯分區。 -
GPT
GPT分區是為了應多MBR的諸多問題而產生的。GPT里面已經沒有主分區和邏輯分區的概念了。所有的都是主分區,最大支持128個主分區。
2. 分區管理命令
2.1 fdisk
fdisk:劃分mbr分區 |
---|
-l:用于查看磁盤的分區信息 |
子命令 |
p:分區列表 |
t:更改分區類型 |
n:創建新分區 |
d:刪除分區 |
w:保存退出 |
q:不保存退出 |
2.2 gdisk
gdisk主要用于創建GPT分區,使用方法和fdisk類似
2.3 parted
parted可以用于管理mbr和gpt分區:
命令 |
---|
parted /dev/sd# mklabel msdos|gpt:指定分區類型是gpt或mbr |
parted /dev/sd# mkpart primary 1 200:創建id為1的200M主分區 |
parted /dev/sd# rm 1:刪除id1分區 |
parted /dev/sd# print:查看分區表 |
parted -l:查看磁盤詳細信息 |
注意:
parted的所有操作都是實時生效的,所以使用的時候需要注意!
3. 創建文件系統
磁盤在創建完分區之后需要創建文件系統才能進行文件的存儲。
通過/lib/modules/`uname -r`/kernel/fs可以查看系統支持的文件系統類型。
3.1 創建文件系統
創建文件系統通過mkfs命令
mke2fs |
---|
-t:指定要創建的文件系統類型 |
-L 卷標:指定要格式化分區的卷標名 |
-j:相當于創建ext3 |
-i #:數據空間每多少個字節創建一個inode,inode大小不應該小于block大小 |
-N #:為數據空間創建多少個inode |
-m #:指定為管理員保留的空間大小,默認為5% |
-O FEATURE[…]:啟用指定的特性 |
3.2 查看編輯文件系統
blkid |
---|
-U:查看指定uuid的設備 |
-L:查看指定卷標的設備信息 |
e2label |
管理ext系列文件系統給的卷標,如e2label /dev/sdb1 test |
findfs |
findfs LABEL=卷標名:根據卷標查找分區 |
findfs UUID=uuid號:根據uuid查找分區 |
tune2fs |
-l:查看指定文件系統的超級塊信息 |
-L 卷標:修改卷標 |
-m #:修改預留給管理員的空間 |
-j:將ext2升級為ext3 |
-O:啟用或禁用文件系統屬性 |
-o:調整文件系統的默認掛載選項 |
-U uuid:修改UUID號 |
dumpe2fs |
查看超級塊和分組信息 |
-h:只查看超級塊信息,不查看分組信息 |
3.3 修復文件系統
文件系統有時會因為各種原因導致損壞,所以就需要修復。
fsck |
---|
-t:指定分區類型 |
-p:自動修復錯誤 |
-r:交互式修復 |
-y:自動修復 |
ext2和ext3的區別是ext2沒有日志功能,在生產環境中,文件系統的日志功能是很重要的。
3.4 inode,datablock和superblock介紹
-
datablock
在ext文件系統中數據是存放在datablock中的,datablock大小有三種:1024K,2048K,4096K。一個文件可以占用多個datablock。 -
inode
真實的數據存放在datablock區域中,數據的元數據則存放在inode中,如數據分布在哪些datablock中,數據的大小等屬性信息。每個數據占用一個inode,所以如果inode占滿了,datablock還有空余的情況下也不允許在存放數據。 -
superblock
超級塊往往存放在分組的最起始位置,其存放的內容包括inode bitmap,block bitmap,inode table等信息。如果超級塊損壞,則所有數據將不可讀,所有超級塊還有多個備份。
4. 掛載、卸載分區
4.1 掛載分區
mount |
---|
mount /dev/sd# 掛載點:直接通過設備名掛載 |
mount -L 卷標|-U uuid:可以通過卷標和uuid掛載 |
-t:指定要掛載的分區的類型,系統現在會自動更識別,不需要指定 |
-r:只讀掛載 |
-w:讀寫掛載 |
-n:掛載不更新/etc/mtab文件,mount也不可見,可以通過cat /proc/mounts看到 |
-a:自動掛載所有支持自動掛載并存在于/etc/fstab中的分區 |
-B | –bind:掛載一個目錄到另外一個目錄 |
-o 掛載選項:指定掛載時需要開啟的特性: |
async:異步讀寫 |
sync:同步讀寫模式,安全,但是降低性能 |
atime|noatime:訪問是否允許改變atime |
auto|noauto:是否支持-a自動掛載 |
exec|noexec:是否支持在此文件系統運行應用程序 |
dev|nodev:是否支持在此分區使用設備文件 |
suid|nosuid:是否支持suid和sgid權限,建議采用nosuid |
remount:重新掛載,不需要umount |
ro:只讀 |
rw:讀寫 |
user|nouser:是否允許普通用戶掛載此設備,默認只有管理員才能掛載設備 |
acl:是否啟用分區的acl功能 |
defaults:相當于rw,async,dev,auto,nouser,nosuid |
4.2 查看掛載情況
findmnt 掛載點:查看掛載情況 |
---|
lsof 掛載點:查看正在訪問指定文件系統的進程 |
fuser -v 掛載點:查看正在訪問指定文件系統的進程和用戶 |
furer -km 掛載點:踢出所有正在訪問的進程和用戶 |
4.3 取消掛載
umount 設備名:通過設備名取消掛載 |
---|
umount 掛載點:通過掛載點取消掛載 |
5. /etc/fstab介紹
默認所有的分區在系統開機之后是不會自動掛載的,此時需要把掛載信息添加到/etc/fstab中
/etc/fstab分6個字段:
- 設備名,卷標名,uuid,因為設備名和卷標名都會改變,建議采用uuid
- 掛載點
- 文件系統類型,光盤ISO9660,swap分區為swap
- 掛載選項:defaults,rw,async等參數
- 是否定時備份分區,0為不備份
- 開機是否檢測分區,0為不檢測,此處數字代表優先級
6. swap分區
swap交換分區用于內存不夠用時臨時把內存不用的數據存放到swap交換分區上,所以建議swap分區采用高速磁盤。
mkswap 設備名:創建swap交換分區 |
---|
swapon swap分區名:掛載swap分區 |
swapon -s:查看swap分區掛載情況;swap分區有優先級之分,可以通過調整優先級來調整swap分區的使用優先順序 |
swapoff swap分區名:卸載是swap分區 |
以上是對Linux分區管理的總結,LInux磁盤高級管理部分后續再補充。
原創文章,作者:王子豪,如若轉載,請注明出處:http://www.www58058.com/73867
主要對linux的分區管理進行了詳細的介紹,內容總結的很詳細,排版也很好,可以把博客的數量再往上提一下了!