一、磁盘基础
1.磁盘的解释
磁盘(disk)是指利用磁记录技术存储数据的存储器。
磁盘是计算机主要的存储介质,可以存储大量的二进制数据,并且断电后也能保持数据不丢失。早期计算机使用的磁盘是软磁盘(Floppy Disk,简称软盘),如今常用的磁盘是硬磁盘(Hard disk,简称硬盘)。
2.磁盘结构
物理结构
盘片:
一个磁盘(如一个 1T 的机械硬盘)由多个盘片(如下图中的 0 号盘面)叠加而成。
盘片的表面涂有磁性物质,这些磁性物质用来记录二进制数据。因为正反两面都可涂上磁性物质,故一个盘片可能会有两个盘面。
磁头:
磁头是用来读取数据的,每个盘面有一个磁头。
数据结构
数据结构又称逻辑结构。那么基本结构可用分为以下三种:
扇区:盘片被分为多个扇形区域,每个扇区存放512字节的数据,硬盘的最小存储单位。
磁道:同一盘片不同半径的同心圆,是由磁头在盘片表面划出的圆形轨迹。
柱面:不同盘片相同半径构成的圆柱面,由同一半径圆的多个磁道组成。
扇区,磁道(或柱面)和磁头数构成了硬盘结构的基本参数,通过这些参数可以得到硬盘的容量,基计算公式为如下:
硬盘存储容量=磁头数×磁道(柱面)数×每道扇区数×每扇区字节数(512字节)
用户可以用柱面/磁头/扇区来唯一定位磁盘上每一个区域。如果想要完全摧毁一个磁盘,可用粉碎机或者火烧来摧毁。
3.磁盘接口类型
目前所能见到的接口类型主要有IDE、SATA、SCSI、SAS。接下来就简单介绍了这几个接口类型:
IDE:并口数据线连接主板与硬盘,抗干扰性太差,且排线占用空间较大,不利电脑内部散热,已逐渐被SATA所取代。
SATA:抗干扰性强,支持热插拔等功能,速度快,纠错能力强。
SCSI:小型机系统接口,SCST硬盘广为工作站级个人电脑以及服务器所使用,资料传输时CPU占用率较低,转速快,支持热插拔等。
SAS,是新一代的SCSI技术,和SATAS硬盘相同,都是采取序列式技术以获得更高的传输速度,可达到6Gb/s。
4.MBR与磁盘分区
MBR
主启动记录(Master Boot Record),也被称为主引导记录,是位于硬盘第一个物理扇区处,即计算机开机以后访问硬盘时所必须要读取的第一个扇区。硬盘主引导记录 (MBR) 是由分区程序产生的,具体结构如下:
- 硬盘主引导程序,用于系统启动的。
- 硬盘分区表,用于记录分区情况。分区表有4个分区记录区,每个分区记录区占16个字节。
由于MBR在第一个扇区,而一个扇区存放512字节的数据,所以根据基本结构的不同可以将其划分两个部分,主引导程序占前446字节,分区表保存在MBR扇区中的第447~510字节中,最后2个字节用作保留,不做使用。
磁盘
Linux系统中由于一切均表示为文件,所以硬盘(磁盘)、分区这些设备在Linux系统中是以文件形式存储的。可以用其中一个硬件设备文件来进行解释:
/dev/hda5
/dev
:硬件设备文件所在目录。
hd
:用来表示IDE设备。另一个sd
用来表示SCSI设备。
a
:硬盘的顺序号,以字母a、b、c...
表示。
5
:分区的顺序号,以数字1、2、3...
表示。主分区从1-4,第一个逻辑分区始终从5开始。
磁盘分区结构:
通常把硬盘分为主分区和扩展分区,而一个磁盘分区支持最大卷为2.2TB,磁盘最多可以划分为4个主分区或者3个主分区、一个扩展分区,根据硬盘大小和使用需要将扩展分区继续划分为多个逻辑分区。
硬盘中的主分区数目只有4个,主分区和扩展分区的序号限制在1~4。逻辑分区始终是以5
开始表示。具体可以通过下图来解释:
5.文件系统类型
文件系统是操作系统用于明确存储设备(常见的是磁盘,也有基于NAND Flash的固态硬盘)或分区上的文件的方法和数据结构;即在存储设备上组织文件的方法。操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统。
XFS文件系统
在Linux系统中,从Centos7开始默认使用XFS系统。XFS文件系统是用来存放文件和目录数据的分区,它是高性能的日志型文件系统,特别擅长于处理大文件,可支持上百万TB的存储空间。由于XFS文件系统开启日志功能,所以即便发生宕机也不怕数据遭到破坏,这种文件系统可以根据日志记录在短时间内进行数据恢复。
SWAP交换文件系统
SWAP是用来为Linux系统建立交换分区的。交换分区的作用相当于虚拟内存,能够在一定程度上缓解物理内存不足的问题。一般建议将交换分区的大小设置为物理内存的1.5~2倍 。例如对于拥有512MB物理内存的主机,其交换分区的大小建议设置为1024MB。如果服务器的物理内存足够大(如8GB以上),也可以不设置交换分区。交换分区不用于直接存储用户的文件和目录等数据。
Linux支持其他文件系统类型
EXT4:
第4代扩展文件系统,用于存放文件和目录数据的分区,是Linux系统中Centos6默认使用的文件系统。EXT4是典型的日志型文件系统,其特点是保存有磁盘存取记录的日志数据,便于恢复,在存取性能和稳定性方面更加出色。
FAT32:
FAT是文件分配表(File Allocation table)的缩写 ,FAT32指的是文件分配表是采用32位二进制数记录管理的磁盘文件管理方式,因FAT类文件系统的核心是文件分配表,命名由此得来。FAT32是从FAT和FAT16发展而来的,优点是稳定性和兼容性好,能充分兼容Win 9X及以前版本,且维护方便。缺点是安全性差,且最大只能支持32GB分区,单个文件也只能支持最大4GB。
NTFS:
NTFS(New Technology File System)是Windows NT内核的系列操作系统支持的、一个特别为网络和磁盘配额、文件加密等管理安全特性设计的磁盘格式,提供长文件名、数据保护和恢复,能通过目录和文件许可实现安全性,并支持跨越分区。
LVM:
LVM是 Logical Volume Manager(逻辑卷管理)的简写,它本质上是一个虚拟设备驱动,是在内核中块设备和物理设备之间添加的一个新的抽象层次它可以将几块磁盘(物理卷)组合起来形成一个存储池或者卷组。LVM可以每次从卷组中划分出不同大小的逻辑卷创建新的逻辑设备。
二、磁盘/分区的管理
1.检测并确认新硬盘——fdisk命令
fdisk命令是利用MBR(主引导记录)来进行查看或管理磁盘分区。
基本命令格式
fdisk -l [磁盘设备]
或者
fdisk [磁盘设备]
基本使用方法
[root@host ~]# fdisk -l
磁盘 /dev/sda:42.9 GB, 42949672960 字节,83886080 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x00001560
设备 Boot Start End Blocks Id System
/dev/sda1 2048 8390655 4194304 82 Linux swap / Solaris
/dev/sda2 * 8390656 83886079 37747712 83 Linux
[root@host ~]#
磁盘字段的含义
/dev/sda2 * 8390656 83886079 37747712 83 Linux
以上面的为例,用来解释各个字段的含义(主要可以分为7个字段):
字段1:/dev/sd2
,Device (设备)。是分区的设备文件名称。
字段2:*
,Boot。有*
代表是MBR引导分区。
字段3:8390656
,Start,起始字节。是该分区在硬盘中的起始位置(柱面数)。
字段4:83886079
,End,终止字节。是该分区在硬盘中的结束位置(柱面数)。
字段5:37747712
,Blocks。表示分区的大小,以 Blocks(块)为单位,默认的块大小为1024字节。
字段6:83
,Id。表示分区对应的系统ID号。例如,83表示Linux中的XFS分区或EXT4分区、8e表示LVM逻辑卷。
字段7:Linux
,System。表示普通Linux文件系统。如果后面跟有swap
,则表示Linux交换文件系统。
2.添加磁盘
首先右键虚拟机选项卡,点击设置。
接着点击添加,硬件类型选择硬盘,点击下一步。
然后选择接口类型,默认使用推荐的就行,点击下一步。
创建新的磁盘类型,点击下一步。
接着选择磁盘大小,我这里选择的是40GB,点击下一步。
然后点击完成,新的硬盘就创建好了。
如果想要在命令窗口中显示出刚刚创建新硬盘的信息,可以输入以下第一种命令:
//重启虚拟机
reboot
[root@host ~]# fdisk -l
磁盘 /dev/sda:42.9 GB, 42949672960 字节,83886080 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x00001560
设备 Boot Start End Blocks Id System
/dev/sda1 2048 8390655 4194304 82 Linux swap / Solaris
/dev/sda2 * 8390656 83886079 37747712 83 Linux
磁盘 /dev/sdb:42.9 GB, 42949672960 字节,83886080 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
或者第二种方式来显示新磁盘信息
echo "- - -" > /sys/class/scsi_host/host0/scan
echo "- - -" > /sys/class/scsi_host/host1/scan
echo "- - -" > /sys/class/scsi_host/host2/scan
[root@host ~]# fdisk -l
磁盘 /dev/sda:42.9 GB, 42949672960 字节,83886080 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x00001560
设备 Boot Start End Blocks Id System
/dev/sda1 2048 8390655 4194304 82 Linux swap / Solaris
/dev/sda2 * 8390656 83886079 37747712 83 Linux
磁盘 /dev/sdb:42.9 GB, 42949672960 字节,83886080 个扇区
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 字节
3.交互模式中常用的交互指令
指令名称 | 作用 |
---|---|
m | 获取都助菜单 |
n | 新建分区 |
p | 查看分区情况 |
d | 删除分区 |
t | 变更分区的类型 |
w | 保存分区操作并退出 |
q | 不保存分区操作并退出 |
4.创建分区
创建主分区
输入fdisk命令创建分区,此时已经进入交互界面,用来管理磁盘分区,可以在此创建、查看、删除分区
[root@host ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0x05556dc0 创建新的 DOS 磁盘标签。
命令(输入 m 获取帮助):
可以在此输入m获取交互模式中的常用指令
命令(输入 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
G create an IRIX (SGI) partition table
l list known partition types
m print this menu
n add a new partition
o create a new empty DOS partition table
p print the partition table
q quit without saving changes
s create a new empty Sun disklabel
t change a partition's system id
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)
创建一个20GB的分区,然后会出现两个提示。p指的是主分区;e指的是扩展分区
命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
设置分区参数(分区类型、分区号、起始扇区、Last扇区)
//默认设置选择p。可以不输入任何值直接回车,其值也是p
Select (default p): p
//设置分区号,因为是主分区,所以范围是1~4
分区号 (1-4,默认 1):1
//起始扇区默认值为2048,如果不想更改可以直接回车
起始 扇区 (2048-83886079,默认为 2048):
将使用默认值 2048
//设置Last扇区值,+号记得输入。如果直接回车设置默认值,会将硬盘所有的空间都分配给一个分区中
Last 扇区, +扇区 or +size{K,M,G} (2048-83886079,默认为 83886079):+20G
分区 1 已设置为 Linux 类型,大小设为 20 GiB
输入p查看当前分区情况
命令(输入 m 获取帮助):p
磁盘 /dev/sdb:42.9 GB, 42949672960 字节,83886080 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x05556dc0
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 41945087 20971520 83 Linux
输入m进行保存分区配置
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
此时再次查看磁盘情况,可以看出新磁盘下面多了一个分区
[root@host ~]# fdisk -l
磁盘 /dev/sda:42.9 GB, 42949672960 字节,83886080 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x00001560
设备 Boot Start End Blocks Id System
/dev/sda1 2048 8390655 4194304 82 Linux swap / Solaris
/dev/sda2 * 8390656 83886079 37747712 83 Linux
磁盘 /dev/sdb:42.9 GB, 42949672960 字节,83886080 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x05556dc0
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 41945087 20971520 83 Linux
磁盘 /dev/sdc:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
创建逻辑分区
输入fdisk命令创建分区,此时已经进入交互界面,用来管理磁盘分区,可以在此创建、查看、删除分区
[root@host ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
命令(输入 m 获取帮助):
创建扩展分区
命令(输入 m 获取帮助):n
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p): e
设置分区参数(分区号、起始扇区、Last扇区)
分区号 (2-4,默认 2):
起始 扇区 (41945088-83886079,默认为 41945088):
将使用默认值 41945088
Last 扇区, +扇区 or +size{K,M,G} (41945088-83886079,默认为 83886079):+15G^H
不支持的后缀:“”。
支持:10^N: KB (千字节), MB (兆字节), GB (吉字节)
2^N: K (约千字节), M (约兆字节), G (约吉字节)
Last 扇区, +扇区 or +size{K,M,G} (41945088-83886079,默认为 83886079):+15G
分区 2 已设置为 Extended 类型,大小设为 15 GiB
输入p查看当前分区情况
命令(输入 m 获取帮助):p
磁盘 /dev/sdb:42.9 GB, 42949672960 字节,83886080 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xb1b85467
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 41945087 20971520 83 Linux
/dev/sdb2 41945088 73402367 15728640 5 Extended
再次添加分区,选择创建逻辑分区
命令(输入 m 获取帮助):n
Partition type:
p primary (1 primary, 1 extended, 2 free)
l logical (numbered from 5)
Select (default p): l
设置分区参数(分区号、起始扇区、Last扇区)
添加逻辑分区 5
起始 扇区 (41947136-73402367,默认为 41947136):
将使用默认值 41947136
Last 扇区, +扇区 or +size{K,M,G} (41947136-73402367,默认为 73402367):+10G
分区 5 已设置为 Linux 类型,大小设为 10 GiB
输入p查看当前分区情况
命令(输入 m 获取帮助):p
磁盘 /dev/sdb:42.9 GB, 42949672960 字节,83886080 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xb1b85467
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 41945087 20971520 83 Linux
/dev/sdb2 41945088 73402367 15728640 5 Extended
/dev/sdb5 41947136 62918655 10485760 83 Linux
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
输入fdisk -l查看分区情况
[root@host ~]# fdisk -l
磁盘 /dev/sda:42.9 GB, 42949672960 字节,83886080 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x00001560
设备 Boot Start End Blocks Id System
/dev/sda1 2048 8390655 4194304 82 Linux swap / Solaris
/dev/sda2 * 8390656 83886079 37747712 83 Linux
磁盘 /dev/sdb:42.9 GB, 42949672960 字节,83886080 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xb1b85467
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 41945087 20971520 83 Linux
/dev/sdb2 41945088 73402367 15728640 5 Extended
/dev/sdb5 41947136 62918655 10485760 83 Linux
磁盘 /dev/sdc:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
创建SWAP交换分区
创建分区,设置分区号、起始扇区、Last扇区
[root@host ~]# fdisk /dev/sdc
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0x07daf5f3 创建新的 DOS 磁盘标签。
命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p):
Using default response p
分区号 (1-4,默认 1):
起始 扇区 (2048-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+5G
分区 1 已设置为 Linux 类型,大小设为 5 GiB
查看当前分区情况
命令(输入 m 获取帮助):p
磁盘 /dev/sdc:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x07daf5f3
设备 Boot Start End Blocks Id System
/dev/sdc1 2048 10487807 5242880 83 Linux
修改分区类型,改成swap类型
命令(输入 m 获取帮助):t
已选择分区 1
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”
输入p查看当前分区情况,并输入w保存
命令(输入 m 获取帮助):p
磁盘 /dev/sdc:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x07daf5f3
设备 Boot Start End Blocks Id System
/dev/sdc1 2048 10487807 5242880 82 Linux swap / Solaris
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
查看当前磁盘分区状态
[root@host ~]# fdisk -l
磁盘 /dev/sda:42.9 GB, 42949672960 字节,83886080 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x00001560
设备 Boot Start End Blocks Id System
/dev/sda1 2048 8390655 4194304 82 Linux swap / Solaris
/dev/sda2 * 8390656 83886079 37747712 83 Linux
磁盘 /dev/sdb:42.9 GB, 42949672960 字节,83886080 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xb1b85467
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 41945087 20971520 83 Linux
/dev/sdb2 41945088 73402367 15728640 5 Extended
/dev/sdb5 41947136 62918655 10485760 83 Linux
磁盘 /dev/sdc:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x07daf5f3
设备 Boot Start End Blocks Id System
/dev/sdc1 2048 10487807 5242880 82 Linux swap / Solaris
四、文件系统的管理
1.创建文件系统——mkfs
将新硬盘分好区以后,还需要对分区进行格式化(即创建文件系统),并挂载到Linux系统中的指定目录下,然后才能用于存储文件、目录等数据。所以这里就要用到mkfs命令用来实现格式化创建文件系统。
基本命令格式
mkfs -t 文件系统类型 分区设备
基本使用方式
查看mkfs中的所有文件
[root@host ~]# ls /sbin/mkfs*
/sbin/mkfs /sbin/mkfs.ext2 /sbin/mkfs.fat /sbin/mkfs.vfat
/sbin/mkfs.btrfs /sbin/mkfs.ext3 /sbin/mkfs.minix /sbin/mkfs.xfs
/sbin/mkfs.cramfs /sbin/mkfs.ext4 /sbin/mkfs.msdos
指定系统类型,创建文件系统类型
[root@host ~]# mkfs -t
btrfs ext2 ext4 minix vfat cramfs ext3 fat msdos xfs
[root@host ~]# mkfs -t xfs /dev/sdb1
meta-data=/dev/sdb1 isize=512 agcount=4, agsize=1310720 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=5242880, 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@host ~]# mkfs.
mkfs.btrfs mkfs.ext2 mkfs.ext4 mkfs.minix mkfs.vfat mkfs.cramfs mkfs.ext3 mkfs.fat mkfs.msdos mkfs.xfs
[root@host ~]# mkfs.ext4 /dev/sdb5
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
655360 inodes, 2621440 blocks
131072 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=2151677952
80 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632
Allocating group tables: 完成
正在写入inode表: 完成
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
2.创建文件系统——mkswap
mkswap命令,全称make swap,用于设置交换区(swap area)。可将磁盘分区或文件设为Linux的交换区。
基本命令格式
mkswap 分区设备
基本使用方式
创建文件系统
[root@host ~]# mkswap /dev/sdc1
正在设置交换空间版本 1,大小 = 5242876 KiB
无标签,UUID=205d838c-d0e6-4a1a-bb01-7b032ceb7b45
3.挂载文件系统——mount
mount命令,用于挂载文件系统、ISO镜像到指定文件夹
基本命令格式
mount [-t类型] 存储设备 挂载点目录
*通常情况下-t
可以省略,因为Linux会自动识别需要挂载的设备文件类型,然后根据挂载类型自动去挂载。
mount -o loop ISO镜像文件 挂载点目录
-o
用于指定挂载参数,loop
用来描述特殊设备。
基本使用方式
将sdb1挂载到data1上
[root@host ~]# mount /dev/sdb1 /data1/
[root@host ~]# df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
devtmpfs devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs tmpfs 1.9G 13M 1.9G 1% /run
tmpfs tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/sda2 xfs 36G 4.5G 32G 13% /
tmpfs tmpfs 378M 36K 378M 1% /run/user/0
/dev/sr0 iso9660 4.4G 4.4G 0 100% /run/media/root/CentOS 7 x86_64
/dev/sdb1 xfs 20G 33M 20G 1% /data1
将sdb5挂载到data2上
[root@host ~]# mount /dev/sdb5 /data2
[root@host ~]# df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
devtmpfs devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs tmpfs 1.9G 13M 1.9G 1% /run
tmpfs tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/sda2 xfs 36G 4.5G 32G 13% /
tmpfs tmpfs 378M 36K 378M 1% /run/user/0
/dev/sr0 iso9660 4.4G 4.4G 0 100% /run/media/root/CentOS 7 x86_64
/dev/sdb1 xfs 20G 33M 20G 1% /data1
/dev/sdb5 ext4 9.8G 37M 9.2G 1% /data2
指定镜像文件进行挂载
[root@host opt]# ls
CentOS-7-x86_64-DVD-2009-7.9.iso rh
[root@host opt]# mount -o loop CentOS-7-x86_64-DVD-2009-7.9.iso /mnt
mount: /dev/loop0 写保护,将以只读方式挂载
[root@host opt]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 1.9G 13M 1.9G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/sda2 36G 8.9G 28G 25% /
tmpfs 378M 36K 378M 1% /run/user/0
/dev/sr0 4.4G 4.4G 0 100% /run/media/root/CentOS 7 x86_64
/dev/sdb1 20G 33M 20G 1% /data1
/dev/sdb5 9.8G 37M 9.2G 1% /data2
/dev/loop0 4.4G 4.4G 0 100% /mnt
4.挂载文件系统——swapon
基本命令格式
swapon 存储设备
基本使用方式
//查看相关的内存信息,其中mem是物理内存,swap是虚拟内存,buff是缓存,available是可用的
[root@host ~]# free -m
total used free shared buff/cache available
Mem: 3770 930 1751 59 1089 2542
Swap: 4095 0 4095
其中free命令是用来查看内存信息,-m是以兆为单位来查看。
[root@host ~]# swapon /dev/sdc1
[root@host ~]# free -h
total used free shared buff/cache available
Mem: 3.7G 934M 1.7G 59M 1.1G 2.5G
Swap: 9.0G 0B 9.0G
或者使用swapon自带的查看内存信息
[root@host ~]# swapon -s
文件名 类型 大小 已用 权限
/dev/sda1 partition 4194300 0 -2
/dev/sdc1 partition 5242876 0 -3
5.卸载文件系统——swapoff
基本命令格式
swapoff 存储设备
基本使用方式
关闭单个文件系统
[root@host ~]# swapoff /dev/sdc1
[root@host ~]# swapon -s
文件名 类型 大小 已用 权限
/dev/sda1 partition 4194300 0 -2
关闭全部文件系统
[root@host ~]# free -h
total used free shared buff/cache available
Mem: 3.7G 934M 1.7G 59M 1.1G 2.5G
Swap: 9.0G 0B 9.0G
[root@host ~]# swapoff -a
[root@host ~]# free -h
total used free shared buff/cache available
Mem: 3.7G 930M 1.7G 59M 1.1G 2.5G
Swap: 0B 0B 0B
6.卸载文件系统——umount
基本命令格式
umount [选项] 挂载点目录/存储设备位置
基本选项参数
选项 | 含义 |
---|---|
-l | 表示解除正在繁忙的文件系统 |
-f | 表示强制 |
基本使用方式
[root@host ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 1.9G 13M 1.9G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/sda2 36G 8.9G 28G 25% /
tmpfs 378M 36K 378M 1% /run/user/0
/dev/sr0 4.4G 4.4G 0 100% /run/media/root/CentOS 7 x86_64
/dev/sdb1 20G 33M 20G 1% /data1
/dev/sdb5 9.8G 37M 9.2G 1% /data2
[root@host ~]# umount /dev/sdb5
[root@host ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 1.9G 13M 1.9G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/sda2 36G 8.9G 28G 25% /
tmpfs 378M 36K 378M 1% /run/user/0
/dev/sr0 4.4G 4.4G 0 100% /run/media/root/CentOS 7 x86_64
/dev/sdb1 20G 33M 20G 1% /data1
若过卸载文件系统显示目标忙,可以强制解挂
[root@host ~]# umount -lf /data1
[root@host ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 1.9G 13M 1.9G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/sda2 36G 8.9G 28G 25% /
tmpfs 378M 36K 378M 1% /run/user/0
/dev/sr0 4.4G 4.4G 0 100% /run/media/root/CentOS 7 x86_64
7.查看磁盘使用情况命令——df
df命令是用来查看linux系统服务器文件系统的磁盘使用情况。可以用该命令来查看已经使用了多少空间,还有多少空间可用。
基本命令格式
df [选项]
基本选项参数
选项 | 含义 |
---|---|
-h | 以人性化的方式显示列表内容 |
-T | 显示文件系统类型 |
基本使用方式
[root@host ~]# df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
devtmpfs devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs tmpfs 1.9G 13M 1.9G 1% /run
tmpfs tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/sda2 xfs 36G 4.5G 32G 13% /
tmpfs tmpfs 378M 36K 378M 1% /run/user/0
/dev/sr0 iso9660 4.4G 4.4G 0 100% /run/media/root/CentOS 7 x86_64
/dev/sdb1 xfs 20G 33M 20G 1% /data1
8.显示分区、挂载情况命令——lsblk
基本使用方式
[root@host ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 40G 0 disk
├─sda1 8:1 0 4G 0 part [SWAP]
└─sda2 8:2 0 36G 0 part /
sr0 11:0 1 1024M 0 rom
9.永久挂载的方式
使用UUID写入fstab文件实现永久挂载
首先查询UUID(设备的唯一标识)
[root@host ~]# blkid
/dev/sda2: UUID="c937b5bd-9d03-4ee3-91a5-3be0f93336d8" TYPE="xfs"
/dev/sda1: UUID="2d8e7957-8582-416f-976e-7c6756f53933" TYPE="swap"
/dev/sdb1: UUID="7e41eebc-303f-48eb-814b-fdefd825661e" TYPE="xfs"
将挂载参数写入fastab(开机自动挂载的文件)中
vim /etc/fstab
# /etc/fstab
# Created by anaconda on Wed Mar 22 19:45:22 2023
#
# 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=c937b5bd-9d03-4ee3-91a5-3be0f93336d8 / xfs defaults 0 0
UUID=2d8e7957-8582-416f-976e-7c6756f53933 swap swap defaults 0 0
~
各个字段含义:
第一个字段:UUID=c937b5bd-9d03-4ee3-91a5-3be0f93336d8
,设备名或者设备卷标名。
第二个字段:/
,文件系统的挂载点目录的位置。
第三个字段:xfs
,文件系统类型,如 xfs
、swap
等。
第四个字段:defaults
,挂载参数,即mount命令-o
选项后使用的参数。例如,defaults(默认参数〉、rw(可读写)、ro(只读)、noexec(禁用执行租序)。
第五个字段:0
,表示文件系统是否需要dump备份〈dump 是一个备份工具)。一般设为1时表示需要,设为0时将被dump 忽略。
第六个字段:0
,该数字决定在系统启动时进行磁盘检查的顺序。0表示不进行检查,1表示优先检查,2表示其次检查。根分区可设为1,其他分区设为2。
然后挂载所有设备,最后显示挂载情况
[root@host ~]# mount -a
[root@host ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 40G 0 disk
├─sda1 8:1 0 4G 0 part [SWAP]
└─sda2 8:2 0 36G 0 part /
sdb 8:16 0 80G 0 disk
└─sdb1 8:17 0 20G 0 part /home
sr0 11:0 1 1024M 0 rom
使用初始配置文件实现永久挂载
[root@host ~]# vim /etc/profile
mount /dev/sdb1 /data1/
使用开机自动执行文件实现永久挂载
[root@host ~]# vim /etc/rc.local
mount /dev/sdb1 /data1/
mount /dev/sdb0 /mnt
[root@host ~]# chmod +x /etc/rc.d/rc.local
//!$自动识别上个命令的最后一个字段
[root@host ~]# ll !$
chomd +x /etc/rc.d/rc.local
五、linux系统添加新硬盘过程
1.插入新的硬盘
2.5/3.5英寸的托盘插入服务器
2.刷新识别
(1)重启系统刷新
(2)在线刷新
echo "- - -" > /sys/class/scsi_host/host0/scan
echo "- - -" > /sys/class/scsi_host/host1/scan
echo "- - -" > /sys/class/scsi_host/host2/scan
fdisk -l
查看磁盘设备
3.fdisk 设备文件/dev/sdb
n
:新建分区
p/e/l
:创建主分区/扩展分区/逻辑分区
1...
:设置分区号,主分区/扩展分区1~4
,逻辑分区 5~...
起始扇区
:—般直接回车,使用默认的值
终止扇区
:一般设置大小,+xxG/M/K
t
:设置分区类型ID,83
是默认的linux类型,82
swap,8e
LVM,fd
raid
p
:查看分区状态
w/q
:保存退出/不保存退出
4.格式化创建文件系统
mkfs -t 类型xfs/ext4 分区文件/dev/sdb1
mkfs.类型xfs/ext4
mkswap 分区文件/dev/sdb1
5.拄载使用
mount 分区文件 挂载日录
swapon 分区文件
6.查看挂载情况
df [一hT]
mount
swapon -s
free [-m]
lsblk