安装新的 SSD 或硬盘后,您需要做的第一件事就是对其进行分区。驱动器至少需要有一个分区,然后才能对其进行格式化并在其上存储文件。
在 Linux 中,您可以使用多种工具来创建分区,其中fdisk
是最常用的一种。
在这篇文章中,我们将讨论fdisk
命令。
fdisk
是一个菜单驱动的命令行实用程序,允许您在硬盘上创建和操作分区表。
意识到fdisk
是一种危险的工具,应极其谨慎使用。仅 root 或具有以下权限的用户sudo 权限可以操作分区表。
列出分区#
要列出设备的分区表,请调用fdisk
命令与-l
选项,后跟设备名称。例如列出/dev/sda
您将运行的分区表和分区:
fdisk -l /dev/sda
当没有给出设备作为参数时,fdisk
将打印列出的所有设备的分区表/proc/partitions
file:
fdisk -l
Disk /dev/nvme0n1: 232.91 GiB, 250059350016 bytes, 488397168 sectors
Disk model: Samsung SSD 960 EVO 250GB
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: gpt
Disk identifier: 6907D1B3-B3AB-7E43-AD20-0707A656A1B5
Device Start End Sectors Size Type
/dev/nvme0n1p1 2048 1050623 1048576 512M EFI System
/dev/nvme0n1p2 1050624 34605055 33554432 16G Linux swap
/dev/nvme0n1p3 34605056 488397134 453792079 216.4G Linux filesystem
Disk /dev/sda: 465.78 GiB, 500107862016 bytes, 976773168 sectors
Disk model: WDC WD5000AAKS-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: 0x0001cca3
Device Boot Start End Sectors Size Id Type
/dev/sda1 2048 976771071 976769024 465.8G 83 Linux
上面的输出显示了连接到系统的所有设备的当前分区表。一般来说,SATA 设备名称遵循以下模式/dev/sd[a-z]
,而 NVMe 设备名称具有以下模式/dev/nvme[1-9]n[1-9]
.
创建分区表#
要开始对驱动器进行分区,请运行fdisk
与设备名称。在这个例子中我们将致力于/dev/sdb
:
fdisk /dev/sdb
命令提示符将会改变,并且fdisk
将打开您可以输入命令的对话框:
Welcome to fdisk (util-linux 2.34).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help):
对分区表所做的更改只有在使用以下命令写入后才会生效w
命令。您可以退出fdisk
对话而不使用保存更改q
命令。
要获取所有可用命令的列表,请输入m
:
m
如果您要对新驱动器进行分区,则在开始创建分区之前,您需要创建分区表。如果设备已经有分区表并且您想保留它,请跳过此步骤。
fdisk
支持多种分区方案。 MBR 和 GPT 是两种最流行的分区方案标准,它们以不同的方式将分区信息存储在驱动器上。 GPT 是一种较新的标准,与 MBR 相比具有许多优点。选择使用哪种分区标准时要考虑的要点:
使用 MBR 在传统 BIOS 模式下启动磁盘。
使用 GPT 以 UEFI 模式启动磁盘。
MBR 标准支持创建最大 2 TiB 的磁盘分区。如果您有 2 TiB 或更大的磁盘,请使用 GPT。
MBR 的主分区数量限制为 4 个。如果需要更多分区,可以将其中一个主分区设置为扩展分区并容纳额外的逻辑分区。使用 GPT,您最多可以拥有 128 个分区。 GPT 不支持扩展分区或逻辑分区。
在此示例中,我们将使用 GPT 分区表。
Enter g
创建一个新的空 GPT 分区表:
g
输出将如下所示:
Created a new GPT disklabel (GUID: 4649EE36-3013-214E-961C-51A9187A7503).
下一步是创建新分区。
我们将创建两个分区。第一个大小为 100 GiB,第二个将占用剩余的磁盘空间。
Run the n
创建新分区的命令:
n
系统将提示您输入分区号。按“Enter”键使用默认值(1
):
Partition number (1-128, default 1):
接下来,该命令将要求您指定第一个扇区。通常,始终建议对第一个值使用默认值。按“Enter”键使用默认值(2048
):
First sector (2048-500118158, default 2048):
在下一个提示中,您需要输入最后一个扇区。您可以使用最后一个扇区的绝对值或相对于起始扇区的相对值,使用 + 符号后跟分区大小。大小可以以千比字节 (K)、兆比字节 (M)、吉比字节 (G)、太字节 (T) 或皮字节 (P) 为单位指定。
Enter +100G
将分区大小设置为 100 GiB:
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-500118158, default 500118158): +100G
Created a new partition 1 of type 'Linux filesystem' and of size 100 GiB.
默认情况下,新分区的类型设置为“Linux 文件系统”,这对于大多数情况来说应该没问题。如果您想更改类型,请按l
获取分区类型列表,然后按t
更改类型。
让我们创建第二个分区来占用剩余的磁盘空间:
n
使用分区号、第一个和最后一个扇区的默认值。这将创建一个分区,该分区将使用磁盘上的所有可用空间。
Partition number (2-128, default 2):
First sector (209717248-625142414, default 209717248):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (209717248-625142414, default 625142414):
创建分区后,使用p
显示新分区表的命令:
p
Disk /dev/sdb: 298.9 GiB, 320072933376 bytes, 625142448 sectors
Disk model: nal USB 3.0
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: F8365250-AF58-F74E-B592-D56E3A5DEED1
Device Start End Sectors Size Type
/dev/sdb1 2048 209717247 209715200 100G Linux filesystem
/dev/sdb2 209717248 625142414 415425167 198.1G Linux filesystem
通过运行以下命令保存更改w
命令:
p
该命令会将表写入磁盘并退出fdisk
menu.
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
内核将读取设备分区表,而无需重新启动系统。
激活分区#
现在分区已经创建,下一步是格式化分区并将它们挂载到系统的目录树中。
我们将两个分区格式化为 ext4:
sudo mkfs.ext4 -F /dev/sdb1
sudo mkfs.ext4 -F /dev/sdb2
mke2fs 1.45.5 (07-Jan-2020)
Creating filesystem with 51928145 4k blocks and 12984320 inodes
Filesystem UUID: 63a3457e-c3a1-43f4-a0e6-01a7dbe7dfed
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872
Allocating group tables: done
Writing inode tables: done
Creating journal (262144 blocks): done
Writing superblocks and filesystem accounting information: done
在此示例中,将挂载分区到/mnt/audio
and /mnt/video
目录。
创建挂载点mkdir
:
sudo mkdir -p /mnt/audio /mnt/video
Mount 新分区:
sudo mount /dev/sdb1 /mnt/audio
sudo mount /dev/sdb2 /mnt/video
分区将保持挂载状态,直到您卸载它或shutdown 机器。要在 Linux 系统启动时自动挂载分区,请在/etc/fstab
file.
就是这样!您现在可以使用新分区来存储文件。
结论#
fdisk
是用于创建分区方案的命令行工具。欲了解更多信息fdisk
命令、类型man fdisk
在您的终端中。
如果您有任何问题或反馈,请随时发表评论。