1、磁盤分區(qū)、格式化、文件系統(tǒng)、文件系統(tǒng)類型、掛載、掛載點 的概念
如果我們想在系統(tǒng)中增加一塊硬盤用于數(shù)據(jù)存取,那么大概需要以下步驟:
1)對該磁盤進行分區(qū)(分割)
目的,一是為了分割硬盤空間方便管理,更重要的是讓各個分區(qū)都基本獨立開來,這樣如果某個區(qū)發(fā)生問題,至少不會直接影響到其他分區(qū)。
舉例:如果把一塊磁盤比喻成一大塊地,那么對磁盤進行分區(qū)就相當于是把地按照需要劃分成幾塊地或者幾個區(qū)域。劃分出來的某塊地或者某個區(qū)域我們一般稱作“某個分區(qū)”
2)對某個分區(qū)進行格式化
各種操作系統(tǒng)都必須按照一定的方式來管理數(shù)據(jù),對分區(qū)進行格式化的目的是為了在分區(qū)里寫入文件系統(tǒng),這樣才能被操作系統(tǒng)使用。
舉例:我們把向磁盤里存數(shù)據(jù)比喻成現(xiàn)實生活中向“銀行保管箱”里存物貴重品
地剛剛你已經(jīng)分好了,可是這個地你能直接用來存物品嗎?當然不行,你得在分好的某塊地上建好大廈以及在大廈里構(gòu)建保管柜,這樣才能夠用于存儲物品。
■ 磁盤分區(qū)也是同樣的道理,要想能夠被操作系統(tǒng)用于實際的存儲數(shù)據(jù),還得在磁盤分區(qū)里寫入文件系統(tǒng),也就是所謂的“格式化”,即操作系統(tǒng)需要按照特定的規(guī)劃去建設(shè)開發(fā)這個分區(qū),開發(fā)好后才能被操作系統(tǒng)用作數(shù)據(jù)存儲。
■ 問一下:向分區(qū)寫入文件系統(tǒng),這個文件系統(tǒng)本身會占用磁盤空間嗎?
■ 在地上建設(shè)大廈和構(gòu)建保管柜,建設(shè)大廈時肯定可以有不同的結(jié)構(gòu)供選擇吧?保管柜也有不同的品牌供選擇吧?同樣的,文件系統(tǒng)也有不同的類型供選擇,比如我們 windows 下常見的 NTFS、FAT32 等,它們就是傳說中的文件系統(tǒng)類型,而 Linux 下常見的文件系統(tǒng)類型有 EXT*(比如 EXT4)、xfs 等等,具體我們后面講。
■ 一個分區(qū)被格式化(寫入文件系統(tǒng),不管是什么類型的文件系統(tǒng))后,我們就可以稱作它是一個“文件系統(tǒng)”
3)掛載
這個就是把某個文件系統(tǒng)用管子接到某個目錄上,對應(yīng)的目錄就稱作掛載點,參考第一回!
4)一塊硬盤需要經(jīng)過哪些步驟才可以被我們 Linux 操作系統(tǒng)用來實際的存取數(shù)據(jù)呢?
分區(qū)(分割) -> 對(某個)分區(qū)進行格式化(寫入文件系統(tǒng)) -> 掛載
所以比較講究的說法是:我們稱呼一個可被掛載的數(shù)據(jù)為一個文件系統(tǒng),而不是叫一個分區(qū)
請問:第一步 分區(qū)(分割) 是必須的嗎?一整塊磁盤可不可以不進行分區(qū)就直接格式化,然后掛載使用
2、查看文件系統(tǒng)使用情況(比如容量空間的使用情況)
df [-ihT] [FILE...]
注:
FILE 可以直接指定文件系統(tǒng)(路徑),則會打印出該文件系統(tǒng)的磁盤空間使用情況;
FILE 也可以指定為非文件系統(tǒng)文件的路徑則會輸出該文件相關(guān)的文件系統(tǒng)的磁盤空間使用情況;
選項:
-i:以 inode 數(shù)量顯示
-h:以較易閱讀的單位來顯示容量
-T:顯示出分區(qū)的文件系統(tǒng)格式名稱
3、查看目錄所占容量(包括其后代文件所占)
du [-ahcs] FILE... 選項:
-h:以較易閱讀的單位來顯示容量(常用)
-s:只列出總量(常用)
-a:將文件的容量也顯示出來,而不是僅僅列
-c:最后列出總量
常用形式:du -sh FILE...
4、列出所有可用塊設(shè)備的信息(即列出系統(tǒng)上所有存儲
lsblk [-dfp] [device]
注:可以看成是 list block device 的縮寫,這個命令很重要可以看到系統(tǒng)上塊設(shè)備的各種情況比如容量這些都是可以查看的!
選項:
-d:僅列出磁盤,而不列出其分區(qū)信息
-f:顯示文件系統(tǒng)信息,比如類型以及 UUID 等;UUID 是通用唯一識別碼,Linux 會將系統(tǒng)內(nèi)所有的裝置都給予一個獨一無二的識別碼
-p:列出完整路徑!而不是僅列出名字
PS:一般我們是直接敲 lsblk 來查看
■ 存儲設(shè)備名稱規(guī)范:
■ 物理磁盤:/dev/sd[a-z],比如/dev/sda、/dev/sdb 等等
■ 該磁盤的分區(qū):
/dev/sd[a-z]數(shù)字,比如/dev/sda1:表示是/dev/sda 這個磁盤的某個分區(qū),其中數(shù)字 1 是分區(qū)號。
■ 云服務(wù)上磁盤可能為:/dev/vd[a-z]
■ 該磁盤的分區(qū):同理...
■ 所以查看存儲設(shè)備也可以通過類似這種方法:
ls -l /dev/[sv]d
5、磁盤分區(qū)
分區(qū)的兩種方式: MSDOS (MBR) 分區(qū)表方式分區(qū)、GPT 分區(qū)表(GUID partition table) 方式分區(qū),他們各自有什么特點呢?
1)通過 MSDOS (MBR) 分區(qū)表 方式分區(qū)
①特點:
■ 主分區(qū)+擴展分區(qū) 最多 4 個
■ 擴展分區(qū)最多只有一個
■ 可以在擴展分區(qū)下 劃分出多個邏輯分區(qū)
■ 不能直接支持 2T 以上磁盤
②有人可能有疑問為什么分區(qū)還分什么主分區(qū)、擴展分區(qū)、邏輯分區(qū)這些名詞呢?
其實歸根到底是因為 MSDOS (MBR) 分區(qū)表的分區(qū)方式技術(shù)上最多只能有四個分區(qū),4 個分區(qū)實在是很容易就不夠用,怎么辦呢?于是牛人就想辦法把一個分區(qū)作為擴展分區(qū)(擴展分區(qū)本身不能直接用的),可以在擴展分區(qū)的基礎(chǔ)上劃分出很多個邏輯分區(qū)就可以使用了,這樣主分區(qū)+多個邏輯分區(qū)就可以打破只能有 4 個分區(qū)的限制。那邏輯分區(qū)與主分區(qū)在數(shù)據(jù)存儲上是沒有區(qū)別的,只是名分不同,至于其具體的硬件層面的技術(shù)實現(xiàn)細節(jié)就不是我
們應(yīng)該考慮的問題了!
③fdisk [-l] [設(shè)備名稱]
■ 選項:
-l:輸出后面接的設(shè)備所有的分區(qū)內(nèi)容。
若后不接具體設(shè)備則把能列出來的都列出來
④fdisk 后面如果不加-l 選項,而是接磁盤的名稱 則可以對該磁盤進行分區(qū)
■ 舉例:
fdisk /dev/sdb
根據(jù)提示輸入 m 可獲取幫助:
常用的交互命令:
p:打印出當前磁盤的分區(qū)信息
n:新建一個新的分區(qū)
w:保存
q:退出
d:刪除一個分區(qū)
注:這個命令是一個非常容易操作的命令,因為每一步都有提示!
2)GPT 分區(qū)表(GUID partition table) 方式分區(qū)
通過這個分區(qū)表方式來分區(qū)就強大了,分區(qū)數(shù)量沒有 4 個限制了,所以就沒有什么主分區(qū)、擴展分區(qū)、邏輯分區(qū)這些概念了都是分區(qū)沒有名分的不同了;也沒有 2T 容量的限制!所以比上面 MBR 分區(qū)表方式的分區(qū)更強大更先進。
警告:其實目前的 fdisk 命令已經(jīng)開始支持 GPT 分區(qū)表方式分區(qū)進行分區(qū),不過目前是在實驗階段,不建議生產(chǎn)環(huán)境使用。
所以我們最好使用專門的用于 GPT 分區(qū)表方式分區(qū)的命令:gdisk,這個命令使用上和 fdisk 類似
3)partprobe [-s]
partprobe 更新 Linux 核心的分區(qū)表信息,如果分完區(qū)結(jié)果看不到分區(qū)設(shè)備信息(虛擬機這邊不用),就手動更新下,當然重啟系統(tǒng)也可以
選項:
-s:顯示摘要和分區(qū)
4)parted 命令
parted 支持 MSDOS (MBR) 分區(qū)表方式分區(qū) 以及 GPT 分區(qū)表(GUID partition table) 方式分區(qū)進行分區(qū),不過我們上面介紹了 fdisk 與 gdisk 用戶體驗更好,所以更推 薦你使用 fdisk 或 gdisk 進行分區(qū)!parted 命令你如果有興趣自行查詢使用。
■ 查詢幫助
①直接敲 parted 進入交互模式(輸入之后會等待你輸入交互命令)
②輸入 help 命令查看這邊支持的交互命令
提示:
■ 這邊的交互命令也可以通過 tab 進行自動補全,甚至你不敲 help 直接敲兩次 tab 試試!
■ 當然直接通過 man parted 的方式也可以查詢 parted 的幫助信息
6、格式化(寫入文件系統(tǒng))
1)Linux 下常見的文件系統(tǒng)類型:
■ ext4
第四代擴展文件系統(tǒng)(英語:Fourth extended filesystem,縮寫為 ext4)是 Linux 系統(tǒng)下的日志文件系統(tǒng),是 ext3 文件系統(tǒng)的后繼版本。
■ 什么叫日志文件系統(tǒng)?
日志文件系統(tǒng)(英語:Journaling file system)是一種文件系統(tǒng)在發(fā)生變化時,先把相關(guān)的信息寫入一個被稱為日志的區(qū)域,然后再把變化寫入主文件系統(tǒng)的文件系統(tǒng)。 在文件系統(tǒng)發(fā)生故障(如內(nèi)核崩潰或突然停電)時,日志文件系統(tǒng)更容易保持一致性,并且可以較快恢復(fù)。
■ 注意:這個日志不是用來修復(fù)數(shù)據(jù)損壞的而是修復(fù)文件系統(tǒng)的,你可以理解為他主要修復(fù)這種情況:當把物品存入保管箱時,由于突發(fā)狀況使得銀行沒有把這個保管箱登記標記為已使用,這時就產(chǎn)生了不一致性(比如實際已使用的保管箱數(shù)量與登記系統(tǒng)里記錄的不一樣)!至于說數(shù)據(jù)本身的丟失,就不是這個能夠恢復(fù)的了!
■ xfs
xfs,一種高性能的日志文件系統(tǒng),也是 CentOS7 上默認的文件系統(tǒng)類型(CentOS6 上默認是 ext4)。
■ 比較
■ 當然文件系統(tǒng)類型有很多,可以通過以下命令查看當前操作系統(tǒng)支持那些文件系統(tǒng)類型:
ls -l /lib/modules/$(uname -r)/kernel/fs
我們知道 ext4 和 xfs 即可
2)格式化操作
■ mkfs.xfs [-L] 設(shè)備
選項:
-L:指定文件系統(tǒng)的 Label name,最長可以有 12
其他參數(shù)等以后遇到特殊的格式化需求再 man 查詢吧!
■ mkfs.ext4 [-L] 設(shè)備
■ mkfs [-t 文件系統(tǒng)類型] 設(shè)備
這是個綜合命令,當我們使用 mkfs -t xfs 時,它內(nèi)部就會去執(zhí)行 mkfs.xfs
選型:
-t: 可接系統(tǒng)支持的文件系統(tǒng)類型,例如常見文件系統(tǒng)類型:xfs、ext4 等
3)查看文件系統(tǒng)信息
■ dumpe2fs [-h] 文件系統(tǒng)設(shè)備路徑
顯示 ext2/ext3/ext4 類型的文件系統(tǒng)信息
選項:
-h:只顯示 superblock 信息,superblock 里記載了該文件系統(tǒng)的整體信息比如 inode、date block 的總量、剩余量、以及每個 inode 或 date block
的大小、等屬性。
■ xfs_info 文件系統(tǒng)設(shè)備路徑
顯示 xfs 類型的文件系統(tǒng)信息
■ blkid 查看文件系統(tǒng) UUID 等信息
■ 以列表的形式輸出文件系統(tǒng)的設(shè)備名路徑、文件系統(tǒng)類型、lable、掛載點、UUID 信息
■ 查看文件系統(tǒng)的 UUID
blkid 文件系統(tǒng)路徑
blkid 可列出各個文件系統(tǒng)的 UUID 、文件系統(tǒng)類型 等參數(shù)
blkid -s UUID [文件系統(tǒng)設(shè)備路徑]
如果不指定文件系統(tǒng)路徑,則顯示所有文件系統(tǒng)的 UUID
■ 查看文件系統(tǒng) LABEL:blkid -s LABEL [文件系統(tǒng)設(shè)備路徑]
如果不指定文件系統(tǒng)路徑,則顯示所有文件系統(tǒng)的 LABEL
■ 修改文件系統(tǒng)的 LABEL 即卷名稱類似于我們 windows 下盤的名字比如 C、D、E 的意思(如果格式化的時候沒有設(shè)置可以通過這個方法來設(shè)置或修改)
■ ext 類的文件系統(tǒng),修改某個文件系統(tǒng)的卷標 LABEL 可以使用 e2label 或 tune2fs
e2label 設(shè)備路徑 [新 LABEL]
tune2fs –L 新 LABEL 文件系統(tǒng)設(shè)備路徑
■ xfs 類的文件系統(tǒng),修改 LABLE 請使用 xfs_admin
xfs_admin -L 新 LABEL
7、掛載/卸載文件系統(tǒng)
1)使用 mount 進行手動掛載
■ mount [-t 文件系統(tǒng)類型] 文件系統(tǒng)路徑 掛載點
選項:
-t :來指定欲掛載的文件系統(tǒng)類型(一般不用加、因為系統(tǒng)會自動分析文件系統(tǒng)類型的)
其他一些選項我們待會再講
注:強烈不推薦使用文件系統(tǒng)名稱(路徑)的方式來掛載,因為不可靠(萬一哪天硬盤插入服務(wù)器接口的順序改變了那么名稱就變了)!
■ mount [-t 文件系統(tǒng)類型] UUID=‘’ 掛載點
通過文件系統(tǒng)名字掛載并不可靠,所以最好使用文件系統(tǒng)的 UUID 號來掛載!
■ mount [-t 文件系統(tǒng)類型] LABEL=‘’ 掛載點
也可以通過 文件系統(tǒng)的 LABEL 名來掛載
■ mount -o 后面接掛載時設(shè)定的參數(shù)文章來源:http://www.zghlxwxcb.cn/news/detail-760901.html
未完待續(xù)文章來源地址http://www.zghlxwxcb.cn/news/detail-760901.html
到了這里,關(guān)于第六章 Linux 磁盤管理的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!