Linux中磁盘分区和文件系统管理

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
可观测可视化 Grafana 版,10个用户账号 1个月
简介: 在Linux系统中,磁盘是存储数据的物理设备,如HDD或SSD,以文件形式存在于`/dev`目录下,如`sda`、`sdb`等。文件系统定义了如何在磁盘上组织和访问数据,常见的Linux文件系统有ext2、ext3、ext4、xfs等。通过虚拟机软件如VMware,用户可以向Linux虚拟机添加新的硬盘。

前言————

磁盘

在Linux系统中,磁盘是一种用于存储数据的物理设备,可以是传统的硬盘驱动器(HDD)或固态硬盘(SSD)。Linux将磁盘设备视为块设备,它们通常以文件形式表示在 /dev 目录下。

文件系统

在计算机系统中,文件系统定义了如何存储和检索数据或信息。在 Windows 操作系统中,流行的文件系统是 FAT32 和 NTFS。另一方面,在 Linux 操作系统中,流行的文件系统是 ext2、ext3、ext4、xfs(当前)、vfat、swap、ZFS 和 GlusterFS。

以下均在Vmware中测试

1.添加硬盘

在虚拟机中添加一块硬盘

磁盘类型选择默认类型SCSI



默认下一步


一直默认下一步大小根据需要自己定义

添加完成之后我们就会发现多了一块硬盘


2.查看所有磁盘


在 CentOS 7 中,设备文件位于 /dev 目录中。SATA、SCSI 和 USB 磁盘显示为 sda、sdb 或 sdc(根据磁盘数量),其中 sd 表示 SCSI 磁盘。举例来说,假如你有一个 SATA 或 SCSI 磁盘,并在那里安装 CentOS,你的磁盘驱动器将显示为 sda。


设备命名规则
  • 硬盘设备通常以 /dev/sdX 形式命名,其中 X 是字母(例如,/dev/sda/dev/sdb)。
  • 分区通常表示为 /dev/sdXY,其中 Y 是分区号(例如,/dev/sda1/dev/sdb2)。


查看磁盘信息

fdisk -l



磁盘信息:


  1.    Disk /dev/sdX: 表示一个物理磁盘,/dev/sdX 是磁盘设备的路径,X 可能是字母,如a、b、c等。
  2.    Size: 表示磁盘总容量。
  3.    Units: 表示容量的单位,通常是 sectors。


分区信息:


  1.    /dev/sdXY:表示一个分区,其中 X 是磁盘编号,Y 是分区编号。
  2.    Start:表示分区的起始扇区。
  3.    End:表示分区的结束扇区。
  4.    Sectors:表示分区的总扇区数。
  5.    Size:表示分区的大小。
  6.    Type:表示分区的类型,例如Linux、Windows、EFI等。
  7.    Id:表示分区的标识符。


其他信息:


  1.    System:表示文件系统类型,如ext4、ntfs等。
  2.    Boot:表示是否为引导分区。
  3.    Flags:表示分区的标志,例如 boot、lvm 等。


3.fdisk 分区工具


fdisk 是一个常用的Linux命令行工具,用于对磁盘进行分区。


注意:fdisk 工具不了解 GUID 分区表 (GPT),它不是为大分区(超过 2TB)设计的。在这种情况下,必须使用支持多种分区表格式(包括 MS-DOS 和 GPT)以及大文件大小(超过 2TB)的分段工具。

具体过程

以下是对使用fdisk工具对于磁盘进行分区的具体过程

[root@localhost ~] fdisk /dev/sdb 欢迎使用 fdisk (util-linux 2.23.2)。   更改将停留在内存中,直到您决定将更改写入磁盘。 使用写入命令前请三思。   Device does not contain a recognized partition table 使用磁盘标识符 0xa540a752 创建新的 DOS 磁盘标签。   命令(输入 m 获取帮助):n Partition type:    p   primary (0 primary, 0 extended, 4 free)    e   extended Select (default p): p 分区号 (1-4,默认 1):1 起始 扇区 (2048-41943039,默认为 2048): 将使用默认值 2048 Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+10G 分区 1 已设置为 Linux 类型,大小设为 10 GiB   命令(输入 m 获取帮助):w The partition table has been altered!   Calling ioctl() to re-read partition table. 正在同步磁盘。  


说明:开始分区后输入n,新增分区,然后选择p ,分区类型为主分区,

两次回车默认,最后输入w写入分区并退出,若不保存退出输入q。


查看命令帮助

命令(m 寻求帮助):m 命令 actiona 切换可引导标志 edit bsd disklabelc 切换 dos 兼容性标志   d 删除分区 g 创建一个新的空 GPT 分区表 G 创建 IRIX (SGI) 分区表 l 列出已知的分区类型 m 打印此菜单 n 添加新分区 o 创建一个新的空 DOS 分区表 p 打印分区表 Q 退出而不保存更改 s 创建一个新的空 Sun 磁盘标签 t 更改分区的系统 ID u 更改显示/输入单元 v 验证分区表 w 将表写入磁盘并退出 X 额外功能(仅限专家) 命令(m 寻求帮助):



此刻再次查看/dev/sdb

[root@localhost ~] fdisk -l /dev/sdb    磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘标签类型:dos 磁盘标识符:0xa540a752      设备 Boot      Start         End      Blocks   Id  System /dev/sdb1            2048    20973567    10485760   83  Linux



4.格式化分区

现已分区完毕 需要格式化才能对我们的分区进行使用 常用的是xfs的文件系统格式

如下操作 把/dev/sdb1 格式化为xfs

[root@localhost ~] mkfs.xfs /dev/sdb1  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



如果你想要格式化其他文件系统 只用在mkfs.xfs 替换为ext4即可

以下实例:

[root@localhost ~] mkfs.ext4 /dev/sdb2 mke2fs 1.42.9 (28-Dec-2013) 文件系统标签= OS type: Linux 块大小=1024 (log=0) 分块大小=1024 (log=0) Stride=0 blocks, Stripe width=0 blocks 102400 inodes, 409600 blocks 20480 blocks (5.00%) reserved for the super user 第一个数据块=1 Maximum filesystem blocks=34078720 50 block groups 8192 blocks per group, 8192 fragments per group 2048 inodes per group Superblock backups stored on blocks:      8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409   Allocating group tables: 完成                             正在写入inode表: 完成                             Creating journal (8192 blocks): 完成 Writing superblocks and filesystem accounting information: 完成





5.挂载磁盘(重点)

挂载之前需要创建挂载点 然后使用mount对于磁盘进行挂载

临时挂载

[root@localhost ~] mount /dev/sdb1 /data [root@localhost ~] df -hT 文件系统                类型      容量  已用  可用 已用% 挂载点 devtmpfs                devtmpfs  678M     0  678M    0% /dev tmpfs                   tmpfs     695M     0  695M    0% /dev/shm tmpfs                   tmpfs     695M   11M  684M    2% /run tmpfs                   tmpfs     695M     0  695M    0% /sys/fs/cgroup /dev/mapper/centos-root xfs        17G  6.1G   11G   36% / /dev/sda1               xfs      1014M  172M  843M   17% /boot tmpfs                   tmpfs     139M   24K  139M    1% /run/user/0 /dev/sr0                iso9660   4.4G  4.4G     0  100% /run/media/root/CentOS 7 x86_64 /dev/sdb1               xfs        10G   33M   10G    1% /data




自动挂载

编辑/etc/fstab文件加入如下即可实现自动挂载

注意事项:加入完毕退出保存之后 需要重新加载一次

[root@localhost ~] vim /etc/fstab



mount -a    重新加载一次磁盘挂载


添加描述

小伙伴们 进行到这一步一个磁盘就可以使用了 快去试试吧!


6.删除磁盘分区

刚刚讲完磁盘的挂载 哥文件格式化 现在来讲讲 磁盘的分区如何进行删除呢。

现在我这里有两个磁盘 接下来以此进行删除

  • /dev/sdb1               xfs        10G   33M   10G    1% /data
  • /dev/sdb2               ext4      380M  2.3M  354M    1% /date

把编辑的信息进行删除

[root@localhost ~] vim /etc/fstab  [root@localhost ~] cat /etc/fstab   /dev/mapper/centos-root /                       xfs     defaults        0 0 UUID=7df82e80-5c97-4a4b-8d15-f3a1b051a70b /boot                   xfs     defaults        0 0 /dev/mapper/centos-swap swap  




取消挂载

   [root@localhost ~] umount /dev/sdb1     [root@localhost ~] umount /dev/sdb2



删除分区


接下来删除/dev/sdb1 sdb2分区


   [root@localhost ~] fdisk /dev/sdb     欢迎使用 fdisk (util-linux 2.23.2)。           更改将停留在内存中,直到您决定将更改写入磁盘。     使用写入命令前请三思。                 命令(输入 m 获取帮助):d     分区号 (1,2,默认 2):1     分区 1 已删除           命令(输入 m 获取帮助):d     已选择分区 2     分区 2 已删除           命令(输入 m 获取帮助):p           磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区     Units = 扇区 of 1 * 512 = 512 bytes     扇区大小(逻辑/物理):512 字节 / 512 字节     I/O 大小(最小/最佳):512 字节 / 512 字节     磁盘标签类型:dos     磁盘标识符:0xa540a752              设备 Boot      Start         End      Blocks   Id  System           命令(输入 m 获取帮助):w     The partition table has been altered!           Calling ioctl() to re-read partition table.     正在同步磁盘。




再次查看/dev/sdb 发现sdb1和sdb2分区都已删除

   [root@localhost ~] fdisk /dev/sdb -l           磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区     Units = 扇区 of 1 * 512 = 512 bytes     扇区大小(逻辑/物理):512 字节 / 512 字节     I/O 大小(最小/最佳):512 字节 / 512 字节     磁盘标签类型:dos     磁盘标识符:0xa540a752      



      设备 Boot      Start         End      Blocks   Id  System


m命令帮助手册


   命令(m 寻求帮助):m

   命令 actiona 切换可引导标志 edit bsd disklabelc 切换 dos 兼容性标志


   d 删除分区


   g 创建一个新的空 GPT 分区表


   G 创建 IRIX (SGI) 分区表


   l 列出已知的分区类型


   m 打印此菜单


   n 添加新分区


   o 创建一个新的空 DOS 分区表


   p 打印分区表


   Q 退出而不保存更改


   s 创建一个新的空 Sun 磁盘标签


   t 更改分区的系统 ID


   u 更改显示/输入单元


   v 验证分区表


   w 将表写入磁盘并退出


   X 额外功能(仅限专家)


学习完 这些你将会是 linux磁盘管理的初等小将



相关文章
|
6天前
|
存储 缓存 Linux
【Linux】文件系统
在打开文件之前,我们需要找到文件 -> 就要从磁盘中找到对应文件 -> 通过文件路径与文件名
21 4
|
1天前
|
存储 Linux vr&ar
Linux文件系统
Linux文件系统
11 4
|
1天前
|
算法 安全 Linux
探索Linux内核的虚拟内存管理
【5月更文挑战第20天】 在本文中,我们将深入探讨Linux操作系统的核心组成部分之一——虚拟内存管理。通过剖析其关键组件和运作机制,揭示虚拟内存如何提供高效的内存抽象,支持庞大的地址空间,以及实现内存保护和共享。文章将重点讨论分页机制、虚拟内存区域(VMAs)的管理、页面置换算法,并简要分析这些技术是如何支撑起现代操作系统复杂而多变的内存需求的。
|
6天前
|
存储 Linux
Linux为新创建的磁盘分区添加文件系统
Linux为新创建的磁盘分区添加文件系统
|
6天前
|
Linux Windows 存储
|
6天前
|
Linux
|
6天前
|
Linux
请问如何在Linux系统中删除一个磁盘分区
请问如何在Linux系统中删除一个磁盘分区
|
6天前
|
存储 算法 Linux
【Linux】详解文件系统以及周边知识
【Linux】详解文件系统以及周边知识
|
6天前
|
安全 Shell Linux
Linux 用户和用户组管理
Linux 用户和用户组管理
|
6天前
|
存储 Linux 编译器
【探索Linux】P.13(文件系统 | 软硬链接 | 动态库和静态库)
【探索Linux】P.13(文件系统 | 软硬链接 | 动态库和静态库)
16 0