fdisk
支持几种分区方案。MBR和GPT是两个最受欢迎的分区标准方案,它们以不同的方式将分区信息存储在驱动器上。
GPT是允许使用的较新标准,并且比MBR具有许多优势。 在选择要使用的分区标准时你需要考虑的是。
你BIOS是否支持GPT分区模式,如果不支持GPT则使用MBR。在近年的生产的计算机内置BIOS基本都会支持GPT。
如果BIOS使用了UEFI那么你的计算机时支持GPT的。如果没有大概率时不支持GPT分区,这时你应该使用MBR分区。
MBR标准最多支持创建2 TiB磁盘分区,如果磁盘的容量为2 TiB或更大,请使用GPT。
MBR的限制为4个主分区。 如果需要更多分区,则可以将一个主分区设置为扩展分区,其他都设置为逻辑分区。
使用GPT,最多可以有128个分区。 GPT不支持扩展分区或逻辑分区。
如果你需要对已经存在分区表磁盘进行分区,可参考我们的教程如何创建磁盘分区在Linux。
在开始对新的磁盘/硬盘进行分区之前,我需要知道磁盘在计算机上的名称。sudo fdisk -l
可以帮助我们找到未创建分区的磁盘。
通常,如果一个磁盘不存在任何分区,那么该磁盘就是我们要创建新分区的磁盘,在本教程的示例中,存在一个未分区的磁盘/dev/sdb。即计算机上第二块磁盘。
注意你的计算机上磁盘可能会跟教程中磁盘命名可能会一样,请根据你自己的实际做出更改。
如果已经创建分区的磁盘将会/dev/sda磁盘一样存在多个分区的名称,如/dev/sda1等。
sudo fdisk -l
#输出
Disk /dev/sda: 200 GiB, 214748364800 bytes, 419430400 sectors
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 1050623 1048576 512M b W95 FAT32
/dev/sda2 1052670 419428351 418375682 199.5G 5 Extended
/dev/sda5 1052672 419428351 418375680 199.5G 83 Linux
Disk /dev/sdb: 20 GiB, 21474836480 bytes, 41943040 sectors
Disk model: VMware Virtual S
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
现在我们已经找到需要创建分区的新磁盘,接下来使用sudo fdisk /dev/sdb
命令开始进行分区。
sudo fdisk /dev/sdb
[sudo] password for myfreax:
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.
Device does not contain a recognized partition table.Created a new DOS disklabel with disk identifier 0x3d5b6306.
当你进入fdisk
命令的会话中时,并提示你作出的任何更改都保存在内存中,直到你使用write
命令写设备,即缩写的w
命令。
你在fdisk
命令执行的子命令都不会马上写入到磁盘中。只有你明确的调用write
命令才会写入到磁盘。
如果你在fdisk
命令中做了其中一个错误的操作,但又不想一步一步撤销。或者你对当前操作不满意可以使用q
命令直接退出,将不会保存你对磁盘的任何操作。
fdisk除了提示命令外,还提示你Device does not contain a recognized partition table.即设备不包含一个可识别的分区表。这表示该磁盘不存在分区表或者分区表损坏,不可识别。
现在你已经进入fdisk
命令的会话中,如果要获取所有可用命令的列表或者帮助,可以输入m
命令。
Welcome to fdisk (util-linux 2.31.1).
Generic
d delete a partition
F list free unpartitioned space
l list known partition types
n add a new partition
p print the partition table
t change a partition type
v verify the partition table
i print information about a partition
Command (m for help):
在本教程我们将使用GPT作为分区表,因为GPT比MBR更先进与优秀。另一方面现代的操作系统都已支持GPT分区表方案。
在fdisk会话中运行命令g即可创建GPT分区表。
Command (m for help): g
Created a new GPT disklabel (GUID: 1C147272-34A2-2A42-9426-8BFC977978C1).
现在分区表已创建,下一步是创建新分区。我们将创建一分区。 第一个大小为10 GB。
你可使用fdisk的n
命令以创建新分区,当你在fdisk会话中按下n
键时,系统会提示您输入分区号。按回车键使用默认值1
。
我们不建议更改分区号,除非你明白自己在做什么。这个对于你在日常使用意义并不大,因此不需要更改它。
Command (m for help): n
Partition number (1-128, default 1): 按Enter使用默认值1
接下来,命令将要求您指定第一个扇区。 通常,始终建议对第一个值使用默认值。 按Enter
以使用默认值2048
:
First sector (2048-500118158, default 2048):
此时你将进入另一个提示,提示输入最后的扇区。如果直接填写结束的扇区,则需要计算结束扇区到开始扇区来确定大小,默认是最后未使用空间的最后一个扇区。
我们不建议你直接你直接使用扇区值进行分区。可以使用+500M,20G,1T,1P的单位确定分区的大小。
例如在我们教程中,我们将使用+10G的方式来创建10G的新分区,输出将如下所示:
Command (m for help): n
Partition number (1-128, default 1):
First sector (2048-41943006, default 2048):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-41943006, default 41943006): +10G
Created a new partition 1 of type 'Linux filesystem' and of size 10 GiB.
如果你需要所有未使用的空间作为一个分区,不要执行+10G的输入,直接回车即可使用磁盘剩余空间作为分区。
当你按enter回车键后,将打印消息Created a new partition 6 of type 'Linux' and of size 10 GiB.
然后退出n
命令。
现在,你已经创建一个新的10G大小的分区。可以使用p
命令打印当前设备的分区表,验证刚创建的分区是否存。
如你的的操作一切执行正常,没有任何错误,你应该会看到当前设备分区表中存在一个10G的分区。输出如下所示:
Device Start End Sectors Size Type
/dev/sdb1 2048 20973567 20971520 10G Linux filesystem
如正确无误,请使用w
命令,保存分区表并写入到磁盘中。将提示你分区表已经修改并同步。然后再按q
命令退出fdisk
会话。
当分区创建完成后,我们需要对分区进行格式化。才可以使用该分区的空间。我们建议你使用ext4文件系统格式以创建的分区。
以下mkfs.ext4
命令将使用ext4
格式文件系统,格式分区10G分区/dev/sdb1
:
sudo mkfs.ext4 /dev/sdb1
挂载分区
格式化完成后,Linux系统不会像windows系统一样会自动挂载新的分区。如果你需要马上使用新创建的分区。则需要手动挂载分区/dev/sdb1
到指定的挂载点中。
mount
是在Linux和UNIX操作系统中的命令。允许你挂载设备到指定的目录中。 也可用于SD卡,USB存储器,DVD和其他可移动存储设备文件系统的挂载。
在挂载设备之前,我还需要先使用mkdir
命令创建挂载点。按照Linux惯例,创建挂载通常是在/mnt/
目录下。
运行以下mkdir
命令创建挂载点,使用chown命令
将挂载点更为当前用户所有,chgrp
命令更改为当前用户组所有。如果不改变挂载点的权限,挂载分区只有root用户可读写。
最后使用mount
命令挂载指定设备/dev/sdb1
到/mnt/sdb1目录:
sudo mkdir -p /mnt/sdb1
sudo chown -R $USER /mnt/sdb1
sudo chgrp -R $USER /mnt/sdb1
mount /dev/sdb1 /mnt/sdb1
现在你已经完成了分区的挂载。
自动挂载
分区将保持挂载状态,直到您使用umount
命令卸载它或者关闭重启计算机。要在Linux系统启动时自动挂载分区,你需要在/etc/fstab
文件中定义挂载配置选项。
/etc/fstab
文件存储着文件系统的静态信息,可用于定义磁盘分区,各种其他块设备或远程文件系统,告知Linux内核如何在挂载这些设备文件。
使用你喜欢的文件编辑器修改文件/etc/fstab
,在本教程中我们将使用vim编辑器打开文件/etc/fstab
。
请以root或具有sudo权限的用户运行以下vim命令打开文件/etc/fstab
:
sudo vim /etc/fstab
复制粘帖以下内容到文件/etc/fstab
:
/dev/sdb1 /mnt/sdb1 ext4 id=1000,gid=1000 0 2
保存文件并退出vim编辑器。其中选项id
是你当前用户的id,gid
是你当前用户的gid。设置uid和gid是为了让当前用户对挂载的分区具有所有权。
创建文件或者已经存在的文件。都将权限修改为id=1000的用户所有。至此你已经完成所有步骤。
结论
fdisk
是用于创建分区方案的命令行工具。有关fdisk
命令的更多信息,请在终端中键入man fdisk
。
如果您有任何问题或反馈,请随时发表评论。