理论:磁盘管理与文件系统 理论讲解

文章目录

  • 前言:
  • 一:磁盘基础
    • 1.1 磁盘结构
      • 1)硬盘的物理结构
      • 2)硬盘的数据结构
      • 3)磁盘尺寸环境
      • 4)硬盘存储容量
    • 1.2 MBR与磁盘分区表示
      • 1)主引导记录(MBR:Master Boot Record)
      • 2)Linux中将硬盘、分区等设备均表示为文件
    • 1.3 磁盘分区结构
    • 1.4 文件系统类型
      • 1)XFS文件系统
      • 2)SWAP,交换文件系统
      • 3)Linux支持的其它文件系统类型
  • 二:检测并确认新磁盘,规划硬盘中的分区命令
    • 2.1 fdisk命令 创建分区
      • 1)查看或管理磁盘分区命令
      • 2)交互模式中的常用指令选项
  • 三:创建文件系统
    • 3.1 mkfs命令 (分区后,进行格式化命令)
      • 3.2 mkswap命令(格式化后,创建虚拟内存)
  • 五:挂载、卸载文件系统
      • 5.1 mount挂载命令
      • 5.2 umount 取消挂载命令
      • 5.2 设置文件系统的自动挂载
      • 5.3 查看磁盘使用情况 df命令
  • 六:实操

前言:

服务器如果插入磁盘,如何对磁盘进行配置,分区,使用
在Linux系统中,如何有效地对存储空间加以使用和管理,是一项非常重要的技术

一:磁盘基础

1.1 磁盘结构

1)硬盘的物理结构

  • 盘片:硬盘有多个盘片,每盘片2面

  • 磁头:每面一个磁头

2)硬盘的数据结构

  • 扇区:盘片被分为多个扇形区域,每个扇区存放512字节的数据

  • 磁道:同一盘片不同半径的同心圆

  • 柱面:不同盘片相同半径构成的圆柱面

即多个扇区组成磁道,多个相同直径的磁道组成柱面

3)磁盘尺寸环境

  • 制作磁盘环境是无尘环境,磁盘不可以打开,打开就会失效废掉

  • 笔记本磁盘尺寸:面积2.5英寸,一个是7mm厚度,一个是9.5mm厚度;7mm是单片磁盘,9mm是双片磁盘

  • 台式机磁盘尺寸:面积3.5英寸

  • ssd硬盘:2.5英寸 7mm厚度

  • m.2硬盘需要看主板是否有接口

  • 固态硬盘:电子芯片存储,速度快,数据丢失无法恢复

  • 机械硬盘:磁盘存储,速度慢,数据丢失有几率恢复

理论:磁盘管理与文件系统 理论讲解_第1张图片

4)硬盘存储容量

硬盘存储容量=磁头数磁道(柱面)数每道扇区数*每扇区字节数(512字节)

可以用柱面/磁头/扇区来唯一定位磁盘上每一个区域

磁盘接口类型:

  • IDE(并口),现在已经退出市场

  • SATA(串口) 最常见,目前最常用的是sataⅢ

  • SCSI接口,服务器专用

磁盘上面的接口有两个

小接口是电源接口,大接口口是数据传输接口

1.2 MBR与磁盘分区表示

1)主引导记录(MBR:Master Boot Record)

  • MBR位于硬盘第一个物理扇区处

  • MBR中包含硬盘的主引导程序和硬盘分区表,是硬盘的目录索引

  • 分区表有4个分区记录区,每个分区记录去占16个字节

2)Linux中将硬盘、分区等设备均表示为文件

  • MBR类型的硬盘有四个主分区, GPT类型的有128主分区
    理论:磁盘管理与文件系统 理论讲解_第2张图片

1.3 磁盘分区结构

  • 硬盘中的主分区数目只有4个

  • 因此主分区和扩展分区的序号也就限制在1~4

  • 扩展分区不起直接存储数据的功能,可以再往下级分为逻辑分区

  • 逻辑分区的序号将始终从5开始

蓝色是主分区,绿色代表扩展分区,绿色里面是逻辑分区

理论:磁盘管理与文件系统 理论讲解_第3张图片

1.4 文件系统类型

1)XFS文件系统

  • 存放文件和目录数据的分区

  • 高性能的日志型文件系统

  • CentOS 7 系统中默认使用的文件系统

2)SWAP,交换文件系统

  • 为Linux系统建立交换分区

3)Linux支持的其它文件系统类型

  • FAT16、FAT32、NTFS

  • EXT4、JFS…

XFS文件格式支持1PB存储容量

SWAP,即虚拟内存

FAT系列没有安全性

EXT3 是centos 5版本时使用

EXT4,是centos 6 版本时使用

JFS用的少

二:检测并确认新磁盘,规划硬盘中的分区命令

2.1 fdisk命令 创建分区

1)查看或管理磁盘分区命令

fdisk -l 【磁盘设备】 
或
fdisk 【磁盘设备】

2)交互模式中的常用指令选项

选项 含义
-l list含义,查看当前磁盘分区信息 ;若是后面加设备磁盘,则只查看目标磁盘
m 查看帮助信息
p 打印,显示的意思
n 创建新分区
d 删除分区
t 转换文件系统类型格式
w 保存配置
q 退出

三:创建文件系统

3.1 mkfs命令 (分区后,进行格式化命令)

Make Filesystem,创建文件系统(格式化)

  • mkfs -t 文件系统类型 分区设备

命令示例:

  • mkfs -t xfs /dev/sdb1

  • mkfs.xfs /dev/sdb1

3.2 mkswap命令(格式化后,创建虚拟内存)

make swap,创建交换文件系统

  • mkswap 分区设备

五:挂载、卸载文件系统

5.1 mount挂载命令

  • 挂载文件系统、ISO镜像到指定文件夹目录
  • mount 【-t】 存储设备 挂载点目录
  • mount -o loop ISO镜像文件 挂载点目录

5.2 umount 取消挂载命令

  • 卸载已挂载的文件系统

  • umount 文件位置

  • umount 挂载点目录

5.2 设置文件系统的自动挂载

/etc/fstab 配置文件

包含需要开机后自动挂载的文件系统记录
理论:磁盘管理与文件系统 理论讲解_第4张图片

defaults部分 代表权限功能,

第五个0 是否启用容灾,即备份,0=否,1=是

第六个0 代表加载序列,第几个被加载

5.3 查看磁盘使用情况 df命令

df 【选项】 【文件】

理论:磁盘管理与文件系统 理论讲解_第5张图片

六:实操

[root@localhost ~]# fdisk -l    查看当前系统磁盘设备

磁盘 /dev/sda:42.9 GB, 42949672960 字节,83886080 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000a55e9

   设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048    12584959     6291456   83  Linux 	
#代表有引导文件,即MBR 
/dev/sda2        12584960    79710207    33562624   8e  Linux LVM	#LVM逻辑分区

磁盘 /dev/mapper/centos-root:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


磁盘 /dev/mapper/centos-swap:2147 MB, 2147483648 字节,4194304 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


磁盘 /dev/mapper/centos-home:10.7 GB, 10737418240 字节,20971520 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
[root@localhost ~]# df -hT		#查看磁盘使用情况
文件系统                类型      容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root xfs        20G  3.3G   17G   17% /
devtmpfs                devtmpfs  977M     0  977M    0% /dev
tmpfs                   tmpfs     993M     0  993M    0% /dev/shm
tmpfs                   tmpfs     993M  9.1M  984M    1% /run
tmpfs                   tmpfs     993M     0  993M    0% /sys/fs/cgroup
/dev/sda1               xfs       6.0G  161M  5.9G    3% /boot
/dev/mapper/centos-home xfs        10G   50M   10G    1% /home
tmpfs                   tmpfs     199M  4.0K  199M    1% /run/user/42
tmpfs                   tmpfs     199M   36K  199M    1% /run/user/0

这里加几块磁盘,然后重启系统,让系统识别到新增磁盘

理论:磁盘管理与文件系统 理论讲解_第6张图片

[root@localhost ~]# init 6   重启系统
[root@localhost ~]# cd /
[root@localhost /]# ls
bin   dev  home  lib64  mnt  proc  run   srv  tmp  var
boot  etc  lib   media  opt  root  sbin  sys  usr
[root@localhost /]# cd /dev		#切换到设备目录中
[root@localhost dev]# ls			#新增磁盘sdb,sdc,sdd
agpgart          hugepages           random    tty1   tty32  tty55    vcs2
autofs           hwrng               raw       tty10  tty33  tty56    vcs3
block            initctl             rfkill    tty11  tty34  tty57    vcs4
bsg              input               rtc       tty12  tty35  tty58    vcs5
btrfs-control    kmsg                rtc0      tty13  tty36  tty59    vcs6
bus              log                 sda       tty14  tty37  tty6     vcsa
cdrom            loop-control        sda1      tty15  tty38  tty60    vcsa1
centos           lp0                 sda2      tty16  tty39  tty61    vcsa2
char             lp1                 sdb       tty17  tty4   tty62    vcsa3
console          lp2                 sdc       tty18  tty40  tty63    vcsa4
core             lp3                 sdd       tty19  tty41  tty7     vcsa5
cpu              mapper              sg0       tty2   tty42  tty8     vcsa6
cpu_dma_latency  mcelog              sg1       tty20  tty43  tty9     vfio
crash            mem                 sg2       tty21  tty44  ttyS0    vga_arbiter
disk             mqueue              sg3       tty22  tty45  ttyS1    vhci
dm-0             net                 sg4       tty23  tty46  ttyS2    vhost-net
dm-1             network_latency     shm       tty24  tty47  ttyS3    vmci
dm-2             network_throughput  snapshot  tty25  tty48  uhid     vsock
dri              null                snd       tty26  tty49  uinput   zero
fb0              nvram               sr0       tty27  tty5   urandom
fd               oldmem              stderr    tty28  tty50  usbmon0
full             port                stdin     tty29  tty51  usbmon1
fuse             ppp                 stdout    tty3   tty52  usbmon2
hidraw0          ptmx                tty       tty30  tty53  vcs
hpet             pts                 tty0      tty31  tty54  vcs1
[root@localhost dev]# fdisk -l #查看磁盘情况   相较于之前增加了sdb,sdc,sdd

磁盘 /dev/sda:42.9 GB, 42949672960 字节,83886080 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000a55e9

   设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048    12584959     6291456   83  Linux
/dev/sda2        12584960    79710207    33562624   8e  Linux LVM

磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


磁盘 /dev/sdc:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


磁盘 /dev/sdd:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


磁盘 /dev/mapper/centos-root:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


磁盘 /dev/mapper/centos-swap:2147 MB, 2147483648 字节,4194304 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


磁盘 /dev/mapper/centos-home:10.7 GB, 10737418240 字节,20971520 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节

开始给磁盘创建分区

[root@localhost dev]# fdisk /dev/sdb  #给sdb磁盘创建分区
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。						让我们三思,不要慌

Device does not contain a recognized partition table
使用磁盘标识符 0x8d45b52c 创建新的 DOS 磁盘标签。

命令(输入 m 获取帮助):n		n创建新分区
Partition type:
   p   primary (0 primary, 0 extended, 4 free)		p代表主分区
   e   extended			e代表扩展分区	
Select (default p): p		一块磁盘创建基本分区时,必须要先创建一个p主分区
分区号 (1-4,默认 1):1		分区号为1,保持默认的话点回车就可以,从这里也可以发先这块磁盘是MBR类型
起始 扇区 (2048-41943039,默认为 2048):2048		
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039)+10G		这里添加10G
分区 1 已设置为 Linux 类型,大小设为 10 GiB		设置完毕
命令(输入 m 获取帮助):n			再次创建
Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended
Select (default p): 
Using default response p
分区号 (2-4,默认 2):
起始 扇区 (20973568-41943039,默认为 20973568):
将使用默认值 20973568
Last 扇区, +扇区 or +size{K,M,G} (20973568-41943039,默认为 41943039):
将使用默认值 41943039			
分区 2 已设置为 Linux 类型,大小设为 10 GiB			完毕

命令(输入 m 获取帮助):p			查看该磁盘信息

磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x8d45b52c

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    20973567    10485760   83  Linux	
#Blocks中10485760的单位是KB	Id中的83代表默认的xfs文件格式
/dev/sdb2        20973568    41943039    10484736   83  Linux
命令(输入 m 获取帮助):m		查看帮助
命令操作
   a   toggle a bootable flag		#设置引导扇区
   b   edit bsd disklabel		#编辑磁盘标记
   c   toggle the dos compatibility flag
   d   delete a partition		#删除一个分区
   g   create a new empty GPT partition table	#创建一个新的空GPT分区表
   G   create an IRIX (SGI) partition table #创建一个IRIX (SGI)分区表
   l   list known partition types		#列出分区类型
   m   print this menu		#列出帮助信息
   n   add a new partition		#添加新分区
   o   create a new empty DOS partition table	#创建一个新的空DOS分区表
   p   print the partition table	#打印分区表,常用于查看信息
   q   quit without saving changes		#不保存更改就退出
   s   create a new empty Sun disklabel	#创建一个新的空太阳磁盘标签
   t   change a partition‘s system id		#更改分区的系统id
   u   change display/entry units		#改变显示/输入单元
   v   verify the partition table		#验证分区表
   w   write table to disk and exit		#将操作写入并退出
   x   extra functionality (experts only)		#额外功能(仅限专家使用)
命令(输入 m 获取帮助):d		#删除分区
分区号 (1,2,默认 2):2		#删除2
分区 2 已删除
命令(输入 m 获取帮助):p		#查看分区信息
#
磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x8d45b52c

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    20973567    10485760   83  Linux
命令(输入 m 获取帮助):n		重新创建新磁盘
Partition type:
   p   primary (1 primary, 0 extended, 3 free)	#一个主分区,0个逻辑分区,3个空闲
   e   extended
Select (default p): e		#选择创建逻辑分区
分区号 (2-4,默认 2):2
起始 扇区 (20973568-41943039,默认为 20973568):
将使用默认值 20973568
Last 扇区, +扇区 or +size{K,M,G} (20973568-41943039,默认为 41943039)+5G #容量设置为5G
分区 2 已设置为 Extended 类型,大小设为 5 GiB		#设置完毕
命令(输入 m 获取帮助):p		#依旧查看信息

磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x8d45b52c

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    20973567    10485760   83  Linux
/dev/sdb2        20973568    31459327     5242880    5  Extended	
#extended就是指扩展分区。Id5代表extended的文件格式
命令(输入 m 获取帮助):n		#在创建扩展分区的基础上继续创建新分区
Partition type:
   p   primary (1 primary, 1 extended, 2 free)
   l   logical (numbered from 5)		#代表逻辑分区
Select (default p): e	#尝试再创建扩展分区
无效的分区类型“e”			#反馈无法创建
命令(输入 m 获取帮助):n			#重新创建
Partition type:
   p   primary (1 primary, 1 extended, 2 free)
   l   logical (numbered from 5)
Select (default p): l		#创建逻辑分区
添加逻辑分区 5		#自动分配分区号
起始 扇区 (20975616-31459327,默认为 20975616):
将使用默认值 20975616
Last 扇区, +扇区 or +size{K,M,G} (20975616-31459327,默认为 31459327)+1G	#
作演示,容量设为1G
分区 5 已设置为 Linux 类型,大小设为 1 GiB		#创建完成
命令(输入 m 获取帮助):p			#再次查看此时的创建情况

磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x8d45b52c

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    20973567    10485760   83  Linux
/dev/sdb2        20973568    31459327     5242880    5  Extended
/dev/sdb5        20975616    23072767     1048576   83  Linux
命令(输入 m 获取帮助):w		#w保存退出
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@localhost dev]# fdisk -l		
#查看磁盘使用情况(每个人的磁盘情况不一定完全一样,这里我只截取配置的磁盘)

磁盘 /dev/sda:42.9 GB, 42949672960 字节,83886080 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000a55e9

   设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048    12584959     6291456   83  Linux
/dev/sda2        12584960    79710207    33562624   8e  Linux LVM

磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区	#刚才操作的磁盘
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x8d45b52c

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    20973567    10485760   83  Linux
/dev/sdb2        20973568    31459327     5242880    5  Extended	
#扩展分区(细心的可以看一眼Start和End,可以发现一个细节)
/dev/sdb5        20975616    23072767     1048576   83  Linux

磁盘 /dev/sdc:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


磁盘 /dev/sdd:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
[root@localhost dev]# ls	#查看dev内设备信息,可以发现相较之前增加了sdb1,sdb2,sdb5
agpgart          hugepages           random    stdout  tty3   tty52    usbmon2
autofs           hwrng               raw       tty     tty30  tty53    vcs
block            initctl             rfkill    tty0    tty31  tty54    vcs1
bsg              input               rtc       tty1    tty32  tty55    vcs2
btrfs-control    kmsg                rtc0      tty10   tty33  tty56    vcs3
bus              log                 sda       tty11   tty34  tty57    vcs4
cdrom            loop-control        sda1      tty12   tty35  tty58    vcs5
centos           lp0                 sda2      tty13   tty36  tty59    vcs6
char             lp1                 sdb       tty14   tty37  tty6     vcsa
console          lp2                 sdb1      tty15   tty38  tty60    vcsa1
core             lp3                 sdb2      tty16   tty39  tty61    vcsa2
cpu              mapper              sdb5      tty17   tty4   tty62    vcsa3
cpu_dma_latency  mcelog              sdc       tty18   tty40  tty63    vcsa4
crash            mem                 sdd       tty19   tty41  tty7     vcsa5
disk             mqueue              sg0       tty2    tty42  tty8     vcsa6
dm-0             net                 sg1       tty20   tty43  tty9     vfio
dm-1             network_latency     sg2       tty21   tty44  ttyS0    vga_arbiter
dm-2             network_throughput  sg3       tty22   tty45  ttyS1    vhci
dri              null                sg4       tty23   tty46  ttyS2    vhost-net
fb0              nvram               shm       tty24   tty47  ttyS3    vmci
fd               oldmem              snapshot  tty25   tty48  uhid     vsock
full             port                snd       tty26   tty49  uinput   zero
fuse             ppp                 sr0       tty27   tty5   urandom
hidraw0          ptmx                stderr    tty28   tty50  usbmon0
hpet             pts                 stdin     tty29   tty51  usbmon1

磁盘分区配置完毕,接下来进行mkfs.xfs格式化

[root@localhost dev]# mkfs -t xfs /dev/sdb1	#给/dev/sdb1格式化,文件系统类型设置为xfs
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=655360 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=2621440, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

创建挂载点,开始进行第一个实验

[root@localhost dev]# mkdir /abc01/		#在这里先创建一个目录abc01,用以挂载sdb1
[root@localhost dev]# cd /
[root@localhost /]# cd /abc01		#切换到abc01
[root@localhost abc01]# ls		
[root@localhost abc01]# echo "this is test" > test.txt	#创建一个测试文件
[root@localhost abc01]# ls
test.txt
[root@localhost abc01]# cat test.txt
this is test
[root@localhost abc01]# mount /dev/sdb1 /abc01	#把/dev/sdb1X磁盘挂载到/abc01目录下	
[root@localhost abc01]# df -Th		#查看当前目录挂载情况
文件系统                类型      容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root xfs        20G  3.3G   17G   17% /
devtmpfs                devtmpfs  977M     0  977M    0% /dev
tmpfs                   tmpfs     993M     0  993M    0% /dev/shm
tmpfs                   tmpfs     993M  9.0M  984M    1% /run
tmpfs                   tmpfs     993M     0  993M    0% /sys/fs/cgroup
/dev/sda1               xfs       6.0G  161M  5.9G    3% /boot
/dev/mapper/centos-home xfs        10G   50M   10G    1% /home
tmpfs                   tmpfs     199M   12K  199M    1% /run/user/42
tmpfs                   tmpfs     199M     0  199M    0% /run/user/0
/dev/sdb1               xfs        10G   33M   10G    1% /abc01		已挂载成功
[root@localhost abc01]# ls -a		#此时查看abc01,发现没有文件
[root@localhost abc01]# echo "this is test1" > test1.txt	#创建第二个测试文件test1
[root@localhost abc01]# ls -a	#查看,存在test1
.  ..  test1.txt
[root@localhost abc01]# umount /abc01	#取消挂载/abc01,或者umount /dev/sdb1也可以
umount: /abc01:目标忙。		#在挂载目录内取消挂载这一操作无法执行,需要退出来
        (有些情况下通过 lsof(8) 或 fuser(1) 可以
         找到有关使用该设备的进程的有用信息)
[root@localhost abc01]# cd ..		#切换到上一层目录
[root@localhost /]# umount /abc01		#取消挂载/abc01目录
[root@localhost /]# ls -a /abc01		#查看此时abc01内的文件,
.  ..  test.txt		#是没有挂载之前的测试文件test
[root@localhost /]# mkdir abc02		#创建一个abc02目录
[root@localhost /]# ls
abc01  bin   dev  home  lib64  mnt  proc  run   srv  tmp  var
abc02  boot  etc  lib   media  opt  root  sbin  sys  usr
[root@localhost /]# mount /dev/sdb1 /abc02		#把/dev/sdb1 挂载到/abc02目录上
[root@localhost /]# df -Th		#查看挂载情况
文件系统                类型      容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root xfs        20G  3.3G   17G   17% /
devtmpfs                devtmpfs  977M     0  977M    0% /dev
tmpfs                   tmpfs     993M     0  993M    0% /dev/shm
tmpfs                   tmpfs     993M  9.1M  984M    1% /run
tmpfs                   tmpfs     993M     0  993M    0% /sys/fs/cgroup
/dev/sda1               xfs       6.0G  161M  5.9G    3% /boot
/dev/mapper/centos-home xfs        10G   50M   10G    1% /home
tmpfs                   tmpfs     199M  8.0K  199M    1% /run/user/42
tmpfs                   tmpfs     199M   20K  199M    1% /run/user/0
/dev/sdb1               xfs        10G   33M   10G    1% /abc02

[root@localhost /]# ls -a /abc02	#查看挂载目录
.  ..  test1.txt		#为第二个测试文件test1 


这时可以得到一个结论:把A目录挂载到B目录时,若是B目录中已有文件,则挂载操作会把B目录的已有文件覆盖,但是并不会删除;在挂载状态下创建的文件,即使再解除挂载也依旧存在,因为解除挂载并不代表文件删除
在解除挂载后,A目录的原有文件会恢复显示,B目录中的文件也可以继续查看

2.接下来去配置swap交换系统,说白了,就是内存条


[root@localhost /]# cat /proc/meminfo 		#查看/proc/meminfo存储信息表
MemTotal:        2031888 kB
MemFree:          835008 kB
MemAvailable:    1129688 kB
Buffers:            2128 kB
Cached:           417820 kB
SwapCached:            0 kB
Active:           636976 kB
Inactive:         347816 kB
Active(anon):     565792 kB
Inactive(anon):     8624 kB
Active(file):      71184 kB
Inactive(file):   339192 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:       2097148 kB
SwapFree:        2097148 kB
Dirty:                 0 kB
Writeback:             0 kB
AnonPages:        564864 kB
Mapped:           125144 kB
Shmem:              9572 kB
Slab:              85956 kB
SReclaimable:      32120 kB
SUnreclaim:        53836 kB
KernelStack:        8544 kB
PageTables:        29040 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:     3113092 kB
Committed_AS:    3092732 kB
VmallocTotal:   34359738367 kB
VmallocUsed:      196860 kB
VmallocChunk:   34359310332 kB
HardwareCorrupted:     0 kB
AnonHugePages:    247808 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
DirectMap4k:       89984 kB
DirectMap2M:     2007040 kB
DirectMap1G:           0 kB
[root@localhost /]# cat /proc/meminfo | grep Swap*	#可以用管道符号去检索自己想要的信息
SwapCached:            0 kB		#缓存内存
SwapTotal:       2097148 kB		#总内存
SwapFree:        2097148 kB		#空闲内存
[root@localhost /]# mkswap /dev/sdb5		#把sdb5磁盘设为虚拟内存
正在设置交换空间版本 1,大小 = 1048572 KiB
无标签,UUID=3b29ba74-4281-4114-8c38-97c4aa2190bd
[root@localhost /]# cat /proc/meminfo | grep Swap*	#查看内存信息
SwapCached:            0 kB
SwapTotal:       2097148 kB
SwapFree:        2097148 kB			没变化
[root@localhost /]# swapon /dev/sdb5 	#swapon 开启虚拟内存
[root@localhost /]# cat /proc/meminfo | grep Swap*		#再次查看
SwapCached:            0 kB
SwapTotal:       3145720 kB			增加了
SwapFree:        3145720 kB
[root@localhost /]# swapoff /dev/sdb5		#swapoff 关闭虚拟没存
[root@localhost /]# cat /proc/meminfo | grep Swap*		#再次查看
SwapCached:            0 kB
SwapTotal:       2097148 kB			#恢复原状
SwapFree:        2097148 kB

这些是创建删除虚拟内存的相关命令,但是若是做成真正的swap需要进行格式的转化,此时sdb5的文件格式是83的xfs,需要先改成对应的文件类型再去执行maswap命令


[root@localhost /]# fdisk /dev/sdb		#进入到创建sdb磁盘配置中
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。


命令(输入 m 获取帮助):p		#查看磁盘信息

磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x8d45b52c

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    20973567    10485760   83  Linux
/dev/sdb2        20973568    31459327     5242880    5  Extended
/dev/sdb5        20975616    23072767     1048576   83  Linux

命令(输入 m 获取帮助):t		#修改磁盘的文件系统
分区号 (1,2,5,默认 5):5		#要修改的磁盘对应的盘符
Hex 代码(输入 L 列出所有代码):l		#可以先看一下		

 0  空              24  NEC DOS         81  Minix / 旧 Linu bf  Solaris        
 1  FAT12           27  隐藏的 NTFS Win 82  Linux 交换 / So c1  DRDOS/sec (FAT-
 2  XENIX root      39  Plan 9          83  Linux           c4  DRDOS/sec (FAT-
 3  XENIX usr       3c  PartitionMagic  84  OS/2 隐藏的 C:  c6  DRDOS/sec (FAT-
 4  FAT16 <32M      40  Venix 80286     85  Linux 扩展      c7  Syrinx         
 5  扩展            41  PPC PReP Boot   86  NTFS 卷集       da  非文件系统数据 
 6  FAT16           42  SFS             87  NTFS 卷集       db  CP/M / CTOS / .
 7  HPFS/NTFS/exFAT 4d  QNX4.x          88  Linux 纯文本    de  Dell 工具      
 8  AIX             4e  QNX4.x 第2部分  8e  Linux LVM       df  BootIt         
 9  AIX 可启动      4f  QNX4.x 第3部分  93  Amoeba          e1  DOS 访问       
 a  OS/2 启动管理器 50  OnTrack DM      94  Amoeba BBT      e3  DOS R/O        
 b  W95 FAT32       51  OnTrack DM6 Aux 9f  BSD/OS          e4  SpeedStor      
 c  W95 FAT32 (LBA) 52  CP/M            a0  IBM Thinkpad 休 eb  BeOS fs        
 e  W95 FAT16 (LBA) 53  OnTrack DM6 Aux a5  FreeBSD         ee  GPT            
 f  W95 扩展 (LBA)  54  OnTrackDM6      a6  OpenBSD         ef  EFI (FAT-12/16/
10  OPUS            55  EZ-Drive        a7  NeXTSTEP        f0  Linux/PA-RISC  
11  隐藏的 FAT12    56  Golden Bow      a8  Darwin UFS      f1  SpeedStor      
12  Compaq 诊断     5c  Priam Edisk     a9  NetBSD          f4  SpeedStor      
14  隐藏的 FAT16 <3 61  SpeedStor       ab  Darwin 启动     f2  DOS 次要       
16  隐藏的 FAT16    63  GNU HURD or Sys af  HFS / HFS+      fb  VMware VMFS    
17  隐藏的 HPFS/NTF 64  Novell Netware  b7  BSDI fs         fc  VMware VMKCORE 
18  AST 智能睡眠    65  Novell Netware  b8  BSDI swap       fd  Linux raid 自动
1b  隐藏的 W95 FAT3 70  DiskSecure 多启 bb  Boot Wizard 隐  fe  LANstep        
1c  隐藏的 W95 FAT3 75  PC/IX           be  Solaris 启动    ff  BBT            
1e  隐藏的 W95 FAT1 80  旧 Minix       
Hex 代码(输入 L 列出所有代码):82		#输入对应的代码
已将分区“Linux”的类型更改为“Linux swap / Solaris”

命令(输入 m 获取帮助):p		#再次查看信息

磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x8d45b52c

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    20973567    10485760   83  Linux
/dev/sdb2        20973568    31459327     5242880    5  Extended
/dev/sdb5        20975616    23072767     1048576   82  Linux swap / Solaris		文件系统格式已被修改

命令(输入 m 获取帮助):w		#保存退出
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)
正在同步磁盘。

[root@localhost /]# mkswap /dev/sdb5		#重新输入格式化swap分区命令
mkswap: /dev/sdb5: warning: wiping old swap signature.	#这时出现了这一行特殊的提示反馈
正在设置交换空间版本 1,大小 = 1048572 KiB
无标签,UUID=7f25bd08-3ca0-4f50-8a9a-8e430c9b084d
[root@localhost /]# swapon /dev/sdb5 		#开启设备
[root@localhost /]# cat /proc/meminfo | grep Swap*		#检索内存信息
SwapCached:            0 kB
SwapTotal:       3145720 kB		#已增加虚拟内存
SwapFree:        3145720 kB
[root@localhost /]# df -hT		查看已挂载信息
文件系统                类型      容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root xfs        20G  3.3G   17G   17% /
devtmpfs                devtmpfs  977M     0  977M    0% /dev
tmpfs                   tmpfs     993M     0  993M    0% /dev/shm
tmpfs                   tmpfs     993M  9.1M  984M    1% /run
tmpfs                   tmpfs     993M     0  993M    0% /sys/fs/cgroup
/dev/sda1               xfs       6.0G  161M  5.9G    3% /boot
/dev/mapper/centos-home xfs        10G   50M   10G    1% /home
tmpfs                   tmpfs     199M  8.0K  199M    1% /run/user/42
tmpfs                   tmpfs     199M   20K  199M    1% /run/user/0
/dev/sdb1               xfs        10G   33M   10G    1% /abc02
[root@localhost /]# umount /abc02		#取消挂载/abc02
[root@localhost /]# df -Th			#查看已挂载信息,此时可以发现/abc02并没有被挂载
文件系统                类型      容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root xfs        20G  3.3G   17G   17% /
devtmpfs                devtmpfs  977M     0  977M    0% /dev
tmpfs                   tmpfs     993M     0  993M    0% /dev/shm
tmpfs                   tmpfs     993M  9.1M  984M    1% /run
tmpfs                   tmpfs     993M     0  993M    0% /sys/fs/cgroup
/dev/sda1               xfs       6.0G  161M  5.9G    3% /boot
/dev/mapper/centos-home xfs        10G   50M   10G    1% /home
tmpfs                   tmpfs     199M  8.0K  199M    1% /run/user/42
tmpfs                   tmpfs     199M   20K  199M    1% /run/user/0

3.接下来学习如何自动挂载,利用自动挂载的配置文件/etc/fstab,使用vim编辑其中配置


[root@localhost /]# vim /etc/fstab 	
进入vim编辑
#
# /etc/fstab
# Created by anaconda on Wed Oct 23 13:35:20 2019
#
# 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
#
/dev/mapper/centos-root /                       xfs     defaults        0 0
UUID=bef26af3-cd25-4754-bbc6-abd7fb09ef45 /boot                   xfs     defaults        0 0
/dev/mapper/centos-home /home                   xfs     defaults        0 0
/dev/mapper/centos-swap swap                    swap    defaults        0 0
/dev/sdb1       /abc02  xfs     defaults        0       0		
#在配置这条条目时,每个信息要用制表符tab键分隔
~                                                                                       
~                                                                                       
~     
:wq    	保存退出

[root@localhost /]# mount -a		#全部设备重新加载,省去了关机重启的这一步骤
[root@localhost /]# df -Th			#可以发现/dev/sdb1被自动加载
文件系统                类型      容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root xfs        20G  3.3G   17G   17% /
devtmpfs                devtmpfs  977M     0  977M    0% /dev
tmpfs                   tmpfs     993M     0  993M    0% /dev/shm
tmpfs                   tmpfs     993M  9.1M  984M    1% /run
tmpfs                   tmpfs     993M     0  993M    0% /sys/fs/cgroup
/dev/sda1               xfs       6.0G  161M  5.9G    3% /boot
/dev/mapper/centos-home xfs        10G   50M   10G    1% /home
tmpfs                   tmpfs     199M  8.0K  199M    1% /run/user/42
tmpfs                   tmpfs     199M   20K  199M    1% /run/user/0
/dev/sdb1               xfs        10G   33M   10G    1% /abc02


  1. 使用mount命令去挂载光驱,首要的前提是先把镜像文件先放入到光驱内,光驱盘在/dev/sr0内

[root@localhost dev]# mount /dev/sr0 /mnt		#把dev/sr0光驱位挂载到/mnt
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost dev]# ls /mnt			#查看被挂载目录
CentOS_BuildTag  GPL       LiveOS    RPM-GPG-KEY-CentOS-7
EFI              images    Packages  RPM-GPG-KEY-CentOS-Testing-7
EULA             isolinux  repodata  TRANS.TBL		
[root@localhost dev]# df -Th		#查看挂载信息,可以发现挂载镜像文件的文件类型为iso9660
文件系统                类型      容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root xfs        20G  3.3G   17G   17% /
devtmpfs                devtmpfs  977M     0  977M    0% /dev
tmpfs                   tmpfs     993M     0  993M    0% /dev/shm
tmpfs                   tmpfs     993M  9.1M  984M    1% /run
tmpfs                   tmpfs     993M     0  993M    0% /sys/fs/cgroup
/dev/sda1               xfs       6.0G  161M  5.9G    3% /boot
/dev/mapper/centos-home xfs        10G   50M   10G    1% /home
tmpfs                   tmpfs     199M  8.0K  199M    1% /run/user/42
tmpfs                   tmpfs     199M   20K  199M    1% /run/user/0
/dev/sdb1               xfs        10G   33M   10G    1% /abc02
/dev/sr0                iso9660   4.3G  4.3G     0  100% /mnt

理论:磁盘管理与文件系统 理论讲解_第7张图片

总结:

1.管理磁盘和分区 (划区,配置磁盘属性)

第一步插入磁盘,然后重启读取到磁盘,接着fdisk -l查看是否被读取到,被读取到,就可以fdisk 【磁盘名称】去给磁盘划区,配置磁盘的容量,是什么分区,文件类型配置,然后保存退出

2.创建文件系统(格式化,可使用)

第二步mkfs格式化磁盘,格式化虚拟内存磁盘有一个专有的命令式mkswap

3.挂载、卸载文件系统

第三步把格式化之后的磁盘进行挂载,方便使用;挂载有手动挂载和自动挂载,手动挂载mount 源目录 目标挂载点 自动挂载就是把相关配置属性写入到/etc/fstab配置文件内,以后开机就会自启动,或者mount -a 也可以全部重新挂载;取消挂载是umount 源目录或者目标挂载点,自动挂载的就删掉对应的信息即可。

你可能感兴趣的:(理论,LINUX)