Linux实操篇-磁盘分区/磁盘情况查询
目录
- 传送门
- 前言
- 一、磁盘分区概念
- 二、磁盘分区实战
- 1. **磁盘分区基础**
- 2. **分区表类型**
- 2.1 **MBR(Master Boot Record)**
- 2.2 **GPT(GUID Partition Table)**
- 3. **常见磁盘分区操作**
- 3.1 **查看磁盘信息**
- 3.2 **创建分区**
- 3.3 **删除分区**
- 3.4 **格式化分区**
- 3.5 **挂载分区**
- 3.6 **查看分区的使用情况**
- 3.7 **调整分区大小**
- 4. **交换分区(Swap)**
- 4.1 **创建交换分区**
- 4.2 **启用交换分区**
- 4.3 **永久启用交换分区**
- 5. **常见磁盘分区工具**
- 总结
- 三、磁盘情况查询概念
- 四、磁盘情况查询实战
- 1. **`df` 命令**
- 示例:
- 2. **`lsblk` 命令**
- 示例:
- 3. **`fdisk` 命令**
- 示例:
- 4. **`blkid` 命令**
- 示例:
- 5. **`parted` 命令**
- 示例:
- 6. **`du` 命令**
- 示例:
- 7. **`smartctl` 命令**
- 示例:
- 8. **`iostat` 命令**
- 示例:
- 总结
传送门
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 查看磁盘信息
使用 lsblk
或 fdisk
来查看磁盘和分区的布局。
-
lsblk:显示所有块设备的层次结构。
lsblk
-
fdisk:列出磁盘的分区表信息。
sudo fdisk -l
3.2 创建分区
可以使用 fdisk
(适用于 MBR)或 parted
(适用于 GPT)来创建分区。
-
使用 fdisk 创建分区(MBR 分区表)
- 启动
fdisk
:sudo fdisk /dev/sda
- 输入
m
查看帮助。 - 输入
n
创建一个新的分区。 - 输入
w
保存并退出。
- 启动
-
使用 parted 创建分区(GPT 分区表)
- 启动
parted
:sudo parted /dev/sda
- 输入
mklabel gpt
创建 GPT 分区表(如果还没有分区表)。 - 输入
mkpart
创建新的分区。 - 输入
quit
退出。
- 启动
3.3 删除分区
- 使用 fdisk 删除分区:
- 启动
fdisk
:sudo fdisk /dev/sda
- 输入
d
删除分区。 - 输入
w
保存更改。
- 启动
3.4 格式化分区
分区创建后,需要格式化为某种文件系统,常用的文件系统有 ext4
、xfs
、btrfs
等。
-
格式化为 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 调整分区大小
使用 gparted
或 parted
来调整分区的大小,通常需要备份数据,因为调整分区大小可能会导致数据丢失。
- 使用 gparted(图形界面):
sudo gparted
4. 交换分区(Swap)
交换分区用于扩展虚拟内存,特别是在物理内存不足时。Linux 会将不常用的数据从 RAM 中移到交换分区,从而腾出内存。
4.1 创建交换分区
- 使用
fdisk
或parted
创建一个新的分区,类型设置为交换(82
)。 - 格式化为交换格式:
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 系统中管理存储设备的重要操作。合理的分区可以提高系统的性能和数据的管理效率。常用的磁盘分区工具包括 fdisk
、parted
、gparted
,以及其他格式化和挂载命令。分区结构、文件系统类型以及是否使用交换分区等因素会直接影响系统的运行效率和稳定性。
三、磁盘情况查询概念
四、磁盘情况查询实战
在 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
:列出块设备及其分区的结构。fdisk
或parted
:查看磁盘的分区信息。blkid
:显示磁盘分区的文件系统类型及 UUID。du
:查看目录或文件的磁盘使用情况。smartctl
:查看磁盘的健康状态。iostat
:查看磁盘的 I/O 性能。
根据需求,你可以选择合适的命令来获取磁盘的相关信息。