【Linux】磁盘管理与文件系统


一、磁盘基础

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,文件系统类型,如 xfsswap等。

  第四个字段: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
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我的宝贝大唐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值