当前位置: 首页 > news >正文

fdisk - Linux下的磁盘分区利器

文章目录

  • 前言
  • 一、安装和启动
  • 二、基本命令
    • 2.1 查看分区表
    • 2.2 删除分区
    • 2.3 创建新分区
    • 2.4 更改分区类型
    • 2.5 其他指令
  • 三、注意事项
  • 四、其他相关工具


前言

在Linux系统中,磁盘管理是维护系统性能和数据安全的重要环节。fdisk 是一个强大的命令行工具,专门用于磁盘分区的创建、删除和管理。本文将详细介绍 fdisk 命令的基本用法和常见操作,帮助用户高效地管理磁盘。


一、安装和启动

在大多数 Linux 发行版中,fdisk 默认已安装,如果未安装,可以通过包管理器进行安装。

启动 fdisk 的基本命令格式为:sudo fdisk /dev/sdX,其中,/dev/sdX 是你要操作的磁盘设备名,例如,/dev/sdb

root@jeff:/home/jeff# lsblk
NAME                      MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
loop0                       7:0    0    64M  1 loop /snap/core20/2379
loop1                       7:1    0    87M  1 loop /snap/lxd/28373
loop2                       7:2    0  63.7M  1 loop /snap/core20/2434
loop3                       7:3    0  39.1M  1 loop /snap/snapd/21184
loop4                       7:4    0  38.8M  1 loop /snap/snapd/21759
loop5                       7:5    0    87M  1 loop /snap/lxd/29351
sda                         8:0    0    50G  0 disk
├─sda1                      8:1    0     1M  0 part
├─sda2                      8:2    0     2G  0 part /boot
└─sda3                      8:3    0    48G  0 part└─ubuntu--vg-ubuntu--lv 253:0    0    48G  0 lvm  /
sdb                         8:16   1 115.6G  0 disk
└─sdb1                      8:17   1 115.6G  0 part
sr0                        11:0    1  1024M  0 rom
root@jeff:/home/jeff# fdisk /dev/sdbWelcome to fdisk (util-linux 2.37.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.Command (m for help): 

二、基本命令

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

2.1 查看分区表

命令: p
功能: 打印当前分区表,显示分区的编号、起始扇区、结束扇区、大小和类型。

Command (m for help): pDisk /dev/sdb: 115.59 GiB, 124117843968 bytes, 242417664 sectors
Disk model: DataTraveler 3.0
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x749ffca9Device     Boot Start	End   		Sectors   Size 		Id 	Type
/dev/sdb1  		2048 	242417663 	242415616 115.6G  	7 	HPFS/NTFS/exFATCommand (m for help):

以下是对各个部分的解释:

磁盘信息概述

  • Disk /dev/sdb: 磁盘设备,名为 /dev/sdb
  • Size: 磁盘的大小为 115.59 GiB(即 124117843968 字节)
  • Sectors: 磁盘包含 242417664 个扇区
  • Disk model: 磁盘的型号为 DataTraveler 3.0,表明这是一个 USB 闪存驱动器
  • Units: 每个单位的大小为 1 * 512 = 512 bytes,这表示每个扇区的大小为 512 字节
  • Sector size (logical/physical): 逻辑扇区大小和物理扇区大小都是 512 bytes,这是常见的扇区大小
  • I/O size (minimum/optimal): 最小和最优的 I/O 大小均为 512 bytes
  • Disklabel type: 分区表类型为 dos,这表明这是一个传统的 MBR 分区表格式
  • Disk identifier: 分区标识符为 0x749ffca9,是用于识别此磁盘的唯一值

分区信息

DeviceBootStartEndSectorsSizeIdType
/dev/sdb12048242417663242415616115.6G7HPFS/NTFS/exFAT
  • Device: /dev/sdb1 是磁盘上的第一个分区
  • Boot: 此列为空,表明该分区不是可引导的
  • Start: 分区的起始扇区为 2048,这是磁盘上的第一个有效数据扇区
  • End: 分区的结束扇区为 242417663
  • Sectors: 此分区包含 242415616 个扇区(从 2048 到 242417663)
  • Size: 分区的大小为 115.6G,与整个磁盘的大小一致,表明此分区使用了整个磁盘的空间
  • Id: 分区类型 ID 为 7,表示该分区的类型为 HPFS/NTFS/exFAT,这通常用于 Windows 系统的 NTFS 或 exFAT 文件系统
  • Type: 表示此分区的文件系统类型,主要为 HPFS/NTFS/exFAT,说明该分区可以用于存储大文件并且可以在多种操作系统之间共享

2.2 删除分区

命令: d
功能: 删除指定的分区 (注意:输入指令 w 使其生效,如果有多个分区会提示你输入要删除的分区编号)

Command (m for help): d
Selected partition 1
Partition 1 has been deleted.Command (m for help): p
Disk /dev/sdb: 115.59 GiB, 124117843968 bytes, 242417664 sectors
Disk model: DataTraveler 3.0
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x749ffca9Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.root@jeff:/home/jeff# lsblk
NAME                      MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
loop0                       7:0    0    64M  1 loop /snap/core20/2379
loop1                       7:1    0    87M  1 loop /snap/lxd/28373
loop2                       7:2    0  63.7M  1 loop /snap/core20/2434
loop3                       7:3    0  39.1M  1 loop /snap/snapd/21184
loop4                       7:4    0  38.8M  1 loop /snap/snapd/21759
loop5                       7:5    0    87M  1 loop /snap/lxd/29351
sda                         8:0    0    50G  0 disk
├─sda1                      8:1    0     1M  0 part
├─sda2                      8:2    0     2G  0 part /boot
└─sda3                      8:3    0    48G  0 part└─ubuntu--vg-ubuntu--lv 253:0    0    48G  0 lvm  /
sdb                         8:16   1 115.6G  0 disk
sr0                        11:0    1  1024M  0 rom

2.3 创建新分区

命令: n
功能: 创建新分区。你可以选择主分区或扩展分区,系统会提示输入分区编号、起始扇区和大小。

Command (m for help): n
Partition typep   primary (0 primary, 0 extended, 4 free)e   extended (container for logical partitions)
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-242417663, default 2048):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-242417663, default 242417663): +16GCreated a new partition 1 of type 'Linux' and of size 16 GiB.
Partition #1 contains a exfat signature.Do you want to remove the signature? [Y]es/[N]o: yesThe signature will be removed by a write command.Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.root@jeff:/home/jeff# lsblk
NAME                      MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
loop0                       7:0    0    64M  1 loop /snap/core20/2379
loop1                       7:1    0    87M  1 loop /snap/lxd/28373
loop2                       7:2    0  63.7M  1 loop /snap/core20/2434
loop3                       7:3    0  39.1M  1 loop /snap/snapd/21184
loop4                       7:4    0  38.8M  1 loop /snap/snapd/21759
loop5                       7:5    0    87M  1 loop /snap/lxd/29351
sda                         8:0    0    50G  0 disk
├─sda1                      8:1    0     1M  0 part
├─sda2                      8:2    0     2G  0 part /boot
└─sda3                      8:3    0    48G  0 part└─ubuntu--vg-ubuntu--lv 253:0    0    48G  0 lvm  /
sdb                         8:16   1 115.6G  0 disk
└─sdb1                      8:17   1    16G  0 part
sr0                        11:0    1  1024M  0 rom
root@jeff:/home/jeff#

流程:

  • 选择分区类型(主分区或扩展分区)
  • 输入分区编号(例如,1 ~ 4)
  • 输入起始扇区(可以按 Enter 使用默认值)
  • 输入分区大小(可以用 “+16G” 表示 16GB,直接按Enter默认使用全部内存)

主分区(Primary Partition): 主分区是磁盘上可以直接用于存储文件系统的分区。每个物理磁盘最多可以包含 4 个主分区。
扩展分区(Extended Partition): 扩展分区是一种特殊类型的分区,不能直接格式化为文件系统。它的主要目的是容纳多个逻辑分区。

2.4 更改分区类型

命令: t
功能: 更改分区的文件系统类型。

Command (m for help): p
Disk /dev/sdb: 115.59 GiB, 124117843968 bytes, 242417664 sectors
Disk model: DataTraveler 3.0
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x749ffca9Device     Boot Start      End  Sectors Size Id Type
/dev/sdb1        2048 33556479 33554432  16G 83 LinuxCommand (m for help): t
Selected partition 1
Hex code or alias (type L to list all): L00 Empty            24 NEC DOS          81 Minix / old Lin  bf Solaris
01 FAT12            27 Hidden NTFS Win  82 Linux swap / So  c1 DRDOS/sec (FAT-
02 XENIX root       39 Plan 9           83 Linux            c4 DRDOS/sec (FAT-
03 XENIX usr        3c PartitionMagic   84 OS/2 hidden or   c6 DRDOS/sec (FAT-
04 FAT16 <32M       40 Venix 80286      85 Linux extended   c7 Syrinx
05 Extended         41 PPC PReP Boot    86 NTFS volume set  da Non-FS data
06 FAT16            42 SFS              87 NTFS volume set  db CP/M / CTOS / .
07 HPFS/NTFS/exFAT  4d QNX4.x           88 Linux plaintext  de Dell Utility
08 AIX              4e QNX4.x 2nd part  8e Linux LVM        df BootIt
09 AIX bootable     4f QNX4.x 3rd part  93 Amoeba           e1 DOS access
0a OS/2 Boot Manag  50 OnTrack DM       94 Amoeba BBT       e3 DOS R/O
0b W95 FAT32        51 OnTrack DM6 Aux  9f BSD/OS           e4 SpeedStor
0c W95 FAT32 (LBA)  52 CP/M             a0 IBM Thinkpad hi  ea Linux extended
0e W95 FAT16 (LBA)  53 OnTrack DM6 Aux  a5 FreeBSD          eb BeOS fs
0f W95 Ext'd (LBA)  54 OnTrackDM6       a6 OpenBSD          ee GPT
10 OPUS             55 EZ-Drive         a7 NeXTSTEP         ef EFI (FAT-12/16/
11 Hidden FAT12     56 Golden Bow       a8 Darwin UFS       f0 Linux/PA-RISC b
12 Compaq diagnost  5c Priam Edisk      a9 NetBSD           f1 SpeedStor
14 Hidden FAT16 <3  61 SpeedStor        ab Darwin boot      f4 SpeedStor
16 Hidden FAT16     63 GNU HURD or Sys  af HFS / HFS+       f2 DOS secondary
17 Hidden HPFS/NTF  64 Novell Netware   b7 BSDI fs          fb VMware VMFS
18 AST SmartSleep   65 Novell Netware   b8 BSDI swap        fc VMware VMKCORE
1b Hidden W95 FAT3  70 DiskSecure Mult  bb Boot Wizard hid  fd Linux raid auto
1c Hidden W95 FAT3  75 PC/IX            bc Acronis FAT32 L  fe LANstep
1e Hidden W95 FAT1  80 Old Minix        be Solaris boot     ff BBTAliases:linux          - 83swap           - 82extended       - 05uefi           - EFraid           - FDlvm            - 8Elinuxex        - 85
Hex code or alias (type L to list all): 7
Changed type of partition 'Linux' to 'HPFS/NTFS/exFAT'.Command (m for help): p
Disk /dev/sdb: 115.59 GiB, 124117843968 bytes, 242417664 sectors
Disk model: DataTraveler 3.0
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x749ffca9Device     Boot Start      End  Sectors Size Id Type
/dev/sdb1        2048 33556479 33554432  16G  7 HPFS/NTFS/exFATCommand (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

注意:fdisk 工具的 t 指令用于更改现有分区的文件系统类型标识符,分区类型标识符是用于指示特定分区应使用哪种文件系统或用途的数字代码,并不会直接改变分区的文件系统格式,因此我们需要一些额外的工具来格式化该分区的文件系统类型,比如将分区格式化为 exFAT,可以使用 mkfs.exfat 工具。

使用指令 sudo mkfs.exfat /dev/sdb1 将sdb1分区文件系统类型格式化为exfat类型。

root@jeff:/home/jeff# lsblk
NAME                      MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
loop0                       7:0    0    64M  1 loop /snap/core20/2379
loop1                       7:1    0    87M  1 loop /snap/lxd/28373
loop2                       7:2    0  63.7M  1 loop /snap/core20/2434
loop3                       7:3    0  39.1M  1 loop /snap/snapd/21184
loop4                       7:4    0  38.8M  1 loop /snap/snapd/21759
loop5                       7:5    0    87M  1 loop /snap/lxd/29351
sda                         8:0    0    50G  0 disk
├─sda1                      8:1    0     1M  0 part
├─sda2                      8:2    0     2G  0 part /boot
└─sda3                      8:3    0    48G  0 part└─ubuntu--vg-ubuntu--lv 253:0    0    48G  0 lvm  /
sdb                         8:16   1 115.6G  0 disk
└─sdb1                      8:17   1    16G  0 part
sr0                        11:0    1  1024M  0 rom
root@jeff:/home/jeff# mkfs.exfat /dev/sdb1
exfatprogs version : 1.1.3
Creating exFAT filesystem(/dev/sdb1, cluster size=32768)Writing volume boot record: done
Writing backup volume boot record: done
Fat table creation: done
Allocation bitmap creation: done
Upcase table creation: done
Writing root directory entry: done
Synchronizing...exFAT format complete!

这样,该分区既能在Linux下使用,也能在Windows上使用啦。

2.5 其他指令

输入 m 可以查看所有的指令

Command (m for help): mHelp:DOS (MBR)a   toggle a bootable flagb   edit nested BSD disklabelc   toggle the dos compatibility flagGenericd   delete a partitionF   list free unpartitioned spacel   list known partition typesn   add a new partitionp   print the partition tablet   change a partition typev   verify the partition tablei   print information about a partitionMiscm   print this menuu   change display/entry unitsx   extra functionality (experts only)ScriptI   load disk layout from sfdisk script fileO   dump disk layout to sfdisk script fileSave & Exitw   write table to disk and exitq   quit without saving changesCreate a new labelg   create a new empty GPT partition tableG   create a new empty SGI (IRIX) partition tableo   create a new empty DOS partition tables   create a new empty Sun partition tableCommand (m for help):

三、注意事项

  • 备份数据: 在进行任何分区操作之前,确保已备份所有重要数据,以防止数据丢失。
  • 操作权限: fdisk 需要 root 权限。
  • MBR与GPT: fdisk 主要用于 MBR 分区,如果你的磁盘使用 GPT,推荐使用 gdisk 或 parted。

备注:MBR 是较老的分区格式,适合小型磁盘(最大2TB)和简单分区需求。GPT 是现代标准,提供更大的灵活性和扩展性,适合大容量磁盘(超过2TB)和复杂分区需求

四、其他相关工具

  • parted: 一个更强大、更灵活的分区工具,支持 MBR 和 GPT 分区。
  • gdisk: 专为 GPT 分区表设计的工具,提供了类似 fdisk 的功能。
  • gparted: 一个图形界面的分区管理工具,适合不熟悉命令行的用户。
http://www.lryc.cn/news/471930.html

相关文章:

  • or-tools优化库记录
  • M1 Pro MacBook Pro 上的奇遇:Rust 构建失败,SIGKILL 惊魂记
  • 重构商业生态:DApp创新玩法与盈利模式的深度剖析
  • 2024首届亚洲国际电影节圆满落下帷幕
  • 【Mybatis】动态SQL+配置文件+数据库连接池+企业规范(10)
  • layui扩展组件之----右键菜单
  • ue5实现数字滚动增长
  • Flink(一)
  • kaggle 数据集下载
  • Linux shell编程学习笔记87:blkid命令——获取块设备信息
  • wireshark筛选条件整理
  • 基于现代 C++17 的模块化视频质量诊断处理流程设计
  • 高级java每日一道面试题-2024年10月23日-JVM篇-说一下JVM有哪些垃圾回收算法?
  • 高效文本编辑与导航:Vim中的三种基本模式及粘滞位的深度解析
  • w005基于Springboot学生心理咨询评估系统
  • 实战-任意文件下载
  • PG数据库之视图详解
  • 时间序列预测(十五)——有关Python项目框架的实例分析
  • ETL、ELT和反向ETL都有什么不同?怎么选择?
  • linux 中文实用型手册 基于RHEL(红帽系)
  • Hash表算法
  • MySQL企业常见架构与调优经验分享
  • C++引用类型变量
  • 《C++23 新特性:现代软件开发的变革力量》
  • Educational Codeforces Round 88 E. Modular Stability
  • Android中SurfaceView与GLSurfaceView 的关系
  • numpy——数学运算
  • 【工具】Charles对360浏览器抓包抓包
  • 【HarmonyOS】判断应用是否已安装
  • Qt Designer客户端安装和插件集(pyqt5和pyside2)