本篇文章給大家帶來linux下的磁盤管理中的硬盤掛載,linux操作系統掛載硬盤需要了解的一些知識。希望對大家有幫助。
這可能是迄今為止介紹的最最最實用的linux硬盤掛載的文章了,比較詳細。由于工作原因,平時使用的比較多。主要目的,只是想讓更多人的了解到linux下掛載磁盤也不是那么困難。
有幾種常見的文件系統,以前的老牌文件系統ext文件系統(ext2、ext3、ext4)。
在Redhat7系列還是推薦一款優秀的xfs文件系統,在性能上已經超越了ext文件系統。XFS文件系統是硅谷圖形公司(Silicon Graphic Inc,簡稱SGI)開發的用于IRIX(一個unix操作系統)的文件系統,后來將其移植到Linux操作系統上。XFS是一個高級日志文件系統,其優勢是極具伸縮性,同樣也極具健壯性。
還有一款btrfs(B-tree文件系統通常讀作Buffer FS、Better FS、B-tree FS)文件系統同樣很優秀,Redhat7安裝就自帶。
btrfs具有很多特性。例如:寫快照、快照的快照、內建RAID(通常稱為磁盤陣列)、子卷(subvolume),其最核心的理念是設計
容錯、修復以及易于管理。btrfs最大容量卷為16EB,單個最大文件為16EB。
須知:本文全程使用的是安裝選擇語言是簡體中文版的,所以看到的漢字顯示,請不要驚訝。
開局一張圖,文章全靠編。開個玩笑,純屬逗大家樂一樂。下面的圖片,已經點明了本文的核心內容。
建議:進行測試,可以使用虛擬機配合linux(Redhat系列或者ubuntu搭建環境)測試。
一、查看系統分區情況
fdisk參數說明
刪除存在的硬盤分區,此時會提示需要刪除的序列號是哪一個。
-
刪除分區:d
-
新增分區:n
-
查看分區信息:p
-
保存分區變更信息:w
-
不保存并退出:q
-
獲取幫助信息:m
1、列出分區表
列出分區表,從下面的列出的選項可以看出,原始的磁盤磁盤 /dev/sda:21.5 GB是初始安裝linux操作系統就分配的。另外一塊磁盤,是我新增的磁盤sdb用于測試演示。
fidsk?-l [root@cnwangk?/]#?fdisk?-l 磁盤?/dev/sda:21.5?GB,?21474836480?字節,41943040?個扇區 Units?=?扇區?of?1?*?512?=?512?bytes 扇區大小(邏輯/物理):512?字節?/?512?字節 I/O?大小(最小/最佳):512?字節?/?512?字節 磁盤標簽類型:dos 磁盤標識符:0x0001805e ???設備?Boot??????Start?????????End??????Blocks???Id??System /dev/sda1???*????????2048??????411647??????204800???83??Linux /dev/sda2??????????411648?????4507647?????2048000???83??Linux /dev/sda3?????????4507648?????8603647?????2048000???82??Linux?swap?/?Solaris /dev/sda4?????????8603648????41943039????16669696????5??Extended /dev/sda5?????????8605696????41943039????16668672???83??Linux 磁盤?/dev/sdb:10.7?GB,?10737418240?字節,20971520?個扇區 Units?=?扇區?of?1?*?512?=?512?bytes 扇區大小(邏輯/物理):512?字節?/?512?字節 I/O?大小(最小/最佳):512?字節?/?512?字節 磁盤標簽類型:dos 磁盤標識符:0x95df3b22 ???設備?Boot??????Start?????????End??????Blocks???Id??System /dev/sdb2????????10485760????20971519?????5242880???83??Linux
直接輸入fdisk命令,中文版會提示幫助信息以及使用方法
fdisk?[選項]?????更改分區表 #例如新增的磁盤sdb fdisk?/dev/sdb fdisk?[選項]?-l??列出分區表 fdisk?-s?????????給出分區大小(塊數)
二、建立linux文件系統
1、xfs文件系統
如下所示,我將新建xfs文件系統,指向的是新增的一塊磁盤文件路徑/dev/sdb。同樣也是Redhat7系列默認推薦的使用格式。
mkfs.xfs??/dev/sdb
做一個簡單說明:xfs文件系統提供了備份分區工具xfsdump以供用戶使用。優勢在于用戶不用借助第三方軟件就可以實現對xfs文件系統上的數據實施備份。備份過程如下所示:
xfsdump?/backup/dump_sdc1?/sdc1
2、btrfs文件系統
如下所示,我將新建btrfs文件系統,指向的是新增的一塊磁盤文件路徑/dev/sdb,下面最終演示的也是btrfs文件系統的配置。
mkfs.btrfs?/dev/sdb
3、ext文件系統
在Redhat6以及之前,用的還是ext文件系統。后來到7系列推薦使用xfs文件系統。
mkfs.ext4?/dev/sdb
三、創建要掛載的路徑
1、創建掛載的文件data
使用mkdir命令創建data目錄,用于后續掛載新增的磁盤。
mkdir?/data
查看創建好的掛載路徑data,初始是空的
ls?/data
2、使用磁盤
寫入一個簡單shell的腳本作為演示
echo?-e?"echo?"hello?linux"necho?"create?btrfs?filesystem""?>>?/data/data.sh
寫入簡單的shell腳本后,測試查看并執行這個腳本
#再次查看data盤下的文件 [root@cnwangk?/]#?ls?/data/ data.sh sh?/data/data.sh #運行腳本 [root@cnwangk?/]#?sh?/data/data.sh? hello?linux create?btrfs?filesystem
從上面可以看出一個基本的磁盤的管理,會引出一些基本命令的使用,比如ls、mkdir、echo等等。本文的受眾群體是需要掌握一些linux基本命令知識的。當然能看到本文的,也說明您還是有一些基礎的。
四、使用fdisk對/dev/sdb進行分區
1、分區命令fdisk
使用fdisk對新增的磁盤/dev/sdb進行分區,之前演示我已經使用主分區2,現在演示是邏輯擴展分區,使用參數e。
-
新增分區:n
-
新增主分區:p
-
擴展分區:e
-
注意:你可以自定義大小,也可以回車就是使用默認大小和扇區。
fdisk?/dev/sdb [root@cnwangk?/]#?fdisk?/dev/sdb 歡迎使用?fdisk?(util-linux?2.23.2)。 更改將停留在內存中,直到您決定將更改寫入磁盤。 使用寫入命令前請三思。 命令(輸入?m?獲取幫助):n?#新增分區,p則為主分區,e則為擴展分區 Partition?type: ???p???primary?(1?primary,?0?extended,?3?free) ???e???extended Select?(default?p):?e 分區號?(1,3,4,默認?1):1 起始?扇區?(2048-20971519,默認為?2048): 將使用默認值?2048 Last?扇區,?+扇區?or?+size{K,M,G}?(2048-10485759,默認為?10485759): 將使用默認值?10485759 分區?1?已設置為?Extended?類型,大小設為?5?GiB 命令(輸入?m?獲取幫助):p?#此時用參數p查看未保存的分區信息 磁盤?/dev/sdb:10.7?GB,?10737418240?字節,20971520?個扇區 Units?=?扇區?of?1?*?512?=?512?bytes 扇區大小(邏輯/物理):512?字節?/?512?字節 I/O?大小(最小/最佳):512?字節?/?512?字節 磁盤標簽類型:dos 磁盤標識符:0x95df3b22 #查看到新增分區的設備信息 ???設備?Boot??????Start?????????End??????Blocks???Id??System /dev/sdb1????????????2048????10485759?????5241856????5??Extended /dev/sdb2????????10485760????20971519?????5242880???83??Linux 命令(輸入?m?獲取幫助):w?#輸入w參數進行保存,輸入q進行不保存退出。 The?partition?table?has?been?altered! Calling?ioctl()?to?re-read?partition?table. WARNING:?Re-reading?the?partition?table?failed?with?error?16:?設備或資源忙. The?kernel?still?uses?the?old?table.?The?new?table?will?be?used?at the?next?reboot?or?after?you?run?partprobe(8)?or?kpartx(8) 正在同步磁盤。
五、建立btrfs文件系統
1、建立文件系統
新建btrfs文件系統,在確定進行分區之后執行此命令,最后進行掛載磁盤。
mkfs.btrfs?/dev/sdb2
同樣可以使用如下命令
mkfs?-t?btrfs?/dev/sdb2
六、掛載文件系統
1、掛載命令mount
接著上面建立好btrfs文件系統,此時再掛載到新建的data目錄下。雖然是掛載成功了,但只是臨時生效,重啟會掉盤掛載后硬盤。而且卷標還會顯示成字母加數字的一串長字符串,類似這種s1k544y55fsa445dda44sd4545eff4字符串。究其原因,Linux還是以文件系統為核心的。沒有目錄這個概念,只是方便大家理解,都習慣這樣稱呼。
1.1、使用mount掛載,看到的是sdb2,是因為之前已經創建了一個分區sdb1。
mount?/dev/sdb2?/data
1.2、使用umount卸載
umount?/dev/sdb2?/data
2、寫入fstab文件
2.1、永久生效需要寫入/etc/fstab文件中,使用echo命令追加數據到fstab文件中。
#第一項參數/dev/sdb這里也可以寫入UUID的信息 #?第一項參數?第二項參數??第三項參數第四項參數第五項參數 echo?/dev/sdb1????/data?????btrfs??????defaults?????0?0??>>??/etc/fstab echo?/dev/sdb2????/data?????btrfs??????defaults?????0?0??>>??/etc/fstab
2.2、輸入blkid命令查看卷標或者UUID
#?blkid命令 [root@cnwangk?/]#?blkid /dev/sda5:?UUID="d4708f44-beed-4a9b-bb11-94706e6c0cf5"?TYPE="xfs"? /dev/sda1:?UUID="7d56f743-a42d-42e2-876e-d839cc583fa7"?TYPE="xfs"? /dev/sda2:?UUID="953b1070-a13a-4b67-ac63-cc376c1dee8d"?TYPE="xfs"? /dev/sda3:?UUID="b075b6d0-4d37-4f18-ae59-bf380862b440"?TYPE="swap"? /dev/sdb2:?UUID="294c0c25-04be-4791-ab06-520c4283cb58"?UUID_SUB="a8b7194a-a694-4a8a-bee1-0ab49821e6bb"?TYPE="btrfs"
2.3、當然,你可以使用btrfs自帶的命令查看磁盤文件的uuid
[root@cnwangk?/]#?btrfs?filesystem?show Label:?none??uuid:?294c0c25-04be-4791-ab06-520c4283cb58 ????????Total?devices?1?FS?bytes?used?192.00KiB ????????devid????1?size?5.00GiB?used?536.00MiB?path?/dev/sdb2
七、永久寫入配置文件
1、配置文件fstab展示
注意:解決重啟掉盤的問題。強調一點,一旦寫入配置文件的參數出現錯誤異常,大概率導致服務器無法啟動,所以修改時需謹慎操作。最好先做備份,再進行操作。
如下我的/ect/fstab配置文件內容,可以看到/dev/sdb2是我測試新增的一塊盤進行分區后的配置,使用文件系統格式為btrfs。
#?/etc/fstab #?Created?by?anaconda?on?Sun?Jan??5?21:10:23?2020 # #?Accessible?filesystems,?by?reference,?are?maintained?under?'/dev/disk' #?See?man?pages?fstab(5),?findfs(8),?mount(8)?and/or?blkid(8)?for?more?info # UUID=d4708f44-beed-4a9b-bb11-94706e6c0cf5?/???????????????????????xfs?????defaults????????0?0 UUID=7d56f743-a42d-42e2-876e-d839cc583fa7?/boot???????????????????xfs?????defaults????????0?0 UUID=953b1070-a13a-4b67-ac63-cc376c1dee8d?/home???????????????????xfs?????defaults????????0?0 UUID=b075b6d0-4d37-4f18-ae59-bf380862b440?swap????????????????????swap????defaults????????0?0 /dev/sdb2????????????????????????????????/data????????????????????btrfs???defaults????????0?0
2、部分參數詳解
寫入卷標信息到/etc/fstab文件(Redhat7系列默認推薦格式為xfs,從我文中給出的展示就可看出)
-
第一項參數:/dev/sdb1(原始磁盤分區路徑)
-
第二項參數:/data(新建的掛載磁盤文件路徑,Linux核心是一個文件系統,所以說是文件路徑)
-
第三項參數:btrfs(掛載磁盤文件系統格式)
-
第四項參數:defaults
-
第五項參數:0 0
#第一項參數/dev/sdb這里也可以寫入UUID的信息
# 第一項參數 第二項參數 ? 第三項參數 第四項參數 第五項參數
echo?/dev/sdb1????/data?????btrfs??????defaults?????0?0??>>??/etc/fstab
3、修改配置文件
可以直接編輯文件新增磁盤掛載信息:vim /etc/fstab
寫入到/etc/fstab配置文件,文件系統推薦xfs或者btrfs,具體視實際情況而定:
/dev/sdb2????/data?????ext4????defaults????0?0 /dev/sdb2????/data?????xfs?????defaults????0?0 /dev/sdb2????/data?????btrfs???defaults????0?0
重啟生效:reboot? 或者 shutdown -r now
驗證掛載是否成功,此時重啟系統后可以看到我的新掛載的磁盤/dev/sdb2已經生效了并寫入了fstab配置文件。
df?-h [root@cnwangk?/]#?df?-h 文件系統????????容量??已用??可用?已用%?掛載點 devtmpfs????????907M?????0??907M????0%?/dev tmpfs???????????917M?????0??917M????0%?/dev/shm tmpfs???????????917M??9.3M??908M????2%?/run tmpfs???????????917M?????0??917M????0%?/sys/fs/cgroup /dev/sda5????????16G??7.1G??8.9G???45%?/ /dev/sdb2???????5.0G???17M??4.5G????1%?/data /dev/sda2???????2.0G???34M??2.0G????2%?/home /dev/sda1???????197M??154M???43M???79%?/boot tmpfs???????????184M?????0??184M????0%?/run/user/0
八、磁盤管理
其實,上面對硬盤進行分區已經使用到了磁盤管理命令格式化分區mkfs、分區fdisk,屬于基本的磁盤管理。還有最常用的df,用來查看磁盤空間占用情況;mount與umount命令進行掛載與卸載磁盤。主要想引出的是如下的第三方ssm管理工具。
看到這個ssm不要與Javaweb中的框架組合ssm(spring Springmvc mybatis)混淆了。
1、ssm管理工具
ssm(System Storage Manager)管理邏輯卷。默認沒有安裝,需要手動安裝,下載rpm包或者直接yum源在線安裝都行:
#提供yum在線安裝方式 yum?-y?install?system-storage-manager.noarch
安裝完后,如下使用ssm命令即可展示效果:
[root@cnwangk?/]#?ssm?list ----------------------------------------------------------------- Device????????Free???????Used??????Total??Pool????????Mount?point ----------------------------------------------------------------- /dev/fd0?????????????????????????4.00?KB????????????????????????? /dev/sda????????????????????????20.00?GB????????????????????????? /dev/sda1??????????????????????200.00?MB??????????????/boot?????? /dev/sda2????????????????????????1.95?GB??????????????/home?????? /dev/sda3????????????????????????1.95?GB??????????????SWAP??????? /dev/sda4????????????????????????1.00?KB????????????????????????? /dev/sda5???????????????????????15.90?GB??????????????/?????????? /dev/sdb????????????????????????10.00?GB????????????????????????? /dev/sdb1????????????????????????1.00?MB????????????????????????? /dev/sdb2??4.48?GB??536.00?MB????5.00?GB??btrfs_sdb2????????????? ----------------------------------------------------------------- ----------------------------------------------------- Pool????????Type???Devices?????Free?????Used????Total?? ----------------------------------------------------- btrfs_sdb2??btrfs??1????????5.00?GB??5.00?GB??5.00?GB?? ----------------------------------------------------- ----------------------------------------------------------------------------------- Volume??????Pool????????Volume?size??FS???????FS?size??????Free??Type???Mount?point ----------------------------------------------------------------------------------- btrfs_sdb2??btrfs_sdb2??????5.00?GB??btrfs????5.00?GB???5.00?GB??btrfs??/data?????? /dev/sda1?????????????????200.00?MB??xfs????196.66?MB??42.79?MB?????????/boot?????? /dev/sda2???????????????????1.95?GB??xfs??????1.94?GB???1.91?GB?????????/home?????? /dev/sda5??????????????????15.90?GB??xfs?????15.89?GB???8.87?GB?????????/?????????? -----------------------------------------------------------------------------------
2、linux自帶的磁盤命令
比如,查看磁盤空間狀態,加上參數-h以(K、M、G)形式顯示。雖然df可以以多種形式展示,但個人工作中最常用的,還是加上-h參數使用的最為頻繁。下面以加上參數-h為例子進行展示:
df?-h [root@cnwangk?/]#?df?-h 文件系統????????容量??已用??可用?已用%?掛載點 devtmpfs????????907M?????0??907M????0%?/dev tmpfs???????????917M?????0??917M????0%?/dev/shm tmpfs???????????917M??9.3M??908M????2%?/run tmpfs???????????917M?????0??917M????0%?/sys/fs/cgroup /dev/sda5????????16G??7.1G??8.9G???45%?/ /dev/sdb2???????5.0G???17M??4.5G????1%?/data /dev/sda2???????2.0G???34M??2.0G????2%?/home /dev/sda1???????197M??154M???43M???79%?/boot tmpfs???????????184M?????0??184M????0%?/run/user/0
在df命令后加上-a參數,顯示所有文件系統磁盤使用情況,這里就不貼輸出的內容了,顯示內容太長了。
df -ah
以上就是此次文章的所有內容的,希望能對你的工作有所幫助。感覺寫的好,就拿出你的一鍵三連。如果感覺總結的不到位,也希望能留下您寶貴的意見,我會在文章中進行調整優化。
原創不易,轉載也請標明出處,尊重原創。本文會不定期上傳到gitee或者github以及VX公眾平臺。
最后給出思維導圖,湊合著看看吧,權當有個印象!
相關推薦:《Linux視頻教程》