Linux sfdisk 命令实战示例

LinuxLinuxBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

在本实验中,我们将探索 Linux 的 sfdisk 命令,这是一个用于管理磁盘分区的强大工具。我们将学习如何使用 sfdisk 创建、删除和修改磁盘分区,而无需图形用户界面。我们还将介绍如何使用 sfdisk 备份和恢复分区表。本实验旨在通过实际示例和动手操作,帮助你掌握 sfdisk 命令的使用,这对于系统管理员和 Linux 爱好者来说是一项宝贵的技能。

Linux 命令速查表


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/SystemInformationandMonitoringGroup(["System Information and Monitoring"]) linux/BasicFileOperationsGroup -.-> linux/ls("Content Listing") linux/SystemInformationandMonitoringGroup -.-> linux/dd("File Converting/Copying") subgraph Lab Skills linux/ls -.-> lab-422914{{"Linux sfdisk 命令实战示例"}} linux/dd -.-> lab-422914{{"Linux sfdisk 命令实战示例"}} end

sfdisk 命令简介

在这一步中,我们将探索 sfdisk 命令,这是一个用于在 Linux 中管理磁盘分区的强大工具。sfdisk 命令允许你创建、删除和修改磁盘分区,而无需图形用户界面。

首先,让我们检查系统中安装的 sfdisk 版本:

sfdisk --version

示例输出:

sfdisk from util-linux 2.38

接下来,我们可以使用 sfdisk 命令列出磁盘上的当前分区。假设我们有一个磁盘位于 /dev/sdb

sudo sfdisk -l /dev/sdb

示例输出:

Disk /dev/sdb: 20 GiB, 21474836480 bytes, 41943040 sectors
Disk model: Virtual disk
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: 0x00000000

Device     Boot Start      End  Sectors  Size Id Type
/dev/sdb1        2048 41943039 41940992   20G 83 Linux

此命令显示了 /dev/sdb 磁盘的分区表,包括起始和结束扇区、大小以及分区类型。

在下一步中,我们将学习如何使用 sfdisk 命令对磁盘进行分区。

使用 sfdisk 对磁盘进行分区

在这一步中,我们将学习如何使用 sfdisk 命令对磁盘进行分区。

首先,让我们创建一个新的虚拟磁盘,以便在此示例中使用。我们将创建一个 20 GB 的磁盘并将其附加到我们的 Ubuntu 容器中:

sudo fallocate -l 20G /tmp/disk.img
sudo losetup /dev/loop0 /tmp/disk.img

现在,我们可以使用 sfdisk/dev/loop0 磁盘上创建一个新的分区表:

sudo sfdisk /dev/loop0 << EOF
label: dos
unit: sectors

/dev/loop0p1 : start=2048, size=20971520, type=83
EOF

此命令创建了一个新的 DOS 风格分区表,其中包含一个占用整个磁盘的 Linux 分区。

让我们验证新的分区表:

sudo sfdisk -l /dev/loop0

示例输出:

Disk /dev/loop0: 20 GiB, 21474836480 bytes, 41943040 sectors
Disk model:
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: 0x6d7f3a26

Device        Boot Start      End  Sectors  Size Id Type
/dev/loop0p1         2048 41943039 41940992   20G 83 Linux

输出显示我们已成功在 /dev/loop0 磁盘上创建了一个新的 20 GB Linux 分区。

在下一步中,我们将学习如何使用 sfdisk 命令备份和恢复分区表。

使用 sfdisk 备份和恢复分区表

在这最后一步中,我们将学习如何使用 sfdisk 命令备份和恢复分区表。

首先,让我们备份 /dev/loop0 磁盘的分区表:

sudo sfdisk -d /dev/loop0 > partition_backup.txt

此命令创建一个名为 partition_backup.txt 的文本文件,其中包含当前分区表的配置。

现在,让我们模拟一个需要恢复分区表的场景。我们可以通过首先删除现有分区来实现这一点:

sudo sfdisk -d /dev/loop0 | sudo sfdisk --force /dev/loop0 -X

此命令删除 /dev/loop0 磁盘上的现有分区。

要恢复分区表,我们可以使用之前创建的备份文件:

sudo sfdisk /dev/loop0 < partition_backup.txt

此命令从 partition_backup.txt 文件中读取分区表配置,并将其应用到 /dev/loop0 磁盘。

让我们验证分区表是否已恢复:

sudo sfdisk -l /dev/loop0

示例输出:

Disk /dev/loop0: 20 GiB, 21474836480 bytes, 41943040 sectors
Disk model:
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: 0x6d7f3a26

Device        Boot Start      End  Sectors  Size Id Type
/dev/loop0p1         2048 41943039 41940992   20G 83 Linux

输出显示分区表已成功恢复。

恭喜!你现在已经学会了如何使用 sfdisk 命令在 Linux 中对磁盘进行分区以及备份和恢复分区表。

总结

在本实验中,你学习了如何使用 sfdisk 命令,这是一个在 Linux 中管理磁盘分区的强大工具。你探索了 sfdisk 的基本用法,包括检查版本、列出当前分区以及在磁盘上创建新的分区表。你还学习了如何创建一个新的 DOS 风格分区表,其中包含一个占用整个磁盘的 Linux 分区。通过动手操作 sfdisk,你为在 Linux 环境中管理磁盘分区打下了坚实的基础。

Linux 命令速查表