10个用于管理Linux磁盘分区的fdisk命令


fdisk 代表(“固定磁盘格式磁盘”)是最常用的基于命令行的磁盘操作实用程序Linux/Unix 系统。在fdisk命令的帮助下,您可以使用自己的用户友好的基于文本的菜单驱动界面查看,创建,调整大小,删除,更改,复制和移动硬盘上的分区。

此工具在为新分区创建空间,为新驱动器组织空间,重新组织旧驱动器以及将数据复制或移动到新磁盘方面非常有用。它允许您根据系统中硬盘的大小创建最多四个新分区和逻辑(扩展)分区数。

本文介绍了在基于Linux的系统中管理分区表的10个基本 fdisk命令。您必须 root 用户才能运行fdisk命令,否则您将收到“命令未找到”错误。

1.在Linux中查看所有磁盘分区

以下基本命令列出了系统上的所有现有磁盘分区。 ' -l <​​/ strong>'参数代表(列出所有分区)与fdisk命令一起使用,以查看Linux上的所有可用分区。分区按设备名称显示。例如:/dev/sda /dev/sdb /dev/sdc

[[email protected] ~]# fdisk -l

Disk /dev/sda: 637.8 GB, 637802643456 bytes
255 heads, 63 sectors/track, 77541 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          13      104391   83  Linux
/dev/sda2              14        2624    20972857+  83  Linux
/dev/sda3            2625        4582    15727635   83  Linux
/dev/sda4            4583       77541   586043167+   5  Extended
/dev/sda5            4583        5887    10482381   83  Linux
/dev/sda6            5888        7192    10482381   83  Linux
/dev/sda7            7193        7845     5245191   83  Linux
/dev/sda8            7846        8367     4192933+  82  Linux swap / Solaris
/dev/sda9            8368       77541   555640123+  8e  Linux LVM

2.在Linux中查看特定磁盘分区

要查看特定硬盘的所有分区,请使用带有设备名称的“ -l <​​/ strong>”选项。例如,以下命令将显示设备/dev/sda 的所有磁盘分区。如果您使用不同的设备名称,则将设备名称简单写为/dev/sdb /dev/sdc

[[email protected] ~]# fdisk -l /dev/sda

Disk /dev/sda: 637.8 GB, 637802643456 bytes
255 heads, 63 sectors/track, 77541 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          13      104391   83  Linux
/dev/sda2              14        2624    20972857+  83  Linux
/dev/sda3            2625        4582    15727635   83  Linux
/dev/sda4            4583       77541   586043167+   5  Extended
/dev/sda5            4583        5887    10482381   83  Linux
/dev/sda6            5888        7192    10482381   83  Linux
/dev/sda7            7193        7845     5245191   83  Linux
/dev/sda8            7846        8367     4192933+  82  Linux swap / Solaris
/dev/sda9            8368       77541   555640123+  8e  Linux LVM

3.检查所有可用的fdisk命令

如果要查看可用于fdisk的所有命令。只需使用以下命令,提及硬盘名称,如/dev/sda ,如下所示。以下命令将为您提供类似于下面的输出。

[[email protected] ~]# fdisk /dev/sda

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help):

键入“ m ”以查看可在/dev/sda 硬盘上运行的fdisk所有可用命令的列表。之后,我在屏幕上输入“ m ”,您将看到可以在/dev/sda 设备上使用的fdisk的所有可用选项。

[[email protected] ~]# fdisk /dev/sda

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help): m
Command action
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition
   l   list known partition types
   m   print this menu
   n   add a new partition
   o   create a new empty DOS partition table
   p   print the partition table
   q   quit without saving changes
   s   create a new empty Sun disklabel
   t   change a partition's system id
   u   change display/entry units
   v   verify the partition table
   w   write table to disk and exit
   x   extra functionality (experts only)

Command (m for help):

4.在Linux中打印所有分区表

要打印硬盘的所有分区表,您必须在特定硬盘的命令模式下说/dev/sda

[[email protected] ~]# fdisk /dev/sda

在命令模式下,输入“ p ”而不是之前的“ m ”。当我输入“ p ”时,它将打印特定的/dev/sda 分区表。

Command (m for help): p

Disk /dev/sda: 637.8 GB, 637802643456 bytes
255 heads, 63 sectors/track, 77541 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          13      104391   83  Linux
/dev/sda2              14        2624    20972857+  83  Linux
/dev/sda3            2625        4582    15727635   83  Linux
/dev/sda4            4583       77541   586043167+   5  Extended
/dev/sda5            4583        5887    10482381   83  Linux
/dev/sda6            5888        7192    10482381   83  Linux
/dev/sda7            7193        7845     5245191   83  Linux
/dev/sda8            7846        8367     4192933+  82  Linux swap / Solaris
/dev/sda9            8368       77541   555640123+  8e  Linux LVM

Command (m for help):

5.如何在Linux中删除分区

如果要从特定硬盘(例如/dev/sda )删除特定分区(即/dev/sda9 )。您必须处于fdisk命令模式才能执行此操作。

[[email protected] ~]# fdisk /dev/sda

接下来,输入“ d ”以从系统中删除任何给定的分区名称。当我输入“ d ”时,它会提示我输入要从/dev/sda 硬盘中删除的分区号。假设我在这里输入数字“ 4 ”,那么它将删除分区号“ 4 ”(即/dev/sda4 )磁盘并显示免费分区表中的空格。输入“ w ”将表写入磁盘,并在对分区表进行新的更改后退出。新的更改只会在下次重启系统后进行。从下面的输出可以很容易地理解这一点。

[[email protected] ~]# fdisk /dev/sda

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help): d
Partition number (1-4): 4

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.
You have new mail in /var/spool/mail/root

警告:执行此步骤时请务必小心,因为使用选项' d '将完全删除系统中的分区,并可能丢失分区中的所有数据。

6.如何在Linux中创建新分区

如果您的某个设备上有剩余空间,请说/dev/sda ,并希望在其下创建新分区。然后您必须处于/dev/sda 的fdisk命令模式。输入以下命令进入特定硬盘的命令模式。

[[email protected] ~]# fdisk /dev/sda

进入命令模式后,现在按“ n ”命令在/dev/sda 下创建一个具有特定大小的新分区。这可以通过以下给定输出来证明。

[[email protected] ~]# fdisk  /dev/sda

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
e

在创建新分区时,它会向您询问两个选项“扩展”或“主要”分区创建。按“ e ”表示扩展分区,按“ p ”表示主分区。然后它会要求您输入以下两个输入。

  1. First cylinder number of the partition to be create.
  2. Last cylinder number of the partition to be created (Last cylinder, +cylinders or +size).

您可以通过在最后一个柱面中添加“ + 5000M ”来输入柱面尺寸。这里,' + '表示添加, 5000M 表示新分区的大小(即 5000MB )。请记住,在创建新分区后,您应该运行“ w ”命令来更改并保存对分区表的新更改,最后重新启动系统以验证新创建的分区。

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.

7.如何在Linux中格式化分区

创建新分区后,请勿跳过使用“ mkfs ”命令格式化新创建的分区。在终端中键入以下命令以格式化分区。这里/dev/sda4 是我新创建的分区。

[[email protected] ~]# mkfs.ext4 /dev/sda4

8.如何在Linux中检查分区的大小

格式化新分区后,使用标记“ s ”(以块显示大小)使用fdisk命令检查该分区的大小。这样您就可以检查任何特定设备的大小。

[[email protected] ~]# fdisk -s /dev/sda2
5194304

9.如何修复分区表顺序

如果您删除了逻辑分区并再次重新创建它,您可能会注意到“分区乱序”问题或错误消息,例如“分区表条目不在磁盘顺序中 ”。

例如,当删除三个逻辑分区(例如 sda4 sda5 sda6 )并创建新分区时,您可能会期望新的分区分区名称为 sda4 。但是,系统会将其创建为 sda5 。这是因为,在删除分区后, sda7 分区已移至 sda4 ,并且可用空间移至末尾。

要修复此类分区顺序问题,并将 sda4 分配给新创建的分区,请发出“ x ”以输入额外的功能部分,然后输入“ f 'expert命令修复分区表的顺序,如下所示。

[[email protected] ~]# fdisk  /dev/sda

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help): x

Expert command (m for help): f
Done.

Expert command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.

之后,运行“ f ”命令,不要忘记运行“ w ”命令来保存并退出fdisk命令模式。一旦修复了分区表顺序,您将不再收到错误消息。

10.如何禁用分区的引导标志(*)

默认情况下,fdisk命令在每个分区上显示引导标志(即“ * ”)符号。如果要在特定分区上启用或禁用引导标志,请执行以下步骤。

[[email protected] ~]# fdisk  /dev/sda

按“ p ”命令查看当前分区表,您会看到/dev /上有一个引导标志(橙色的星号( * )符号) sda1 磁盘如下图所示。

[[email protected] ~]# fdisk /dev/sda

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help): p

Disk /dev/sda: 637.8 GB, 637802643456 bytes
255 heads, 63 sectors/track, 77541 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          13      104391   83  Linux
/dev/sda2              14        2624    20972857+  83  Linux
/dev/sda3            2625        4582    15727635   83  Linux
/dev/sda4            4583       77541   586043167+   5  Extended
/dev/sda5            4583        5887    10482381   83  Linux
/dev/sda6            5888        7192    10482381   83  Linux
/dev/sda7            7193        7845     5245191   83  Linux
/dev/sda8            7846        8367     4192933+  82  Linux swap / Solaris
/dev/sda9            8368       77541   555640123+  8e  Linux LVM

接下来输入命令' a '以禁用启动标志,然后在我的情况下输入分区号“ 1 ”(即/dev/sda1 ) 。这将禁用分区/dev/sda1 上的引导标志。这将删除星号( * )标志。

Command (m for help): a
Partition number (1-9): 1

Command (m for help): p

Disk /dev/sda: 637.8 GB, 637802643456 bytes
255 heads, 63 sectors/track, 77541 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1          13      104391   83  Linux
/dev/sda2              14        2624    20972857+  83  Linux
/dev/sda3            2625        4582    15727635   83  Linux
/dev/sda4            4583       77541   586043167+   5  Extended
/dev/sda5            4583        5887    10482381   83  Linux
/dev/sda6            5888        7192    10482381   83  Linux
/dev/sda7            7193        7845     5245191   83  Linux
/dev/sda8            7846        8367     4192933+  82  Linux swap / Solaris
/dev/sda9            8368       77541   555640123+  8e  Linux LVM

Command (m for help):

我已尽力包含几乎所有fdisk命令的基本命令,但fdisk仍然包含各种其他专家命令,您可以通过输入“ x ”来使用它们。有关更多详细信息,请查看终端上的“ man fdisk ”命令。如果我错过了任何重要的命令,请通过评论部分与我分享。

另请阅读:

  1. 12 “df” Commands to Check Disk Space in Linux
  2. 10 Useful “du” Commands to Find Disk Usage of Files and Directories

版权所有。 © Linux-Console.net • 2019-2020