Linux系统 磁盘的分区与gdisk、fdisk工具详解
本文将深入探讨Linux系统中磁盘分区的概念及其重要性,并详细解析gdisk和fdisk两个常用的磁盘分区工具。首先,我们将介绍磁盘分区的基本概念,包括分区的目的、类型以及其在Linux系统中的管理方式。接着,我们将重点介绍fdisk工具,详细讲解其使用方法、参数选项以及如何在fdisk中进行磁盘分区操作。
🐇明明跟你说过:个人主页
🏅个人专栏:《Linux :从菜鸟到飞鸟的逆袭》🏅
🔖行路有良友,便是天堂🔖
目录
一、Linux的起源与发展
1991年,芬兰赫尔辛基大学的学生林纳斯·托瓦兹(Linus Torvalds)开始编写一个新的操作系统内核,这个内核最初被称为“Freax”。他的初衷只是想学习操作系统内核的开发,并为自己的个人计算机编写一个操作系统。然而,当他将这个内核发布在Internet上并开放源代码后,全球各地的程序员开始参与到这个项目中来,共同完善这个内核。最终,这个内核被命名为Linux,这个名字是由Linus Torvalds的名字和Unix操作系统的名字组合而成的。
Linux从一开始就坚持源代码的公开和免费使用,任何人都可以对其进行修改和分发。这种开放性和自由性吸引了大量的开发者和用户,使得Linux逐渐成长并成熟起来。如今,Linux已经发展成为一个性能稳定、功能强大的多用户网络操作系统,支持32位和64位硬件,能运行主要的Unix工具软件、应用程序和网络协议。同时,Linux也有上百种不同的发行版,如基于社区开发的Debian、ArchLinux,以及基于商业开发的Red Hat Enterprise Linux、SUSE、Oracle Linux等。
二、磁盘分区
1、分区的基本概念与类型
在Linux系统中,磁盘分区是将物理磁盘分割成不同的逻辑部分,每个分区可以独立地管理文件系统和数据。
- 主分区(Primary Partition):主分区是在硬盘上直接创建的分区,每个硬盘最多可以有四个主分区。主分区可以包含操作系统和数据。
- 扩展分区(Extended Partition):扩展分区是一种特殊的主分区,它可以被进一步分割成多个逻辑分区。通常,如果需要创建超过四个分区,就会使用扩展分区。
- 逻辑分区(Logical Partition):逻辑分区是在扩展分区内创建的分区,用于进一步划分磁盘空间。Linux系统中可以有多个逻辑分区,但它们必须位于同一个扩展分区内。
- 交换分区(Swap Partition):交换分区是一种特殊的分区,用于Linux系统的虚拟内存。当物理内存不足时,系统会将部分内存数据写入交换分区,以释放物理内存供其他程序使用。交换分区可以提高系统的稳定性和性能。
这些分区类型可以根据需要进行组合和调整,以满足系统的存储需求和性能要求。例如,可以将操作系统安装在主分区上,将用户数据存储在单独的逻辑分区上,同时为系统设置一个交换分区以提高性能。
2、使用fdisk查看磁盘分区情况
要使用 fdisk 命令查看磁盘分区情况,可以运行以下命令以查看系统中的磁盘列表:
fdisk -l
该命令会列出系统中所有的磁盘及其分区情况。磁盘通常以 /dev/sdX 的形式命名,其中 X 是字母,代表磁盘的标识符。
选择要查看的磁盘,并运行以下命令:
fdisk /dev/sdX
将 /dev/sdX 替换为你要查看的磁盘标识符。这将启动 fdisk 工具,并显示所选磁盘的分区情况。
在 fdisk 提示符下,可以使用 p 命令打印分区表,查看磁盘的当前分区情况。
上面是打印出的磁盘 /dev/nvme0n1 的分区情况:
- /dev/nvme0n1p1:这是一个启动分区(Boot),起始扇区编号为 2048,结束扇区编号为 2099199,大小为 1MB,文件系统类型为 Linux(Id为 83)。
- /dev/nvme0n1p2:这是一个 Linux LVM 分区,起始扇区编号为 2099200,结束扇区编号为 209715199,大小为 100GB,文件系统类型为 Linux LVM(Id为 8e)。
根据分区信息,磁盘 /dev/nvme0n1 上有两个分区,分别用于引导和 LVM(逻辑卷管理)。
3、创建新分区
我们可以按照以下步骤使用 fdisk 创建新分区:
运行 fdisk 命令并指定要分区的设备,例如 /dev/sdb。
fdisk /dev/sdb
使用 n 命令创建一个新分区。系统会询问您要创建的分区类型,通常选择主分区(Primary Partition),或者按照需要选择其他选项。
然后,系统会要求我们指定分区的起始扇区和结束扇区。我们可以根据需要输入分区的大小,或者按照默认设置直接按回车键使用整个可用空间。
使用 t 命令设置分区的文件系统类型。系统会要求我们输入文件系统类型的编号。我们可以输入 L 查看所有文件系统类型的列表,并根据需要选择相应的类型。
使用 w 命令将更改写入磁盘并退出 fdisk。
上面的示例中,我们使用 fdisk 成功地创建了一个新的主分区 /dev/sda4,大小为 20 GiB。我们首先选择了主分区选项(p),然后选择了默认的起始扇区和大小。最后,我们使用 w 命令将更改写入磁盘,使其生效。
4、删除分区
要使用 fdisk 删除分区,通常可以按照以下步骤操作:
- 使用 fdisk 打开磁盘设备:fdisk /dev/sdX,其中 sdX 是我们要操作的磁盘设备名称。
- 输入 p 查看当前分区表,找到要删除的分区的编号。
- 输入 d,然后输入要删除的分区编号。如果您要删除主分区,则可能需要选择新的主分区号码。
- 输入 w 将更改写入磁盘。
示例:
[root@test ~]# fdisk /dev/sda
Welcome to fdisk (util-linux 2.23.2).
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/sda: 20 GiB, 21474836480 bytes, 41943040 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: 0x05aae4fb
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 102604 100557 49M 83 Linux
/dev/sda2 102605 1134649 1032045 504M 82 Linux swap / Solaris
/dev/sda3 1134650 113678335 112543686 53.7G 5 Extended
/dev/sda4 113678336 209715199 96036864 45.8G 83 Linux
Command (m for help): d
Partition number (1-4, default 4):
Partition 4 has been deleted.
Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
在这个示例中,我们删除了 /dev/sda4 分区。
5、gdisk和fdisk的区别
gdisk 和 fdisk 都是用于磁盘分区的工具,但它们之间有一些区别:
支持的磁盘类型:
- fdisk:适用于 MBR(Master Boot Record)分区表的管理。
- gdisk:适用于 GPT(GUID Partition Table)分区表的管理。GPT 分区表相比于 MBR 具有更多的优点,例如支持更大的磁盘容量、更多的分区、更灵活的分区类型等。
用户界面:
- fdisk:使用纯文本界面,较为简单。
- gdisk:拥有更加友好的交互式界面,提供了更多的功能选项和信息展示。
分区类型:
- fdisk:主要用于创建主分区和逻辑分区。
- gdisk:支持创建 GPT 分区表中的主分区、逻辑分区和 EFI 分区。
支持的文件系统类型:
- fdisk 和 gdisk 都可以设置分区的类型,但它们本身并不负责文件系统的创建和格式化。文件系统的创建和格式化通常需要使用 mkfs 等其他工具完成。
安全性:
- 在处理 GPT 分区表时,gdisk 要比 fdisk 更加安全,因为它能够检测到 GPT 分区表的备份并在必要时进行恢复。
总的来说,如果要处理 GPT 分区表,或者需要更加友好和功能丰富的界面,推荐使用 gdisk。而对于传统的 MBR 分区表,则使用fdisk,二者在使用方法上基本一致。
三、使用parted进行高级分区
1、支持的分区表类型
parted 工具支持多种分区表类型,包括:
- msdos:也称为 MBR(主引导记录)分区表,适用于较旧的 BIOS 系统。
- gpt:GUID 分区表,用于较新的 UEFI BIOS 和 EFI 系统。
- bsd:用于 BSD 系统的分区表类型。
- dvh:Disklabel Versatile Header,用于 Dynamic Disk 和大容量存储设备。
- loop:用于循环设备的分区表类型。
我们可以使用 parted 命令的 mklabel 子命令来创建新的分区表类型。例如,要将磁盘 /dev/sda 的分区表类型更改为 GPT,可以执行以下命令:
parted /dev/sda mklabel gpt
2、调整分区大小
首先,使用 parted 命令打开相应的磁盘:
sudo parted /dev/sdX
(这里将 X 替换为要操作的实际磁盘字母)
然后,使用 unit 命令设置单位。例如,设置为 GB:
unit GB
使用 print 命令查看当前的分区信息,找到要调整大小的分区号。
使用 resizepart 命令调整分区大小。例如,要调整第一个分区的大小:
resizepart 1 50GB
最后,使用 quit 命令退出 parted。
※请注意,在调整分区大小之前,请务必备份重要数据,因为分区大小调整可能导致数据丢失。
💕💕💕每一次的分享都是一次成长的旅程,感谢您的陪伴和关注。希望这些关于Linux的文章能陪伴您走过技术的一段旅程,共同见证成长和进步!😺😺😺
🧨🧨🧨让我们一起在技术的海洋中探索前行,共同书写美好的未来!!!
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)