Linux磁盘分区快速上手(讲解详细)

一、磁盘分区

在Linux中,磁盘是通过分区来使用的。分区是将一个硬盘划分成几个逻辑部分来使用,在每个分区中可以存储不同的文件系统。因此,在挂载磁盘之前,我们需要先对磁盘进行分区。磁盘分区的过程可以通过命令行工具或图形界面工具来完成。

常用的磁盘分区工具有:

    cfdisk:命令行工具,适用于创建主分区和扩展分区,支持MBR和GPT分区表。

    fdisk:命令行工具,适用于创建主分区和扩展分区,支持MBR分区表。

    gdisk:命令行工具,适用于创建主分区、扩展分区和逻辑分区,支持GPT分区表。

    gparted:图形界面工具,适用于创建主分区、扩展分区和逻辑分区,支持MBR和GPT分区表。

分区的目的是将一个硬盘划分成多个逻辑部分,每个部分可以单独使用和管理。当然,分区并不是必需的,我们也可以直接将整个硬盘作为一个单一的分区进行挂载。

我们在后续用到的是fdisk命令工具

二、文件系统

在Linux中,文件系统是挂载磁盘的重要概念。文件系统是指一种组织数据的方式,可以帮助我们在磁盘上存储和管理文件。常见的Linux文件系统有ext2、ext3、ext4、XFS等。

(1)ext2(第二扩展文件系统):是 Linux 最早引入的日志文件系统之一。它使用索引节点(inode)来管理文件和目录,并使用位图来管理磁盘块的分配。然而,ext2 没有日志功能,这使得在发生意外掉电或系统崩溃时恢复文件系统变得较慢。

(2)ext3(第三扩展文件系统):是 ext2 文件系统的升级版本。它引入了日志功能,使用日志记录(journaling)来跟踪文件系统操作。这样,在系统异常关机后可以更快地进行恢复,减少数据丢失的风险。与 ext2 相比,ext3 提供了更好的可靠性和性能。

(3)ext4(第四扩展文件系统):是 ext3 文件系统的进一步改进和扩展。它增强了文件系统的大小和性能,并支持更大的文件和分区。ext4 引入了多块分配、延迟分配和其他改进,以提高文件系统的性能和可靠性。它是目前最常用的 Linux 文件系统之一。

(4)XFS:是一个高性能的日志文件系统,最初由 SGI 开发。它设计用于处理大型文件和大容量存储,并针对高吞吐量的工作负载进行了优化。XFS 支持快速分配和回收磁盘空间,并具有出色的可扩展性和鲁棒性。它被广泛用于服务器环境和高性能计算领域。

在挂载磁盘之前,我们需要先在磁盘上创建文件系统。创建文件系统的命令为mkfs。

三、实际操作(快速分区)

1.使用lsblk命令查看新加入的磁盘信息

Linux磁盘分区快速上手(讲解详细)_第1张图片

上述中我们可以看到vda磁盘挂载的是根目录并且已经有了一个分区为vda1,而vdb磁盘暂时还没有挂载任何目录并且没有分区信息,所以vdb就是系统空闲的磁盘。 

2.fdisk -l命令查看系统中磁盘分区详细信息

包括磁盘设备名称、分区表类型、起始扇区、结束扇区、总扇区数等。

Linux磁盘分区快速上手(讲解详细)_第2张图片

 3.使用fdisk分区新磁盘,并将分区标记为Linux文件系统类型(83)

sudo fdisk /dev/vdb

输入m可以查看命令选项

 DOS (MBR)
   a   toggle a bootable flag 切换引导标志,使分区可启动
   b   edit nested BSD disklabel 编辑嵌套的 BSD 磁盘标签
   c   toggle the dos compatibility flag 切换 DOS 兼容性标志

  Generic
   d   delete a partition 删除一个分区
   F   list free unpartitioned space 列出未分区的空闲空间
   l   list known partition types 列出已知的分区类型
   n   add a new partition 添加一个新分区
   p   print the partition table 打印分区表
   t   change a partition type 更改分区类型
   v   verify the partition table 验证分区表
   i   print information about a partition 打印有关分区的信息

  Misc
   m   print this menu 显示此菜单
   u   change display/entry units 更改显示/输入单位
   x   extra functionality (experts only) 额外功能(仅供专家使用)

  Script
   I   load disk layout from sfdisk script file 从 sfdisk 脚本文件加载磁盘布局
   O   dump disk layout to sfdisk script file 将磁盘布局转储到 sfdisk 脚本文件

  Save & Exit
   w   write table to disk and exit 将表写入磁盘并退出
   q   quit without saving changes 退出而不保存更改

Create a new label
   g   create a new empty GPT partition table  创建一个新的空 GPT(GUID 分区表)磁盘分区表。
   G   create a new empty SGI (IRIX) partition table 创建一个新的空 SGI(IRIX)磁盘分区表。
   o   create a new empty DOS partition table 创建一个新的空 DOS(MBR)磁盘分区表。
   s   create a new empty Sun partition table 创建一个新的空 Sun 磁盘分区表。

 直接按照如下操作进行分区

Linux磁盘分区快速上手(讲解详细)_第3张图片

说明:

n: 创建新分区。出现选择分区类型的提示时,默认选择主分区(primary)。

p: 选择分区类型为 "p",即主分区。

1: 输入分区号码为 "1",表示创建第一个分区,如果不选默认就是1。

First sector: 输入第一个扇区的起始位置,默认值为 2048。你可以保持默认值(按 Enter 键),这样分区将从第一个可用扇区开始。

Last sector: 输入最后一个扇区的位置,可以输入结束位置或者分区大小。默认值为设备的最大扇区数。你可以输入具体的扇区数或者可选的单位表示分区大小(如 "300G" 表示 300GB)。根据你的输入,分区大小将为 300 GiB。

t: 更改分区类型。选择分区编号为 1 的分区。

83: 设置分区类型为 83,表示 Linux 文件系统类型。

w: 保存并写入分区表更改。

最后几行提示分区表已经被修改,并且正在同步磁盘。

4.格式化新分区,使用mkfs命令

sudo mkfs -t ext4 /dev/vdb1

·  mkfs:表示创建文件系统的意思。

·  -t ext4:指定要创建的文件系统类型为 ext4。

·  /dev/vdb:指定磁盘路径,即要在哪个磁盘上创建文件系统。

Linux磁盘分区快速上手(讲解详细)_第4张图片

5.创建挂载目录,使用mkdir命令

sudo mkdir /data 

/data : 挂载的目录

注意:不能挂载当前目录下已经存在数据的目录,一定要是空目录,否则可能会导致已存在目录下的文件和子目录被隐藏

对于已经有数据的磁盘的目录我们应该怎么办呢,首先备份某个目录(data)数据,然后更改目录名称(data-test),然后再创建一个和之前一样名称的空目录(data),使用这个目录挂载,成功之后,将之前的那个目录(data-test)名称改为data即可。

6.挂载分区,使用mount命令

sudo mount /dev/vdb1 /data

7.验证挂载是否成功,使用df -h命令查看所有文件系统的储存器使用情况:

sudo df -h

出现如下图所示:即成功的将/dev/vdb1的分区挂载到/data目录下

Linux磁盘分区快速上手(讲解详细)_第5张图片

 8.永久挂载(重启不会消失)

永久挂载:通过修改  /etc/fstab文件,实现永久挂载。防止重启的时候挂在的目录失效。

vim /etc/fstab

添加如下一行:

/dev/vdb1 /data ext4 defaults 0 0

Linux磁盘分区快速上手(讲解详细)_第6张图片

解释含义:

dev/vdb1: 这是要挂载的设备的名称。在 Linux 中,设备通常以 /dev 目录下的文件表示,例如硬盘分区、光盘驱动器等。/dev/vdb1 表示第一个硬盘 vdb 的第一个分区。

/data: 这是指定的挂载点,也就是将设备挂载到文件系统中的哪个目录下。在这个例子中,设备 /dev/vdb1 将会被挂载到 /data 目录。

ext4: 这是设备的文件系统类型,表示该设备采用 ext4 文件系统格式。

 defaults: 这里列出了用于挂载的选项。defaults 表示使用默认的挂载选项,包括读写权限等。

0: 表示是否对该文件系统执行磁盘检查。0 表示不执行,1 表示引导时执行。

0: 表示是否进行备份。一般情况下也是0,表示不进行备份。

你可能感兴趣的:(linux,运维,服务器)