Linux 磁盘分区工具 gdisk / fdisk

2024-05-11 03:44

本文主要是介绍Linux 磁盘分区工具 gdisk / fdisk,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

fdisk 是传统的 Linux 磁盘分区工具,磁盘容量有2T的大小限制;gdisk 又叫 GPT fdisk, 作为 fdisk 的升级版,主要使用的是GPT分区类型,用来划分容量大于2T的硬盘,本文介绍使用方法。

简介
  • 早期的磁盘使用 fdisk 工具分区,fdisk只能用于MBR分区,最大限制磁盘容量 2T;
  • gdisk 又叫 GPT fdisk,是fdisk的升级版,主要使用的是GPT分区类型,用来划分容量大于2T的硬盘。
  • 二者在使用上基本 相同。
磁盘分区

将磁盘划分为若干个区块操作为磁盘分区,在各个操作系统中都有类似的内容,分区会为硬盘管理带来一些好处:

  • 从硬盘管理上看,分区有利于用户使用和便于文件目录管理,使整个硬盘中的内容有条有理
  • 从数据安全上来看,硬盘分区将提高数据的安全性,不会因为某个逻辑硬盘分区出现问题而影响到其他逻辑硬盘分区上的数据。
GPT 与 MBR
  • 分区类型GPT和MBR。GPT最大支持18EB(1EB=1024PB,1PB=1024TB),MBR最大支持2TB。
  • GPT,全局唯一标识分区表(GUID Partition Table),它使用128位GUID来唯一标识每个磁盘和分区。与MBR存在单一故障点不同,GPT提供分区表信息的冗余,一个在磁盘头部,一个在磁盘尾部;它通过CRC校验来检测GPT头和分区表中错误与损坏。默认一个硬盘支持128个分区(可以更多)。
使用方法
安装 gdisk
  • 目前Linux 发行版一般会自带 gdisk,如果没有该命令可以手动安装

# Debian
sudo apt install gdisk
# Redhat
yum install gdisk -y

选定分区
  • 使用 gdisk 之前需要指定某块磁盘设备,进入设备操作状态

sudo gdisk [device]

例如:

$ sudo gdisk /dev/sda
GPT fdisk (gdisk) version 1.0.5Problem opening /dev/sda for reading! Error is 13.
You must run this program as root or use sudo!
vvd@vvd-desktop:~$ sudo gdisk /dev/sda
GPT fdisk (gdisk) version 1.0.5Partition table scan:MBR: protectiveBSD: not presentAPM: not presentGPT: presentFound valid GPT with protective MBR; using GPT.Command (? for help): 

  • 查看当前有哪些磁盘设备可以使用 lsblk 命令
可用命令
  • 进入设备操作状态后可以输入 ? 查询帮助文档

Command (? for help): ?
b	back up GPT data to a file
c	change a partition's name
d	delete a partition
i	show detailed information on a partition
l	list known partition types
n	add a new partition
o	create a new empty GUID partition table (GPT)
p	print the partition table
q	quit without saving changes
r	recovery and transformation options (experts only)
s	sort partitions
t	change a partition's type code
v	verify disk
w	write table to disk and exit
x	extra functionality (experts only)
?	print this menu

  • 总结一下:

命令

含义

b

将GPT数据备份到一个文件

c

更改分区名称

d

删除一个分区

i

显示分区详细信息

l

列出已知分区类型。此处8200是Linux swap,8300是Linux filesystem(对应fdisk的82和83)。还有一个8e00是Linux LVM

n

增加一个新的分区

o

创建一个新的空白的GPT分区表

p

显示当前磁盘的分区表

q

退出gdisk程序,不保存任何修改

r

恢复和转换选项(仅限专家)

s

排序分区

t

改变分区的类型

v

验证磁盘分区表

w

将分区表写入裁判并退出(保存并退出)

x

额外功能(仅限专家)

?

显示帮助信息

可选分区类型

磁盘编辑状态下,使用命令 l

Command (? for help): l
Type search string, or <Enter> to show all codes: 
0700 Microsoft basic data                0c01 Microsoft reserved                
2700 Windows RE                          3000 ONIE boot                         
3001 ONIE config                         3900 Plan 9                            
4100 PowerPC PReP boot                   4200 Windows LDM data                  
4201 Windows LDM metadata                4202 Windows Storage Spaces            
7501 IBM GPFS                            7f00 ChromeOS kernel                   
7f01 ChromeOS root                       7f02 ChromeOS reserved                 
8200 Linux swap                          8300 Linux filesystem                  
8301 Linux reserved                      8302 Linux /home                       
8303 Linux x86 root (/)                  8304 Linux x86-64 root (/)             
8305 Linux ARM64 root (/)                8306 Linux /srv                        
8307 Linux ARM32 root (/)                8308 Linux dm-crypt                    
8309 Linux LUKS                          830a Linux IA-64 root (/)              
830b Linux x86 root verity               830c Linux x86-64 root verity          
830d Linux ARM32 root verity             830e Linux ARM64 root verity           
830f Linux IA-64 root verity             8310 Linux /var                        
8311 Linux /var/tmp                      8400 Intel Rapid Start                 
8500 Container Linux /usr                8501 Container Linux resizable rootfs  
8502 Container Linux /OEM customization  8503 Container Linux root on RAID      
8e00 Linux LVM                           a000 Android bootloader                
a001 Android bootloader 2                a002 Android boot 1 

类型特别多,还有好几页,这里就不列出了 默认类型 8300

增加分区
  • 磁盘编辑状态下,使用命令 n

Command (? for help): n
Partition number (1-128, default 1): 
First sector (34-11721045134, default = 2048) or {+-}size{KMGTP}: 
Last sector (2048-11721045134, default = 11721045134) or {+-}size{KMGTP}: +500G
Current type is 8300 (Linux filesystem)
Hex code or GUID (L to show codes, Enter = 8300): 
Changed type of partition to 'Linux filesystem'
  • 需要依次输入分区编号(建议使用默认). 起始扇区. 终止扇区. 磁盘类型
  • 其中 +500G 表明当前分区大小 500 G,可以使用的单位为 K\M\G(T是不能用的),如果不填或填错会默认使用所有剩余空间
查看当前分区表
  • 使用命令 p 可以查看当前正在编辑的分区表
  • 在我们保存分区表之前,改表并没有真正生效,但是可以查看修改


Command (? for help): p
Disk /dev/sda: 11721045168 sectors, 5.5 TiB
Model: ST6000NM0115-2R7
Sector size (logical/physical): 512/4096 bytes
Disk identifier (GUID): DA785A85-79D2-4AD1-911E-F169800B803A
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 11721045134
Partitions will be aligned on 2048-sector boundaries
Total free space is 2014 sectors (1007.0 KiB)Number  Start (sector)    End (sector)  Size       Code  Name1            2048      1048578047   500.0 GiB   8300  Linux filesystem2      1048578048      3145730047   1000.0 GiB  8300  Linux filesystem3      3145730048      6291458047   1.5 TiB     8300  Linux filesystem4      6291458048     11721045134   2.5 TiB     8300  Linux filesystem

这里我们生成了4个分区表

删除分区表
  • 删除命令为 d

Command (? for help): d
Partition number (1-4): 4
  • 删除刚刚创建的第四个分区表
  • 再次查看


Command (? for help): p
Disk /dev/sda: 11721045168 sectors, 5.5 TiB
Model: ST6000NM0115-2R7
Sector size (logical/physical): 512/4096 bytes
Disk identifier (GUID): DA785A85-79D2-4AD1-911E-F169800B803A
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 11721045134
Partitions will be aligned on 2048-sector boundaries
Total free space is 5429589101 sectors (2.5 TiB)Number  Start (sector)    End (sector)  Size       Code  Name1            2048      1048578047   500.0 GiB   8300  Linux filesystem2      1048578048      3145730047   1000.0 GiB  8300  Linux filesystem3      3145730048      6291458047   1.5 TiB     8300  Linux filesystem
  • 可以看到第四个分区确实删除了
修改分区名称
  • 命令为 c

Command (? for help): c
Partition number (1-4): 4
Enter name: DATA_I_XL

  • 将四个分区改了名称后

Command (? for help): p
Disk /dev/sda: 11721045168 sectors, 5.5 TiB
Model: ST6000NM0115-2R7
Sector size (logical/physical): 512/4096 bytes
Disk identifier (GUID): DA785A85-79D2-4AD1-911E-F169800B803A
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 11721045134
Partitions will be aligned on 2048-sector boundaries
Total free space is 2014 sectors (1007.0 KiB)Number  Start (sector)    End (sector)  Size       Code  Name1            2048      1048578047   500.0 GiB   8300  DATA_I_S2      1048578048      3145730047   1000.0 GiB  8300  DATA_I_M3      3145730048      6291458047   1.5 TiB     8300  DATA_I_L4      6291458048     11721045134   2.5 TiB     8300  DATA_I_XL

退出编辑状态
  • 命令 q 表示不保存本次修改的分区表,退出编辑状态
  • 命令 w 表示保存本次分区表编辑情况,退出编辑状态

Command (? for help): wFinal checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!Do you want to proceed? (Y/N): Y
OK; writing new GUID partition table (GPT) to /dev/sda.
The operation has completed successfully.
  • 此时使用 lsblk 命令查看 /dev/sda

$ lsblk
NAME                  MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda                     8:0    0   5.5T  0 disk 
├─sda1                  8:1    0   500G  0 part 
├─sda2                  8:2    0  1000G  0 part 
├─sda3                  8:3    0   1.5T  0 part 
└─sda4                  8:4    0   2.5T  0 part 
sdb                     8:16   0   5.5T  0 disk 

可以看到我们分的四个分区保存了下来,至此我们磁盘分区已经完成

之后对磁盘进行格式化. 挂载即可正常使用。

设置文件系统
  • 在磁盘分区后得到了几块指定空间的磁盘空间
  • 之后需要为每块空间分配文件系统
  • 命令一般使用:

mkfs.<file_system> <device>

在命令行 mkfs. 下按 TAB 可以看到相关命令

$ mkfs.
mkfs.bfs  mkfs.cramfs  mkfs.ext2  mkfs.ext3  mkfs.ext4  mkfs.fat  mkfs.minix  mkfs.msdos  mkfs.ntfs  mkfs.vfat  mkfs.xfs 

示例:为 /dev/sda1 分区配置 XFS 文件系统:

sudo mkfs.xfs /dev/sda1
查看修改

Ubuntu 可以在图形界面的磁盘管理看到修改内容

  • 进入磁盘管理

  • 查看分区个数、大小、名称、文件系统

  • 也可以使用

blkid -p <device>

命令查看分区详细信息

总结分区流程
  1. 关机添加磁盘
  2. 开始分区 fdisk /dev/sda / gdisk /dev/sda
  3. n添加分区默认p主分区直接回车
  4. 可以分区的序号 默认1 直接回车
  5. 起始位大小默认直接回车
  6. 终止位大小 + 多少(K. M. G)回车
  7. w写入分区并退出
  8. 创建 XFS 文件系统mkfs.xfs /dev/sda1
  9. 挂载 mount /dev/sda1 /opt
  10. 查看挂载是否成功 df -h
参考资料
  • https://www.cnblogs.com/diantong/p/10489553.html
  • http://ipcmen.com/gdisk
  • https://zhuanlan.zhihu.com/p/448403378
  • https://m.iask.sina.com.cn/b/iRLJ70FHLOqh.html?ivk_sa=1024320u

这篇关于Linux 磁盘分区工具 gdisk / fdisk的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/978409

相关文章

linux-基础知识3

打包和压缩 zip 安装zip软件包 yum -y install zip unzip 压缩打包命令: zip -q -r -d -u 压缩包文件名 目录和文件名列表 -q:不显示命令执行过程-r:递归处理,打包各级子目录和文件-u:把文件增加/替换到压缩包中-d:从压缩包中删除指定的文件 解压:unzip 压缩包名 打包文件 把压缩包从服务器下载到本地 把压缩包上传到服务器(zip

高效录音转文字:2024年四大工具精选!

在快节奏的工作生活中,能够快速将录音转换成文字是一项非常实用的能力。特别是在需要记录会议纪要、讲座内容或者是采访素材的时候,一款优秀的在线录音转文字工具能派上大用场。以下推荐几个好用的录音转文字工具! 365在线转文字 直达链接:https://www.pdf365.cn/ 365在线转文字是一款提供在线录音转文字服务的工具,它以其高效、便捷的特点受到用户的青睐。用户无需下载安装任何软件,只

Linux 网络编程 --- 应用层

一、自定义协议和序列化反序列化 代码: 序列化反序列化实现网络版本计算器 二、HTTP协议 1、谈两个简单的预备知识 https://www.baidu.com/ --- 域名 --- 域名解析 --- IP地址 http的端口号为80端口,https的端口号为443 url为统一资源定位符。CSDNhttps://mp.csdn.net/mp_blog/creation/editor

【Python编程】Linux创建虚拟环境并配置与notebook相连接

1.创建 使用 venv 创建虚拟环境。例如,在当前目录下创建一个名为 myenv 的虚拟环境: python3 -m venv myenv 2.激活 激活虚拟环境使其成为当前终端会话的活动环境。运行: source myenv/bin/activate 3.与notebook连接 在虚拟环境中,使用 pip 安装 Jupyter 和 ipykernel: pip instal

Linux_kernel驱动开发11

一、改回nfs方式挂载根文件系统         在产品将要上线之前,需要制作不同类型格式的根文件系统         在产品研发阶段,我们还是需要使用nfs的方式挂载根文件系统         优点:可以直接在上位机中修改文件系统内容,延长EMMC的寿命         【1】重启上位机nfs服务         sudo service nfs-kernel-server resta

【Linux 从基础到进阶】Ansible自动化运维工具使用

Ansible自动化运维工具使用 Ansible 是一款开源的自动化运维工具,采用无代理架构(agentless),基于 SSH 连接进行管理,具有简单易用、灵活强大、可扩展性高等特点。它广泛用于服务器管理、应用部署、配置管理等任务。本文将介绍 Ansible 的安装、基本使用方法及一些实际运维场景中的应用,旨在帮助运维人员快速上手并熟练运用 Ansible。 1. Ansible的核心概念

Linux服务器Java启动脚本

Linux服务器Java启动脚本 1、初版2、优化版本3、常用脚本仓库 本文章介绍了如何在Linux服务器上执行Java并启动jar包, 通常我们会使用nohup直接启动,但是还是需要手动停止然后再次启动, 那如何更优雅的在服务器上启动jar包呢,让我们一起探讨一下吧。 1、初版 第一个版本是常用的做法,直接使用nohup后台启动jar包, 并将日志输出到当前文件夹n

[Linux]:进程(下)

✨✨ 欢迎大家来到贝蒂大讲堂✨✨ 🎈🎈养成好习惯,先赞后看哦~🎈🎈 所属专栏:Linux学习 贝蒂的主页:Betty’s blog 1. 进程终止 1.1 进程退出的场景 进程退出只有以下三种情况: 代码运行完毕,结果正确。代码运行完毕,结果不正确。代码异常终止(进程崩溃)。 1.2 进程退出码 在编程中,我们通常认为main函数是代码的入口,但实际上它只是用户级

【Linux】应用层http协议

一、HTTP协议 1.1 简要介绍一下HTTP        我们在网络的应用层中可以自己定义协议,但是,已经有大佬定义了一些现成的,非常好用的应用层协议,供我们直接使用,HTTP(超文本传输协议)就是其中之一。        在互联网世界中,HTTP(超文本传输协议)是一个至关重要的协议,他定义了客户端(如浏览器)与服务器之间如何进行通信,以交换或者传输超文本(比如HTML文档)。