• Linux Centos系统 磁盘分区和文件系统管理 (深入理解)


    CSDN 成就一亿技术人!

    作者主页:点击!

    Linux专栏:点击!

    CSDN 成就一亿技术人!

    前言————

    磁盘

    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等。
      • Size: 表示磁盘总容量。
      • Units: 表示容量的单位,通常是 sectors。
    2. 分区信息:

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

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

    3.fdisk 分区工具

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

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

    具体过程

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

    1. [root@localhost ~] fdisk /dev/sdb
    2. 欢迎使用 fdisk (util-linux 2.23.2)。
    3. 更改将停留在内存中,直到您决定将更改写入磁盘。
    4. 使用写入命令前请三思。
    5. Device does not contain a recognized partition table
    6. 使用磁盘标识符 0xa540a752 创建新的 DOS 磁盘标签。
    7. 命令(输入 m 获取帮助):n
    8. Partition type:
    9. p primary (0 primary, 0 extended, 4 free)
    10. e extended
    11. Select (default p): p
    12. 分区号 (1-4,默认 1):1
    13. 起始 扇区 (2048-41943039,默认为 2048):
    14. 将使用默认值 2048
    15. Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+10G
    16. 分区 1 已设置为 Linux 类型,大小设为 10 GiB
    17. 命令(输入 m 获取帮助):w
    18. The partition table has been altered!
    19. Calling ioctl() to re-read partition table.
    20. 正在同步磁盘。
    21. 说明:开始分区后输入n,新增分区,然后选择p ,分区类型为主分区,
    22. 两次回车默认,最后输入w写入分区并退出,若不保存退出输入q。

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

    此刻再次查看/dev/sdb

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

    4.格式化分区

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

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

    1. [root@localhost ~] mkfs.xfs /dev/sdb1
    2. meta-data=/dev/sdb1 isize=512 agcount=4, agsize=655360 blks
    3. = sectsz=512 attr=2, projid32bit=1
    4. = crc=1 finobt=0, sparse=0
    5. data = bsize=4096 blocks=2621440, imaxpct=25
    6. = sunit=0 swidth=0 blks
    7. naming =version 2 bsize=4096 ascii-ci=0 ftype=1
    8. log =internal log bsize=4096 blocks=2560, version=2
    9. = sectsz=512 sunit=0 blks, lazy-count=1
    10. realtime =none extsz=4096 blocks=0, rtextents=0

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

    以下实例:

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

    5.挂载磁盘(重点)

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

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

    自动挂载

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

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

    [root@localhost ~] vim /etc/fstab 

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

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

    6.删除磁盘分区

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

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

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

    把编辑的信息进行删除

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

    取消挂载
    1. [root@localhost ~] umount /dev/sdb1
    2. [root@localhost ~] umount /dev/sdb2
    删除分区

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

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

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

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

    m命令帮助手册

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

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

    那么想要晋升中等请看下篇:

    Linux LVM 逻辑卷管理icon-default.png?t=N7T8https://blog.csdn.net/jxjdhdnd/article/details/136342686?spm=1001.2014.3001.5501

  • 相关阅读:
    kotlin(十七)Kotlin和Java相互调用
    ffmpeg & ffplay
    3、Elasticsearch功能使用
    测试系列:输入一个正整数n,然后输出n对应的二进制数-------要求采用递归算法实现
    LeetCode 1742. 盒子中小球的最大数量
    java 面试题
    CV+Deep Learning——网络架构Pytorch复现系列——basenets(BackBones)(一)
    Intel确认酷睿第14代是最后一代酷睿i系列, 以后是酷睿Ultra的时代
    C Primer Plus(6) 中文版 第10章 数组和指针 10.3 指针和数组
    基于FPGA的PSRAM接口设计与实现
  • 原文地址:https://blog.csdn.net/jxjdhdnd/article/details/136627126