Linux实操篇-磁盘分区/磁盘情况查询

传送门

SpringMVC的源码解析(精品)
Spring6的源码解析(精品)
SpringBoot3框架(精品)
MyBatis框架(精品)
MyBatis-Plus
SpringDataJPA
SpringCloudNetflix
SpringCloudAlibaba(精品)
Shiro
SpringSecurity
java的LOG日志框架
Activiti(敬请期待)
JDK8新特性
JDK9新特性
JDK10新特性
JDK11新特性
JDK12新特性
JDK13新特性
JDK14新特性
JDK15新特性
JDK16新特性
JDK17新特性
JDK18新特性
JDK19新特性
JDK20新特性
JDK21新特性
其他技术文章传送门入口

前言

不懂点Linux,都不好意思和别人说自己是开发,所以一些基础的必须掌握,同样的也是面试高频。

以下文章不定时更新…
Linux基础篇
Linux实操篇
Linux定制篇

一、磁盘分区概念

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、磁盘分区实战

在 Linux 系统中,磁盘分区是将硬盘或其他存储设备划分成多个逻辑部分(分区),以便更好地管理、存储数据和安装操作系统。每个分区可以被格式化为特定的文件系统,并用于存储文件、目录或其他系统数据。以下是有关磁盘分区的详细介绍。

1. 磁盘分区基础

磁盘分区的主要目的是将物理硬盘划分为多个独立的逻辑区,每个逻辑区可以独立使用。分区的类型和结构可以根据需求来配置,包括操作系统的安装、数据存储、交换空间(swap)等。常见的分区方案包括:

  • 主分区:直接分配给操作系统,最多可以有 4 个主分区。
  • 扩展分区:为了克服 4 个主分区的限制,扩展分区可以包含多个逻辑分区。
  • 逻辑分区:扩展分区下的实际使用分区。

2. 分区表类型

磁盘使用不同的分区表类型来管理分区。常见的分区表类型有两种:

2.1 MBR(Master Boot Record)
  • 限制:MBR 分区表最多支持 4 个主分区或 3 个主分区和 1 个扩展分区。
  • 分区结构:分区信息存储在磁盘的第一个扇区(512 字节)中。
  • 兼容性:与较旧的操作系统兼容,但对大于 2TB 的磁盘支持较差。
2.2 GPT(GUID Partition Table)
  • 优点:GPT 支持超过 4 个分区,并且支持大于 2TB 的磁盘。它是现代磁盘分区的标准,适用于 UEFI 启动。
  • 分区数量:最多可以有 128 个分区。
  • 备份:GPT 分区表在磁盘的开头和末尾都有备份,提高了数据安全性。

3. 常见磁盘分区操作

3.1 查看磁盘信息

使用 lsblkfdisk 来查看磁盘和分区的布局。

  • lsblk:显示所有块设备的层次结构。

    lsblk
    
  • fdisk:列出磁盘的分区表信息。

    sudo fdisk -l
    
3.2 创建分区

可以使用 fdisk(适用于 MBR)或 parted(适用于 GPT)来创建分区。

  • 使用 fdisk 创建分区(MBR 分区表)

    1. 启动 fdisk
      sudo fdisk /dev/sda
      
    2. 输入 m 查看帮助。
    3. 输入 n 创建一个新的分区。
    4. 输入 w 保存并退出。
  • 使用 parted 创建分区(GPT 分区表)

    1. 启动 parted
      sudo parted /dev/sda
      
    2. 输入 mklabel gpt 创建 GPT 分区表(如果还没有分区表)。
    3. 输入 mkpart 创建新的分区。
    4. 输入 quit 退出。
3.3 删除分区
  • 使用 fdisk 删除分区
    1. 启动 fdisk
      sudo fdisk /dev/sda
      
    2. 输入 d 删除分区。
    3. 输入 w 保存更改。
3.4 格式化分区

分区创建后,需要格式化为某种文件系统,常用的文件系统有 ext4xfsbtrfs 等。

  • 格式化为 ext4 文件系统

    sudo mkfs.ext4 /dev/sda1
    
  • 格式化为 xfs 文件系统

    sudo mkfs.xfs /dev/sda1
    
  • 格式化为 ntfs 文件系统(适用于与 Windows 共享)

    sudo mkfs.ntfs /dev/sda1
    
3.5 挂载分区

挂载是指将分区连接到文件系统的某个位置,使得数据可以通过目录访问。

  • 临时挂载

    sudo mount /dev/sda1 /mnt
    

    这会将 /dev/sda1 分区挂载到 /mnt 目录。

  • 永久挂载:编辑 /etc/fstab 文件,使分区在系统启动时自动挂载。
    打开 /etc/fstab 文件:

    sudo nano /etc/fstab
    

    添加一行:

    /dev/sda1  /mnt  ext4  defaults  0  2
    
3.6 查看分区的使用情况
  • 查看磁盘空间使用情况
    df -h
    
    该命令会显示所有挂载的文件系统的磁盘使用情况。
3.7 调整分区大小

使用 gpartedparted 来调整分区的大小,通常需要备份数据,因为调整分区大小可能会导致数据丢失。

  • 使用 gparted(图形界面)
    sudo gparted
    

4. 交换分区(Swap)

交换分区用于扩展虚拟内存,特别是在物理内存不足时。Linux 会将不常用的数据从 RAM 中移到交换分区,从而腾出内存。

4.1 创建交换分区
  1. 使用 fdiskparted 创建一个新的分区,类型设置为交换(82)。
  2. 格式化为交换格式:
    sudo mkswap /dev/sda2
    
4.2 启用交换分区
sudo swapon /dev/sda2
4.3 永久启用交换分区

将交换分区添加到 /etc/fstab 文件中:

/dev/sda2 none swap sw 0 0

5. 常见磁盘分区工具

  • fdisk:用于管理 MBR 分区表,适用于较小的磁盘(最大支持 2TB)。
  • parted:支持 MBR 和 GPT 分区表,适用于较大的磁盘(支持大于 2TB 的磁盘)。
  • gparted:图形化磁盘分区管理工具,基于 parted,适用于桌面环境。
  • lsblk:查看磁盘分区和挂载信息。
  • blkid:查看磁盘分区的文件系统类型。
  • mkfs:用于格式化分区为特定的文件系统。

总结

磁盘分区是 Linux 系统中管理存储设备的重要操作。合理的分区可以提高系统的性能和数据的管理效率。常用的磁盘分区工具包括 fdiskpartedgparted,以及其他格式化和挂载命令。分区结构、文件系统类型以及是否使用交换分区等因素会直接影响系统的运行效率和稳定性。

三、磁盘情况查询概念

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四、磁盘情况查询实战

在 Linux 系统中,查询磁盘的情况可以通过多种命令和工具来进行。这些命令可以帮助你查看磁盘的总容量、已用空间、空闲空间、挂载点等信息。以下是一些常用的查询磁盘情况的命令和工具:

1. df 命令

df(disk free)命令用于显示文件系统的磁盘空间使用情况,包括总容量、已用空间、可用空间和挂载点。

示例:
df -h
  • -h 参数表示以人类可读的格式显示(自动选择合适的单位,如 GB、MB 等)。
  • 输出示例:
    文件系统     容量  已用  可用 已用% 挂载点
    /dev/sda1    50G   30G   20G  60%  /
    /dev/sdb1    100G  50G   50G  50%  /mnt/data
    

2. lsblk 命令

lsblk(list block devices)命令用于列出所有块设备(磁盘)及其分区的结构,并显示每个设备的大小、类型、挂载点等信息。

示例:
lsblk
  • 输出示例:
    NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
    sda      8:0    0   50G  0 disk
    ├─sda1   8:1    0   30G  0 part /
    └─sda2   8:2    0   20G  0 part /mnt
    sdb      8:16   0  100G  0 disk
    └─sdb1   8:17   0  100G  0 part /mnt/data
    

3. fdisk 命令

fdisk 命令用于显示硬盘的分区信息,并可以进行分区操作。通过 -l 选项列出所有磁盘及其分区表。

示例:
sudo fdisk -l
  • 输出示例:
    Disk /dev/sda: 50 GB, 50000000000 bytes
    255 heads, 63 sectors/track, 6096 cylinders, total 97656250 sectors
    Units = sectors of 1 * 512 = 512 bytes
    
    Device     Boot  Start      End         Blocks   Id  System
    /dev/sda1  *     2048      625152     311552    83  Linux
    /dev/sda2       625153    97656249  48505348   83  Linux
    

4. blkid 命令

blkid 命令用于显示磁盘分区的详细信息,包括分区的文件系统类型、UUID(通用唯一标识符)等。

示例:
sudo blkid
  • 输出示例:
    /dev/sda1: UUID="abcd-1234" TYPE="ext4" PARTUUID="xxxx"
    /dev/sda2: UUID="abcd-5678" TYPE="xfs" PARTUUID="yyyy"
    /dev/sdb1: UUID="abcd-91011" TYPE="ntfs" PARTUUID="zzzz"
    

5. parted 命令

parted 是一个功能强大的分区工具,可以显示磁盘的分区情况。使用 print 命令查看分区信息。

示例:
sudo parted /dev/sda print
  • 输出示例:
    Model: ATA VBOX HARDDISK (scsi)
    Disk /dev/sda: 50.0GB
    Sector size (logical/physical): 512B/512B
    Partition Table: msdos
    Disk Flags:
    
    Number  Start   End     Size    Type     File system  Flags
     1      1049kB  31.5GB  31.5GB  primary  ext4
     2      31.5GB  50.0GB  18.5GB  primary  xfs
    

6. du 命令

du(disk usage)命令用于查看指定目录或文件的磁盘使用情况。虽然它通常用于查看目录的空间使用情况,但它也可以帮助你查看某个目录下文件的磁盘占用。

示例:

查看当前目录下各个子目录的磁盘使用情况:

du -h --max-depth=1
  • -h 参数以人类可读的格式显示。
  • --max-depth=1 限制显示的目录层级深度。

7. smartctl 命令

smartctl 是用于查看磁盘的健康状态和详细信息(S.M.A.R.T.)的工具。如果硬盘支持 S.M.A.R.T.,可以用它来检查磁盘的健康状况。

示例:

查看磁盘的健康状态:

sudo smartctl -a /dev/sda
  • 输出示例:
    smartctl 7.2 2018-12-28 r4881 [x86_64-linux-5.4.0-42-generic] (local build)
    Copyright (C) 2002-18, Bruce Allen, Christian Franke, www.smartmontools.org
    
    === START OF INFORMATION SECTION ===
    Model Family:     Western Digital Red
    Device Model:     WDC WD10EZEX-00BN5A0
    Serial Number:    WD-WCC4M0J4N5MY
    Firmware Version: 01.01A01
    User Capacity:    1,000,204,886,016 bytes [1.00 TB]
    Sector Size:      512 bytes logical/physical
    ATA Version is:   ATA8-ACS T13/2131-D revision 3
    SMART support is: Available - device has SMART capability.
    SMART overall-health self-assessment test result: PASSED
    

8. iostat 命令

iostat(Input/Output Statistics)命令用于查看磁盘的 I/O 性能和使用情况。它显示每个设备的读写速度和等待时间等。

示例:
iostat -dx
  • -d 显示设备统计信息。
  • -x 显示设备的扩展统计信息,包括每个磁盘的使用情况。

总结

在 Linux 系统中,查询磁盘情况可以使用多种命令:

  • df:显示文件系统的磁盘空间使用情况。
  • lsblk:列出块设备及其分区的结构。
  • fdiskparted:查看磁盘的分区信息。
  • blkid:显示磁盘分区的文件系统类型及 UUID。
  • du:查看目录或文件的磁盘使用情况。
  • smartctl:查看磁盘的健康状态。
  • iostat:查看磁盘的 I/O 性能。

根据需求,你可以选择合适的命令来获取磁盘的相关信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

蓝影铁哥

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

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

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

打赏作者

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

抵扣说明:

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

余额充值