前言
本文將帶來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公眾平臺。
最後給出思維導圖,湊合著看看吧,權當有個印象!