Lệnh sfdisk trong Linux

Giới thiệu

Trong lab này, chúng ta sẽ khám phá lệnh sfdisk của Linux, một công cụ mạnh mẽ để quản lý phân vùng đĩa. Chúng ta sẽ học cách sử dụng sfdisk để tạo, xóa và sửa đổi các phân vùng đĩa mà không cần giao diện người dùng đồ họa. Chúng ta cũng sẽ tìm hiểu cách sao lưu và khôi phục bảng phân vùng bằng sfdisk. Lab này được thiết kế để cung cấp các ví dụ thực tế và kinh nghiệm thực hành với lệnh sfdisk, đây là một kỹ năng có giá trị cho các systemadmin và những người đam mê Linux.

Giới thiệu về lệnh sfdisk

Trong bước này, chúng ta sẽ khám phá lệnh sfdisk, một công cụ mạnh mẽ để quản lý phân vùng đĩa trong Linux. Lệnh sfdisk cho phép bạn tạo, xóa và sửa đổi các phân vùng đĩa mà không cần giao diện người dùng đồ họa.

Đầu tiên, hãy kiểm tra phiên bản sfdisk được cài đặt trên hệ thống của chúng ta:

sfdisk --version

Ví dụ đầu ra:

sfdisk from util-linux 2.38

Tiếp theo, chúng ta có thể sử dụng lệnh sfdisk để liệt kê các phân vùng hiện tại trên một đĩa. Giả sử chúng ta có một đĩa tại /dev/sdb:

sudo sfdisk -l /dev/sdb

Ví dụ đầu ra:

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

Lệnh này hiển thị bảng phân vùng cho đĩa /dev/sdb, bao gồm các sector bắt đầu và kết thúc, kích thước và loại phân vùng.

Trong bước tiếp theo, chúng ta sẽ học cách phân vùng một đĩa bằng lệnh sfdisk.

Phân vùng đĩa với sfdisk

Trong bước này, chúng ta sẽ học cách sử dụng lệnh sfdisk để phân vùng một đĩa.

Đầu tiên, hãy tạo một đĩa ảo mới mà chúng ta có thể sử dụng cho ví dụ này. Chúng ta sẽ tạo một đĩa 20 GB và gắn nó vào container Ubuntu của chúng ta:

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

Bây giờ, chúng ta có thể sử dụng sfdisk để tạo một bảng phân vùng mới trên đĩa /dev/loop0:

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

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

Lệnh này tạo một bảng phân vùng kiểu DOS mới với một phân vùng Linux duy nhất chiếm toàn bộ đĩa.

Hãy xác minh bảng phân vùng mới:

sudo sfdisk -l /dev/loop0

Ví dụ đầu ra:

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

Đầu ra cho thấy rằng chúng ta đã tạo thành công một phân vùng Linux 20 GB mới trên đĩa /dev/loop0.

Trong bước tiếp theo, chúng ta sẽ học cách sao lưu và khôi phục bảng phân vùng bằng lệnh sfdisk.

Sao lưu và khôi phục bảng phân vùng với sfdisk

Trong bước cuối cùng này, chúng ta sẽ học cách sao lưu và khôi phục bảng phân vùng bằng lệnh sfdisk.

Đầu tiên, hãy sao lưu bảng phân vùng của đĩa /dev/loop0:

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

Lệnh này tạo một tệp văn bản có tên partition_backup.txt chứa cấu hình bảng phân vùng hiện tại.

Bây giờ, hãy mô phỏng một tình huống mà chúng ta cần khôi phục bảng phân vùng. Chúng ta có thể làm điều này bằng cách xóa phân vùng hiện có trước:

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

Lệnh này xóa phân vùng hiện có trên đĩa /dev/loop0.

Để khôi phục bảng phân vùng, chúng ta có thể sử dụng tệp sao lưu mà chúng ta đã tạo trước đó:

sudo sfdisk /dev/loop0 < partition_backup.txt

Lệnh này đọc cấu hình bảng phân vùng từ tệp partition_backup.txt và áp dụng nó vào đĩa /dev/loop0.

Hãy xác minh rằng bảng phân vùng đã được khôi phục:

sudo sfdisk -l /dev/loop0

Ví dụ đầu ra:

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

Đầu ra cho thấy rằng bảng phân vùng đã được khôi phục thành công.

Chúc mừng! Bây giờ bạn đã học cách sử dụng lệnh sfdisk để phân vùng đĩa và sao lưu/khôi phục bảng phân vùng trong Linux.

Tóm tắt

Trong lab này, bạn đã học cách sử dụng lệnh sfdisk, một công cụ mạnh mẽ để quản lý phân vùng đĩa trong Linux. Bạn đã khám phá cách sử dụng cơ bản của sfdisk, bao gồm kiểm tra phiên bản, liệt kê các phân vùng hiện tại và tạo một bảng phân vùng mới trên một đĩa. Bạn đã học cách tạo một bảng phân vùng kiểu DOS mới với một phân vùng Linux duy nhất chiếm toàn bộ đĩa. Trải nghiệm thực hành với sfdisk này cung cấp một nền tảng vững chắc để quản lý phân vùng đĩa trong môi trường Linux.

400+ câu lệnh phổ biến trong Linux