【Linux 之五】 Linux中使用fdisk命令实现磁盘分区

news/2025/1/13 8:07:38/

  最近由于工作的需要,初步研究了uboot中的fastboot实现方式。研究fastboot不可避免的需要了解磁盘分区的相关知识点,在linux下可以使用fdisk命令实现磁盘的分区。好了,下面步入正题。

1. 查看帮助信息(fdisk --help)

linux@linux-System-Product-Name:~$ fdisk --helpUsage:fdisk [options] <disk>      change partition tablefdisk [options] -l [<disk>] list partition table(s)Display or manipulate a disk partition table.Options:-b, --sector-size <size>      physical and logical sector size-B, --protect-boot            don't erase bootbits when creating a new label-c, --compatibility[=<mode>]  mode is 'dos' or 'nondos' (default)-L, --color[=<when>]          colorize output (auto, always or never)colors are enabled by default-l, --list                    display partitions and exit-o, --output <list>           output columns-t, --type <type>             recognize specified partition table type only
......

2. 查看磁盘分区

  通过命令 sudo fdisk -l可以查看磁盘的详细分区情况,如下所示,我电脑目前存在两个磁盘:分别为sda和sdb(其中sda即为240G的固态硬盘,为系统盘,而sdb则为一个容量为16G的SD卡)。

linux@linux-System-Product-Name:~$ sudo fdisk -l
[sudo] password for linux:
Disk /dev/sda: 232.9 GiB, 250059350016 bytes, 488397168 sectors
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: DE19ADF1-DDE6-4899-BC1B-C6B608AD5C31Device       Start       End   Sectors   Size Type
/dev/sda1     2048   1050623   1048576   512M EFI System
/dev/sda2  1050624 488396799 487346176 232.4G Linux filesystemDisk /dev/sdb: 14.6 GiB, 15646851072 bytes, 30560256 sectors
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: 0x9b9208deDevice     Boot Start     End Sectors Size Id Type
/dev/sdb1        2048 2099199 2097152   1G 83 Linux
linux@linux-System-Product-Name:~$

以sdb为例进行详细的说明如下:

  1. 磁盘容量为14.6GiB, 合计共15646851072 字节,每个“扇区”的大小为512字节,总共30560256个扇区;
  2. 扇区的大小(物理 / 逻辑):512字节 / 512字节
  3. I / O大小(最小值 / 典型值):512字节 / 512字节
  4. 磁盘标签类型:dos (sda的磁盘标签类型为gpt)
  5. 磁盘标识符:0x9b9208de
  6. 该磁盘共分了一个“分区”,分区名称为sdb1, 该分区的起始扇区号为2048, 结束扇区号为2099199,共2097152个扇区(sector),大小为1GiB, 分区ID为0x83(linux native分区),类型为Linux

3. 磁盘分区

需求举例:

  1. 将sdb磁盘分为4个区,其中1,2,3分区为主分区,4分区为扩展分区;
  2. 分区1的大小为512M字节, 分区2的大小为2G字节,分区3的大小为4G字节,分区4的大小为剩余的磁盘空间;
  3. 创建DOS类型的分区表(MBR)

步骤1:执行命令 sudo fdisk /dev/sdb,输入 m 获取帮助信息,如下:

linux@linux-System-Product-Name:~$ sudo fdisk /dev/sdbWelcome to fdisk (util-linux 2.31.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.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):

步骤2:输入 p,查看磁盘当前的分区表

Command (m for help): p
Disk /dev/sdb: 14.6 GiB, 15646851072 bytes, 30560256 sectors
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: 0x9b9208deDevice     Boot Start     End Sectors Size Id Type
/dev/sdb1        2048 2099199 2097152   1G 83 Linux

当前磁盘共分了一个“分区”,分区名称为sdb1, 该分区的起始扇区号为2048, 结束扇区号为2099199,共2097152个扇区(sector),大小为1GiB, 分区ID为0x83(linux native分区),类型为Linux

步骤3:输入 o,创建一个新的GPT分区表

Command (m for help): oCreated a new DOS disklabel with disk identifier 0x6ade9f76.
The old dos signature will be removed by a write command.

步骤4:输入 n,添加一个新的分区(添加我们的第1个分区,大小为512M)

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-30560255, default 2048): // 直接按“回车”即可
Last sector, +sectors or +size{K,M,G,T,P} (2048-30560255, default 30560255): +512M // 分配的空间大小为512MCreated a new partition 1 of type 'Linux' and of size 512 MiB.Command (m for help): p // 查询分区表
Disk /dev/sdb: 14.6 GiB, 15646851072 bytes, 30560256 sectors
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: 0x6ade9f76Device     Boot Start     End Sectors  Size Id Type
/dev/sdb1        2048 1050623 1048576  512M 83 Linux

步骤5:输入 n,依次添加2,3,4分区

Command (m for help): n
Partition typep   primary (1 primary, 0 extended, 3 free)e   extended (container for logical partitions)
Select (default p): p
Partition number (2-4, default 2):	// 创建第2个分区
First sector (1050624-30560255, default 1050624):
Last sector, +sectors or +size{K,M,G,T,P} (1050624-30560255, default 30560255): +2G // 分区大小为2GCreated a new partition 2 of type 'Linux' and of size 2 GiB.Command (m for help): n
Partition typep   primary (2 primary, 0 extended, 2 free)e   extended (container for logical partitions)
Select (default p): p
Partition number (3,4, default 3): // 创建第3个分区
First sector (5244928-30560255, default 5244928):
Last sector, +sectors or +size{K,M,G,T,P} (5244928-30560255, default 30560255): +4G // 分区大小为4GCreated a new partition 3 of type 'Linux' and of size 4 GiB.Command (m for help): n
Partition typep   primary (3 primary, 0 extended, 1 free)e   extended (container for logical partitions)
Select (default e): e // 创建扩展分区Selected partition 4	// 创建第3个分区,MBR最多只能创建4个分区
First sector (13633536-30560255, default 13633536):
Last sector, +sectors or +size{K,M,G,T,P} (13633536-30560255, default 30560255):Created a new partition 4 of type 'Extended' and of size 8.1 GiB. // 分区大小为“磁盘剩余空间”Command (m for help): p
Disk /dev/sdb: 14.6 GiB, 15646851072 bytes, 30560256 sectors
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: 0x6ade9f76Device     Boot    Start      End  Sectors  Size Id Type
/dev/sdb1           2048  1050623  1048576  512M 83 Linux
/dev/sdb2        1050624  5244927  4194304    2G 83 Linux
/dev/sdb3        5244928 13633535  8388608    4G 83 Linux
/dev/sdb4       13633536 30560255 16926720  8.1G  5 Extended

步骤6:输入 w,将分区表写入磁盘,至此磁盘分区完成。

Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
linux@linux-System-Product-Name:~$  // 退出了磁盘的命令模式

步骤7:再次确认“磁盘分区表”是否真正的写入磁盘

linux@linux-System-Product-Name:~$ sudo fdisk /dev/sdb
[sudo] password for linux:Welcome to fdisk (util-linux 2.31.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.Command (m for help): p
Disk /dev/sdb: 14.6 GiB, 15646851072 bytes, 30560256 sectors
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: 0x6ade9f76Device     Boot    Start      End  Sectors  Size Id Type
/dev/sdb1           2048  1050623  1048576  512M 83 Linux
/dev/sdb2        1050624  5244927  4194304    2G 83 Linux
/dev/sdb3        5244928 13633535  8388608    4G 83 Linux
/dev/sdb4       13633536 30560255 16926720  8.1G  5 ExtendedCommand (m for help):

如上,与我们预期的是一致的,磁盘分区成功。

4. 其它命令

首先执行命令:sudo fdisk /dev/sdb

4.1 更改分区类型

将分区1的类型由“Linux”改为“W95 FAT32 (LBA)”。
在这里插入图片描述


http://www.ppmy.cn/news/72500.html

相关文章

浅谈Java中的NAN与INFINITY:数值迷失与无限可能

在Java中&#xff0c;NAN&#xff08;Not-a-Number&#xff09;和INFINITY&#xff08;无穷大&#xff09;是浮点数类型&#xff08;float和double&#xff09;的特殊值&#xff0c;用于表示特定的数值情况。以下是关于NAN和INFINITY的详细解释和示例代码&#xff1a; 1、NAN …

基于Zynq的雷达10Gbps高速PCIE数据采集卡方案(三)软件设计

4.1 引言 本章基于第二章的分析结论&#xff0c;进行系统软件设计。软件设计包括逻辑设计、嵌入 式软件设计和上位机软件设计。在逻辑设计中&#xff0c;对 ADC 模块、 Aurora 模块、 DDR3 SDRAM 模块和 PCIE 模块进行分析和设计&#xff0c;在 Vivado 软件提供的 …

yolov2

yolov2相对于yolov1的改进&#xff1a; 1、加入Batch Normalization 2、yolov2使用更大的分辨率图片 V1训练使用图片分辨率为224*224&#xff0c;测试图片分辨率为448*448。 V2在V1上的改进为&#xff1a;V2训练时额外又进行了10次448*448的微调。 3、yolov2的网络结构 相…

基于html+css的图展示80

准备项目 项目开发工具 Visual Studio Code 1.44.2 版本: 1.44.2 提交: ff915844119ce9485abfe8aa9076ec76b5300ddd 日期: 2020-04-16T16:36:23.138Z Electron: 7.1.11 Chrome: 78.0.3904.130 Node.js: 12.8.1 V8: 7.8.279.23-electron.0 OS: Windows_NT x64 10.0.19044 项目…

使用Docker Dockerfile构建php LNMP集成开发环境,并运行Thinkphp5

宿主机环境 系统&#xff1a;MAC、Windows10 Docker版本&#xff1a;Docker version 23.0.5 Docker Desktop:Dockerdesktop官方地址 前言 这篇主要介绍如何在Mac、Windows10使用docker搭建LNMP集成开发环境。下面我会写Dockerfile编译安装Nginxphp基础环境。mysql、redis基…

【信息安全案例】——信息内容安全(学习笔记)

&#x1f4d6; 前言&#xff1a;在数字化时代&#xff0c;信息内容安全问题越来越引起人们的关注。信息内容安全主要包括对数据的机密性、完整性和可用性的保护&#xff0c;以及对用户隐私的保护等方面。针对信息内容安全的威胁&#xff0c;采取科学有效的安全措施和技术手段至…

汽车智能化带来的安全新挑战及其应对思路

智能汽车的安全挑战 挑战1&#xff1a;域控架构/集成式EE架构的复杂度 功能安全开发所有的开发活动中&#xff0c;都要求尽最大可能降低功能和系统的复杂度&#xff0c;复杂度的上升&#xff0c;对于安全实现的难度而言&#xff0c;是指数级上升的。然而域控架构和集中式EE架构…

Xpack-Watchers基本语法与使用

一、Xpack-Watchs基本简介&#xff1a; Elasticsearch 提供了数据的存储及快速的搜索&#xff0c;而其中的 Watcher 功能可以实时地根据一些条件来发送警报。与 Elasticsearch 的使用一样&#xff0c;可以通过 Resfulapi 调用创建、管理、更新预警任务。 查看 watcher 插件是…