Linux中的Fdisk命令(创建磁盘分区)

2023-11-10

安装新的 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
如果要删除分区,请使用d命令。

通过运行以下命令保存更改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/sdb1sudo 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/audiosudo mount /dev/sdb2 /mnt/video 

分区将保持挂载状态,直到您卸载它或shutdown机器。要在 Linux 系统启动时自动挂载分区,请在/etc/fstab file.

就是这样!您现在可以使用新分区来存储文件。

结论#

fdisk是用于创建分区方案的命令行工具。欲了解更多信息fdisk命令、类型man fdisk在您的终端中。

如果您有任何问题或反馈,请随时发表评论。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux中的Fdisk命令(创建磁盘分区) 的相关文章

  • 从终端运行java类

    这个问题之前已经被问过 但由于某种原因我仍然无法弄清楚出了什么问题 我在文件 src txt 中的包语法测试中得到了一个名为 NewClass 的类 从 src 路径我输入 javac src syntaxtest NewClass jav
  • “rails server”命令在终端中不起作用

    我对 Rails 还很陌生 正在尝试设置一个非常简单的测试站点 我使用以下命令创建了新的 Rails 应用程序目录rails new命令 但无法设置服务器以在浏览器中查看页面 以下是我尝试时收到的消息rails server MacBook
  • sudo bang bang 到底是什么? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 sudo bang bang 的目的是什么 sudo 什么时候可能需要使用它 砰砰砰 命令是一个快捷方式重复您在终端中输入的上一个命令 当您忘记需要管
  • 编写脚本以使用预定义密码创建多个用户

    所以我想制作一个从运行的 users txt 创建用户的脚本 useradd m s bin false users in the users txt 并填写passwords txt中的密码两次 以确认密码 这是脚本 bin bash A
  • Bower:安装 2 个版本的 jQuery

    我将如何安装 2 个版本的 jQuery使用凉亭 我想要 v2 0 以及 1 9 1 来支持浏览器回退 我遇到的问题是如果你跑bower install jquery 1 9 1 jquery 2 0 0第一个版本被第二个版本覆盖 因为它们
  • VS Code 刷新集成终端环境变量,无需重新启动/注销

    如果您在 Windows 上添加 更改某些环境变量 例如 PATH 即使重新启动 VS Code 后 它也不会在 VS Code 集成终端中可用 但是 如果您从 Windows 命令提示符 Powershell 打开该终端 它将具有这些新的
  • VS Code 终端无法识别 PATH 变量

    我在 PATH 中添加了一个目录 但 VS Code 中的终端无法识别我尝试从该目录运行的命令 exe 终端使用 cmd 而不是 power shell 我缺少什么 重新启动我的计算机 它就工作了 显然 VS Code 无法识别这些更改
  • 在终端中访问文件“添加日期”

    在我的 Mac 上的下载文件夹中 文件有一个 添加日期 列 我正在尝试创建一个脚本来将超过 x 天的文件移至我的垃圾文件夹 以下方法有效 但它是根据创建 修改日期提取文件 而不是我从 Finder 中看到的 添加日期 有没有办法显示 使用这
  • 如何在 python 中的不同终端窗口中运行函数/线程?

    我有一个这样的程序 from threading import Thread def foo1 arg print foo1 gt gt gt Something input foo1 gt gt gt Enter Something de
  • Emacs 退出终端

    在 Emacs 中运行终端模式时使用M x term using C x C o我无法切换到另一个缓冲区来继续处理事情 我知道这是可能的M x shell但使用此命令时 shell 的某些方面不起作用 less more 手册页等 我想知道
  • 使用通配符在 .zshrc 中获取多个文件

    我通过 oh my zsh 使用 z shell 我想从 zshrc 文件中获取多个别名文件 这样我就可以让事情井井有条 我已经为别名文件添加了前缀 alias 这样我就可以通配符加载它们 但是 打电话给source alias 只加载第一
  • Windows 终端中的图标和背景图像字段无法识别父进程目录

    Windows 终端版本 1 12 10732 0 Windows 内部版本号 19043 1645 Issue 如果这个问题已经在其他地方得到解决 请原谅我 但我意识到当Use parent process directory被检查 Co
  • 编写代码以:启动 R 会话、运行 R 脚本、终止会话、重复

    我正在寻找一种简单的 设置后就忘记它 的方式 无论是作为终端中的单个参数字符串还是简单的 Java 程序 来自动执行以下操作 1 启动R会话 2 告诉 R 源 R 文件包含冗长的并行模拟代码 3 完成后终止R会话 4 开始一个新的R会话 5
  • Windows 控制台“ESC[2J”并没有真正“清除”屏幕

    我知道这类问题经常被问到 但我认为这个问题有点不同 需要被问到 新的 Windows 控制台支持 ANSI VT100 控制代码 ANSI VT100 控制代码 http www termsys demon co uk vtansi htm
  • 如何清除整个终端(PowerShell)

    我有一个问题 在powershell中使用clear或cls命令仅清除终端的可见部分 我想知道如何清除整个终端 顺便说一句 我使用 VSCode tl dr 问题是关于清零的both屏幕和回滚缓冲区 in the 综合终端 of 视觉工作室
  • 错误:GitHub 目前无法显示这么大的文件 - 但该文件只有 1.06 MB [已关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我通过两种不同的方式将 HTML 文件上传到 GitHub 存储库 拖放以及使用终端上的 Git 添加 提交 推送 在这两种情况下
  • 如何从 Linux 的 shell 中删除所有以 ._ 开头的文件?

    确实如标题所示 我已将许多文件从 Mac 复制到 Raspberry Pi 这导致了许多以前缀开头的多余文件 我想删除以以下开头的文件夹中的每个文件 我该怎么做 尝试类似的方法 cd path to directory rm rf 或者 如
  • zsh:未找到命令:使用 Big Sur Mac 的终端上的 R

    我从官方 cran 网站安装了 R 我可以从 Rstudio 运行 R 但是当我尝试从终端使用 R 时 我得到以下结果 base ege Eges MBP R zsh command not found R base ege Eges MB
  • 在 MacOS 终端上运行 ffmpeg [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我对 MacOS 相当陌生 我发现使用终端来获取信息并不容易ffmpeg和我在 Window 上一样正常运行 我有 ffmpeg 二进制文件ffmpe
  • Alt 键快捷键在使用 Vim 的 gnome 终端上不起作用

    我在 gnome 终端上运行 Vim 但 alt 键映射不起作用 例如 imap

随机推荐

  • Bash Case 语句语法和示例

    CASE 语句是 Bash 中强大的条件语句 允许您根据值列表测试变量 它是使用多个 if then 语句的更简洁 更有效的替代方案 很多时候它是一个很好的替代品if else 语句 您还可以使用它来处理命令行参数在 shell 脚本中 在
  • 在 MacOS 中设置环境变量

    环境变量是在本地计算机 运行程序的计算机 上存储值的一种方式 例如 您可以存储用于登录系统的用户 ID 您还可以使用环境变量来存储配置设置 例如数据库连接的名称 设置环境变量时 考虑安全影响非常重要 如果攻击者能够访问您的环境变量 他们就可
  • Linux 中的 Grep 命令(搜索文件中的文本)

    Grep 是一个强大的文本搜索工具 Grep 的意思是 全局正则表达式打印 基本上 Grep 在文本文件中搜索指定的正则表达式 并将包含匹配项的任何行输出到标准输出 因此Grep命令可用于在一个或多个文本文件中搜索某种文本 单词 模式或句子
  • 通过 Break 和 continue 掌握 Bash 控制流程

    Bash 是一种功能强大的脚本语言 通常用于自动化和系统管理任务 Bash 脚本中最重要的概念之一是控制流 它是指脚本根据各种条件执行不同命令的方式 Bash 中两个关键的控制流语句是 break 和 continue 它们可以帮助您控制代
  • 如何在 Ubuntu 18.04 LTS 上使用 PHP-FPM 安装 Nginx

    本教程将帮助您在 Ubuntu 18 04 Bionic LTS 系统上使用 PHP FPM FastCGI 安装 Nginx Web 服务器 在本教程中 我们使用 PHP 7 3 并使用 PHP FPM 和 FastCGI 配置 Ngin
  • 如何在 Vim 中使用交换文件恢复文件

    Vim 是一款功能强大的文本编辑器 几十年来一直是开发人员和系统管理员的首选工具 然而 强大的能力也可能带来巨大的损失 没有什么比因系统崩溃或断电而损失数小时的工作时间更令人沮丧的了 幸运的是 Vim 有一个称为交换文件的内置功能 可以帮助
  • 如何在 CentOS/RHEL 7/6 上安装和配置 HAProxy

    HAProxy is a very fast and reliable solution for high availability load balancing It supports TCP and HTTP based applica
  • 如何在 CentOS/RHEL 9/8 上设置 CakePHP

    CakePHP 是一个强大而全面的 PHP 框架 遵循 MVC 模型 视图 控制器 方法 它因其基于约定的 Web 开发方法而受到好评 该方法可以促进快速的开发周期 在本文中 我们将指导您完成在 CentOS RHEL 8 9 系统上设置
  • 如何在 Fedora 36/35/34 上安装 Atom 文本编辑器

    Atom是一个现代的开源文本或源代码编辑器 它的核心是可破解的 这意味着这个工具可以定制来执行任何操作 它适用于 OS X Linux 和 Windows 系统 本文将帮助您在 Fedora Linux 系统上安装 Atom 文本编辑器 您
  • Python 程序查找给定数字的因数

    Python 是一种多功能且功能强大的编程语言 由于其可读性和高效性 已成为初学者和专家的最爱 这种综合性语言不仅限于网络开发或数据分析 相反 它已被证明是解决数学问题的绝佳工具 此类应用之一就是求一个数的因数 今天 我们将探索如何创建一个
  • 用于 MySQL 数据库备份的 Python 脚本

    在数字世界中 数据很有价值 因此 确保数据的安全性和可用性至关重要 这就是备份发挥作用的地方 本文将介绍如何创建一个Python程序来备份MySQL数据库 对于本教程 我们将使用 mysqldump 实用程序 一个强大的工具 可以从现有数据
  • 著名港口有哪些?

    期限 知名港口 在网络领域很常见 特别是与互联网协议有关 但这到底是什么意思呢 本文将解析著名端口的概念 探讨它们的目的 功能以及使用示例 了解端口及其意义 要完全掌握知名端口的概念 我们首先要了解计算机网络中端口的基本前提 在网络中 端口
  • 通过 SMTP 服务器发送电子邮件的 Python 脚本

    以编程方式发送电子邮件是 Web 应用程序 自动报告和通知的常见要求 Python 拥有庞大的库生态系统 可以轻松创建使用简单邮件传输协议 SMTP 发送电子邮件的脚本 在本文中 我们将逐步介绍为基于 SMTP 服务器的消息传递编写 Pyt
  • 如何在 CentOS/RHEL 7 上安装 Laravel 8

    Laravel是一个开源 PHP 框架 旨在更快地使用 PHP 开发 MVC Web 应用程序 本文将帮助您在 CentOS RHEL 7 系统上安装 Laravel 8 PHP 框架 第 1 步 设置 Yum 存储库 首先 您需要在系统中
  • 基础设施即代码及其重要性

    技术领域有如此多的不同进步 跟上所有这些进步可能会成为一项相当具有挑战性的任务 这就是为什么您需要选择最重要的事情 并找出哪些技术 趋势和进步对您的生活影响最大 基础设施即代码绝对是其中之一 无论你做什么 你都需要研究这个想法 从处理云系统
  • 如何在 Debian 10 (Buster) 上安装 PHP

    PHP 7 3 是可供安装的最新稳定版本 本教程将帮助您在 Debian 系统上安装 PHP 最新版本 现在按照本教程在 Debian 10 Buster 上安装 PHP Debian 10 仍在开发中 因此本教程是使用 Debian 10
  • 每个设计师都必须了解的顶级网页设计工具

    网络开发行业是多年来由于技术进步而蓬勃发展的行业之一 技术的不断发展趋势为快速蓬勃发展并致力于比实体店更成功的企业准备了舞台 因此 如果您是其中之一 希望将自己的创意技能转化为网页设计 那么您需要设计一个具有吸引人的字体 颜色 图像和图形的
  • Linux 中的 Curl 命令及示例

    curl是一个命令行实用程序 用于从服务器传输数据或向服务器传输数据 无需用户交互即可工作 和curl 您可以使用支持的协议之一下载或上传数据 包括 HTTP HTTPS SCP SFTP and FTP curl提供了许多选项 允许您恢复
  • 如何在 Ubuntu 18.04 上安装 Gradle

    Gradle 是一种通用构建工具 主要用于 Java 项目 它结合了 Ant 的最佳功能和Maven 与使用 XML 进行脚本编写的前辈不同 Gradle 使用Groovy 一种动态的 面向对象的编程语言 用于 Java 平台定义项目和构建
  • Linux中的Fdisk命令(创建磁盘分区)

    安装新的 SSD 或硬盘后 您需要做的第一件事就是对其进行分区 驱动器至少需要有一个分区 然后才能对其进行格式化并在其上存储文件 在 Linux 中 您可以使用多种工具来创建分区 其中fdisk是最常用的一种 在这篇文章中 我们将讨论fdi