简介
在本实验中,我们将探索 Linux 的 sfdisk
命令,这是一个用于管理磁盘分区的强大工具。我们将学习如何使用 sfdisk
创建、删除和修改磁盘分区,而无需图形用户界面。我们还将介绍如何使用 sfdisk
备份和恢复分区表。本实验旨在通过实际示例和动手操作,帮助你掌握 sfdisk
命令的使用,这对于系统管理员和 Linux 爱好者来说是一项宝贵的技能。
在本实验中,我们将探索 Linux 的 sfdisk
命令,这是一个用于管理磁盘分区的强大工具。我们将学习如何使用 sfdisk
创建、删除和修改磁盘分区,而无需图形用户界面。我们还将介绍如何使用 sfdisk
备份和恢复分区表。本实验旨在通过实际示例和动手操作,帮助你掌握 sfdisk
命令的使用,这对于系统管理员和 Linux 爱好者来说是一项宝贵的技能。
在这一步中,我们将探索 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
命令对磁盘进行分区。
首先,让我们创建一个新的虚拟磁盘,以便在此示例中使用。我们将创建一个 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
命令备份和恢复分区表。
首先,让我们备份 /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 环境中管理磁盘分区打下了坚实的基础。