這篇文章帶給大家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
xfsdump /backup/dump_sdc1 /sdc1
2、btrfs檔案系統
#如下所示,我將新建btrfs檔案系統,指向的是新增的一塊磁碟檔案路徑/dev/sdb,下面最終示範的也是btrfs檔案系統的設定。mkfs.btrfs /dev/sdb
mkfs.ext4 /dev/sdb
三、建立要掛載的路徑
#1、建立掛載的檔案data使用mkdir指令建立data目錄,用於後續掛載新增的磁碟。
mkdir /data
ls /data
##寫入一個簡單shell的腳本作為演示echo -e "echo "hello linux"\necho "create btrfs filesystem"" >> /data/data.sh
#再次查看data盘下的文件 [root@cnwangk /]# ls /data/ data.sh sh /data/data.sh #运行脚本 [root@cnwangk /]# sh /data/data.sh hello linux create btrfs filesystem
使用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影片教學》
以上是帶你玩轉linux下磁碟管理與掛載硬碟的詳細內容。更多資訊請關注PHP中文網其他相關文章!