目录

前言

1 fdisk命令概述

1.1 什么是fdisk

1.2 fdisk的应用场景

1.3 fdisk与其他分区工具的比较

2 fdisk命令的安装与基本语法

2.1 在不同Linux发行版中安装fdisk

2.2 fdisk的基本语法

3 fdisk命令参数详解

3.1 主要参数说明

3.2 交互式命令

4 fdisk操作流程详解

4.1 完整的分区操作流程

4.2 实际操作示例

5 高级应用与实践

5.1 分区类型设置

5.2 分区对齐优化

6 注意事项与常见问题

6.1 安全注意事项

6.2 常见错误及解决方案

6.3 性能优化建议

7 总结


前言

在Linux系统中,磁盘管理是系统运维的重要环节。而fdisk作为Linux中最经典、最常用的磁盘分区管理工具,几乎成为了每个Linux系统管理员必备的技能。

1 fdisk命令概述

1.1 什么是fdisk

fdisk(Fixed Disk or Format Disk)是Linux系统中用于创建和管理磁盘分区表的命令行工具。它的全称是"Partition table manipulator for Linux",专门用于操作磁盘分区信息。
核心功能:
  • 创建、删除、修改磁盘分区
  • 查看磁盘分区表信息
  • 支持多种分区表格式(MBR、GPT、Sun、SGI、BSD)
  • 优化现代磁盘的分区布局(如4K扇区对齐)

1.2 fdisk的应用场景

  • 需求分析:根据实际需求确定分区方案
  • 选择工具:根据分区类型选择合适的工具(fdisk主要用于MBR分区)
  • 执行操作:使用fdisk命令进行具体的分区操作
  • 验证结果:检查分区是否正确创建并应用

1.3 fdisk与其他分区工具的比较

工具名称

支持分区表

最大分区大小

交互模式

适用场景

fdisk

MBR、GPT

2TB(MBR)

交互式

传统MBR分区,小容量磁盘

parted

MBR、GPT

无限制

命令行/交互

大容量磁盘,现代分区表

gdisk

GPT

无限制

交互式

GPT分区,UEFI系统

cfdisk

MBR

2TB

交互式

图形化界面,初学者

2 fdisk命令的安装与基本语法

2.1 在不同Linux发行版中安装fdisk

  • Ubuntu/Debian系统:
sudo apt-get update
sudo apt-get install fdisk
  • CentOS/RHEL系统:
sudo yum install fdisk
# 或
sudo dnf install fdisk
  • Arch Linux系统:
sudo pacman -S fdisk

2.2 fdisk的基本语法

fdisk [选项] 设备文件名
常用选项:
  • -l:显示设备的分区表信息
  • -u:以扇区单位显示分区信息
  • -s:显示分区大小(已弃用)
  • -V:显示版本信息

3 fdisk命令参数详解

3.1 主要参数说明

显示类参数:
  • -l:列出指定设备的分区表信息
  • -u:指定显示单位(扇区或柱面)
  • -o:自定义输出列格式
操作类参数:
  • -n:创建新分区(非交互模式)
  • -d:删除分区(非交互模式)
  • -t:指定分区类型
配置类参数:
  • -b:指定扇区大小(512、1024、2048、4096)
  • -H:指定磁头数
  • -S:指定每磁道扇区数

3.2 交互式命令

  • 进入fdisk交互模式后,可以使用以下命令:

命令

功能

说明

m

显示帮助

显示所有可用命令

p

打印分区表

显示当前分区信息

n

新建分区

创建新的分区

d

删除分区

删除指定分区

t

修改分区类型

更改分区ID

w

保存并退出

将更改写入磁盘

q

不保存退出

放弃更改退出

l

列出分区类型

显示所有支持的分区类型

a

设置引导标志

标记活动分区

c

设置DOS兼容标志

设置DOS兼容性

4 fdisk操作流程详解

4.1 完整的分区操作流程

  • 查看磁盘信息:使用fdisk -l命令查看当前磁盘分区情况
  • 进入交互模式:使用fdisk /dev/sdX进入指定磁盘的交互模式
  • 查看分区表:使用p命令查看当前分区表信息
  • 分区管理:根据需要删除或创建分区
  • 设置参数:为新建分区设置类型、大小等参数
  • 保存更改:使用w命令将更改写入磁盘
  • 验证结果:使用fdisk -l和lsblk验证分区是否正确创建

4.2 实际操作示例

  • 示例1:查看磁盘分区信息
# 查看所有磁盘的分区信息
sudo fdisk -l# 查看指定磁盘的分区信息
sudo fdisk -l /dev/sda
  • Device:设备名称
  • Boot:是否为引导分区
  • Start:起始扇区
  • End:结束扇区
  • Sectors:扇区总数
  • Size:分区大小
  • Id:分区类型ID
  • Type:分区类型描述
  • 示例2:创建主分区
sudo fdisk /dev/sdb# 在交互模式中执行以下命令:
Command (m for help): n    # 新建分区
Partition type:p   primary (0 primary, 0 extended, 4 free)e   extended
Select (default p): p     # 选择主分区
Partition number (1-4, default 1): 1  # 分区号
First sector (2048-1048575999, default 2048):  # 回车使用默认值
Last sector, +sectors or +size{K,M,G,T} (2048-1048575999, default 1048575999): +10G  # 设置分区大小Command (m for help): w    # 保存并退出
  • 示例3:创建扩展分区和逻辑分区
sudo fdisk /dev/sdb# 创建扩展分区
Command (m for help): n
Partition type:p   primary (1 primary, 0 extended, 3 free)e   extended
Select (default e): e      # 选择扩展分区
Partition number (2-4, default 2): 2  # 扩展分区号
First sector (2097152-1048575999, default 2097152):  # 回车使用默认值
Last sector, +sectors or +size{K,M,G,T} (2097152-1048575999, default 1048575999): +20G  # 设置扩展分区大小# 创建逻辑分区
Command (m for help): n
Partition type:p   primary (1 primary, 1 extended, 2 free)l   logical (5 free)
Select (default l): l      # 选择逻辑分区
Adding logical partition 5
First sector (4196352-44040191, default 4196352):  # 回车使用默认值
Last sector, +sectors or +size{K,M,G,T} (4196352-44040191, default 44040191): +5G  # 设置逻辑分区大小Command (m for help): w    # 保存并退出
  • 示例4:删除分区
sudo fdisk /dev/sdbCommand (m for help): p    # 查看当前分区表
Command (m for help): d     # 删除分区
Partition number (1-5, default 5): 3  # 要删除的分区号
Command (m for help): w    # 保存并退出

5 高级应用与实践

5.1 分区类型设置

常用分区类型:
  • 83:Linux原生分区
  • 82:Linux交换分区
  • 8e:Linux LVM分区
  • 07:NTFS/HPFS分区(Windows)
  • 0b:FAT32分区
  • 12:EFI系统分区
  • 05:扩展分区

5.2 分区对齐优化

  • 现代硬盘(特别是SSD)需要考虑分区对齐以获得最佳性能:
# 对于4K扇区的硬盘,起始扇区应该是2048的倍数
sudo fdisk /dev/sdb
Command (m for help): n
First sector (2048-1048575999, default 2048): 2048  # 确保4K对齐

6 注意事项与常见问题

6.1 安全注意事项

  • 数据备份:在进行分区操作前,务必备份重要数据
  • 设备确认:确保操作正确的设备,避免误操作其他磁盘
  • 谨慎使用:删除分区操作不可逆,请三思而后行
  • 权限要求:需要root权限才能执行分区操作

6.2 常见错误及解决方案

错误信息

可能原因

解决方案

Device not found

设备不存在

检查设备名称是否正确

Device is busy

设备被占用

卸载相关分区或重启系统

Invalid partition table

分区表损坏

使用fdisk /dev/sdX修复

Cannot write disk label

权限不足

使用sudo提升权限

Partition overlaps

分区重叠

重新规划分区布局

6.3 性能优化建议

  • 分区对齐:确保分区起始位置符合硬盘的物理扇区大小
  • 分区大小:避免创建过小的分区,减少分区表碎片
  • 文件系统选择:根据使用场景选择合适的文件系统
  • 定期检查:定期检查磁盘健康状态和分区完整性

7 总结

fdisk作为Linux系统中最基础、最经典的磁盘分区工具,虽然在功能上可能不如parted等现代工具强大,但其简单易用的交互模式和广泛的兼容性使其仍然是系统管理员的必备工具。
主要优势:
  • 简单直观的交互式操作
  • 广泛的Linux发行版支持
  • 完善的MBR分区支持
  • 丰富的在线文档和社区支持
适用场景:
  • 传统MBR分区的管理
  • 小容量磁盘的分区操作
  • 学习Linux磁盘管理的基础
  • 系统安装和基本的分区规划

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/98316.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/98316.shtml
英文地址,请注明出处:http://en.pswp.cn/diannao/98316.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Flowable 工作流引擎

1、核心类 Flowable 引擎通过 ProcessEngine 作为总入口点,提供了多个核心服务接口,每个服务都负责特定的功能领域:服务名称 (Service Name)主要功能 (Main Functionality)关键操作 (Key Operations)RepositoryService管理流程定义和部署&…

(RDFS)随机深度特征选择方法解释:简而言之,RDFS主要针对的是恶意的服务器,它建立在客户端是诚实的前提下。

1. 随机深度特征选择是怎么实现的?随机深度特征选择 是一种在分布式机器学习(特别是联邦学习)中用于保护客户端数据隐私的技术。它的核心思想是:在每一轮训练中,每个客户端随机选择模型的一个子集(即“深度…

C++20格式化字符串:std::format的使用与实践

在C编程中,字符串格式化是一项常见的任务。在C20引入std::format之前,开发者通常依赖于一些传统的解决方案,如printf系列函数、sstream,或者第三方库如boost.format。然而,这些方法在代码可读性、类型安全性和灵活性方…

【漏洞复现】CVE-2025-8088|WinRAR 路径穿越漏洞:从原理到蓝屏攻击全流程

【漏洞复现】CVE-2025-8088|WinRAR 路径穿越漏洞:从原理到蓝屏攻击全流程 前言 WinRAR 作为 Windows 平台最常用的压缩管理工具之一,几乎是每台电脑的 “标配软件”。但在 2025 年 8 月,一款影响范围覆盖 WinRAR 0 至 7.12 全版本…

uniapp中使用echarts并且支持pc端的拖动、拖拽和其他交互事件

npm install echarts -D ​ // "echarts": "^5.3.2", [推荐版本] // "zrender": "^5.3.2" [如果报错的话就安装这个]<template><view class"container"><view id"myChart" class"chart"…

Qt中QProxyStyledrawControl函数4个参数的意义

Qt中QProxyStyle::drawControl函数4个参数的意义 我们来详细解释一下 Qt 中 QProxyStyle::drawControl 函数的四个参数。 这个函数是 Qt 样式系统中的一个核心方法&#xff0c;用于绘制标准 UI 元素&#xff08;如按钮、复选框、菜单栏等&#xff09;。当你继承 QProxyStyle 并…

idf-esp32 PWM呼吸灯(LEDC头文件)

相关宏和变量#define LED_PIN GPIO_NUM_3 #define LEDC_CHANNEL LEDC_CHANNEL_0 #define LEDC_TIMER LEDC_TIMER_0 #define LEDC_MODE LEDC_LOW_SPEED_MODE #define LEDC_DUTY_RES LEDC_TIMER_13_BIT // 2^13 8192级亮度 #define LEDC_FREQUENCY 50…

PLC_博图系列☞基本指令”S_ODTS:分配保持型接通延时定时器参数并启动“

PLC_博图系列☞基本指令”S_ODTS&#xff1a;分配保持型接通延时定时器参数并启动“ 文章目录PLC_博图系列☞基本指令”S_ODTS&#xff1a;分配保持型接通延时定时器参数并启动“背景介绍S_ODTS&#xff1a; 分配保持型接通延时定时器参数并启动说明参数脉冲时序图示例关键字&a…

OneCode 可视化揭秘系列(三):AI MCP驱动的智能工作流逻辑编排

OneCode 可视化揭秘系列&#xff08;三&#xff09;&#xff1a;AI MCP驱动的智能工作流逻辑编排 引言 在前两篇系列博文中&#xff0c;我们详细探讨了OneCode可视化动作的基础配置与界面设计&#xff0c;以及组件交互与数据流管理。在本篇文章中&#xff0c;我们将深入剖析逻辑…

TypeORM、Sequelize、Hibernate 的优缺点对比:新手常见 SQL 与 ORM 踩坑总结

1. ORM 与关系型数据库&#xff08;MySQL、PostgreSQL&#xff09; 的使用 SQL 语句编写&#xff08;JOIN、GROUP BY、索引使用、事务控制&#xff09;与 ORM 映射&#xff08;如 Sequelize、TypeORM、Hibernate&#xff09;之间的差异会让新手非常纠结&#xff1b;尤其是理解…

JavaScript 创建型设计模式详解

1. 单例模式1.1. 使用场景在前端开发中&#xff0c;全局状态管理、配置信息、数据库连接等往往需要在应用中只存在一个实例&#xff0c;避免多次实例化带来的数据不一致性。例如&#xff0c;在一个前端应用中&#xff0c;全局的 loading 状态通常需要一个单例模式来确保其唯一性…

k8s除了主server服务器可正常使用kubectl命令,其他节点不能使用原因,以及如何在其他k8s节点正常使用kubectl命令??

kubectl 并不是“只能”在主节点&#xff08;Control Plane Node&#xff09;使用&#xff0c;而是因为它需要访问 Kubernetes 的 kube-apiserver&#xff0c;而 kube-apiserver 通常只在主节点上运行并监听内部网络。简单来说kubectl 需要连接 kube-apiserver&#xff01;&…

Custom SRP - Complex Maps

https://catlikecoding.com/unity/tutorials/custom-srp/complex-maps/1 创建材质球我们的材质已经支持光照,并且支持 Albedo 和 Emission 贴图.创建材质球,并应用下面的电路板的图分别作为 albedo emission设置材质球的金属度为 1 , 光滑度为 0.952 Mask Map在 albedo 图上的不…

repo 学习教程

你现在会用 git 了&#xff0c;接下来学 repo&#xff08;Google 推出来的多仓库管理工具&#xff09;&#xff0c;其实就是在 Git 的基础上做了一层封装&#xff0c;方便同时管理很多 Git 仓库。像 Android 源码、Rockchip 全套 SDK 都是靠 repo 来拉取和管理的。 我给你分几个…

[SWERC 2020] Safe Distance题解

[SWERC 2020] Safe Distance 题意 给定 NNN 个点与一个坐标 (X,Y)(X,Y)(X,Y)&#xff0c;求从点 (0,0)(0,0)(0,0) 到点 (X,Y)(X,Y)(X,Y) 规划一条路线&#xff0c;不能走出 (0,0)(0,0)(0,0) 与 (X,Y)(X,Y)(X,Y) 间形成的矩形&#xff0c;使得通过这条路线时距离最近的点的距离…

Rewind-你人生的搜索引擎

本文转载自&#xff1a;Rewind-你人生的搜索引擎 - Hello123工具导航 ** 一、&#x1f50d; Rewind 是什么&#xff1f;你的数字记忆增强神器 Rewind 是一款人工智能驱动的个人记忆助手&#xff0c;就像为你配备了一个「数字第二大脑」。它能自动记录、保存并索引你在电脑和手…

开发小点 - 存

开发小点 1.Req注解 EqualsAndHashCode(callSuper true) Data public class BillSituationReq extends BillQueryReq {/*** Whether to display the ring ratio, default is not displayed*/ApiModelProperty("Whether to Display YoY Comparison")private Boolean …

只会npm install?这5个隐藏技巧让你效率翻倍!

原文链接&#xff1a;https://mp.weixin.qq.com/s/nijxVWj-E5U08DX2fl3vgg最近有个刚学前端的小伙伴问我&#xff1a;“为什么我的node_modules这么大&#xff1f;为什么别人装依赖那么快&#xff1f;npx到底是啥玩意儿&#xff1f;” 相信不少人都跟他一样&#xff0c;对npm的…

(二).net面试(static)

文章目录项目地址一、基础501.1 new keyword1.2 static class vs. static method1. static class2. static method3. static constructor 静态构造函数4. 静态成员的生命周期1.3 LinQ1.what is LinQ2. List<T>、IEnumerable<T>、IQueryable<T>3. 在数据库里用…

docker,本地目录挂载

理解Docker本地目录挂载的基本概念Docker本地目录挂载允许容器与宿主机共享文件或目录&#xff0c;实现数据持久化和实时交互。挂载方式分为bind mount和volume两种&#xff0c;前者直接映射宿主机路径&#xff0c;后者由Docker管理存储路径。本地目录挂载的核心方法bind mount…