Fdisk trong Linux là gì?
Fdisk (viết tắt của “fixed disk” hoặc “format disk”) là một công cụ dòng lệnh trong hệ điều hành Linux được sử dụng để quản lý các phân vùng trên đĩa cứng. Nó cho phép bạn tạo, xóa, sửa đổi kích thước và kiểm tra thông tin về các phân vùng trên đĩa cứng.
Fdisk cung cấp một giao diện dòng lệnh đơn giản để thao tác với các phân vùng. Bằng cách sử dụng fdisk, bạn có thể tạo các phân vùng mới, xác định kiểu định dạng (như ext4, NTFS, v.v.), thay đổi kích thước và vị trí của các phân vùng hiện có, cũng như xóa các phân vùng không cần thiết.
Fdisk là một công cụ mạnh mẽ nhưng cần cẩn thận sử dụng. Việc thao tác sai có thể gây mất dữ liệu trên đĩa cứng. Nếu bạn không có kinh nghiệm sử dụng fdisk, hãy đảm bảo đọc và hiểu rõ các tài liệu hướng dẫn hoặc tìm kiếm sự hỗ trợ từ các nguồn đáng tin cậy trước khi thực hiện bất kỳ thay đổi nào trên đĩa cứng của bạn.
Xoá phân vùng trên đĩa.
Để xóa các phân vùng trên đĩa sdc
, bạn có thể sử dụng công cụ fdisk
hoặc gdisk
. Dưới đây là hướng dẫn sử dụng fdisk
để xoá các phân vùng trên đĩa:
Lưu ý: Việc xóa phân vùng sẽ xóa toàn bộ dữ liệu trên phân vùng đó. Vui lòng sao lưu dữ liệu quan trọng trước khi tiến hành xóa.
Giả sử tôi có ổ đĩa sdc và có 2 phân vùng sdc1 và sdc2 cần xoá như dưới.
$ lsblk
NAME
sda MAJ:MIN RM SIZE RO TYPE MOUNTPOINT 8:0 0 3.6T 0 disk
sdb 8:16 0 931.5G 0 disk
├─sdb1 8:17 0 1007K 0 part
├─sdb2 8:18 0 1G 0 part
└─sdb3 8:19 0 930.5G 0 part
├─pve-swap 253:1 0 8G 0 lvm [SWAP]
├─pve-root 253:2 0 96G 0 lvm /
├─pve-data_tmeta 253:4 0 8.1G 0 lvm
│ └─pve-data 253:9 0 794.3G 0 lvm
└─pve-data_tdata 253:5 0 794.3G 0 lvm
└─pve-data 253:9 0 794.3G 0 lvm
sdc 8:32 0 931.5G 0 disk
├─sdc1 8:33 0 128M 0 part
└─sdc2 8:32 0 931.5G 0 disk
sdd 8:48 0 3.6T 0 disk
sde 8:64 0 1.8T 0 disk
└─ceph--15310d39--26ef--4abc--9e43--40aea4bee62c-osd--block--1d3b4368--b715--4e7e--951f--9a0a8d3c62fb 253:6 0 1.8T 0 lvm
sdf 8:80 0 1.8T 0 disk
└─ceph--e79a7af2--c48a--43ca--9a84--beb0a838f4bd-osd--block--6f76a4be--b634--4902--9c15--90e89ae4b670 253:0 0 1.8T 0 lvm
sdg 8:96 0 1.8T 0 disk
└─ceph--37d7c6e1--3985--44f8--9320--4f8bd0604f42-osd--block--8befb969--fdee--425a--a474--23ebbaeea486 253:3 0 1.8T 0 lvm
sdh 8:112 0 1.8T 0 disk
└─ceph--b494b42c--f07d--4ead--8762--b243bd9ddb3d-osd--block--f218989a--53d4--485b--bcfb--9ee585fa5a37 253:8 0 1.8T 0 lvm
sdi 8:128 0 1.8T 0 disk
└─ceph--a18e17ed--72fd--4845--a30c--7e27ff1593a1-osd--block--18c5eac7--ec9f--4b29--bda0--22f425cb8ad6 253:7 0 1.8T 0 lvm
sdj 8:144 0 3.6T 0 disk
sdk 8:160 0 3.6T 1 disk
├─sdk1 8:161 0 4M 1 part
├─sdk2 8:162 0 4G 1 part
├─sdk3 8:163 0 3.6T 1 part
├─sdk5 8:165 0 250M 1 part
├─sdk6 8:166 0 250M 1 part
├─sdk7 8:167 0 110M 1 part
├─sdk8 8:168 0 286M 1 part
└─sdk9 8:169 0 2.5G 1 part 8:34 0 931.4G 0 part
Mở một cửa sổ Terminal và nhập lệnh sau để bắt đầu chỉnh sửa đĩa sdc
bằng fdisk
:
$ fdisk /dev/sdc
Welcome to fdisk (util-linux 2.36.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): d
Partition number (1,2, default 2): 1
Partition 1 has been deleted.
Command (m for help): d
Selected partition 2
Partition 2 has been deleted.
Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
- Lệnh trên sẽ mở giao diện
fdisk
cho đĩasdc
. Bạn có thể sử dụng các lệnh sau:p
: Hiển thị thông tin về các phân vùng trên đĩa.d
: Xóa một phân vùng. Sau khi nhậpd
, hệ thống sẽ yêu cầu bạn chọn phân vùng cần xóa.w
: Lưu các thay đổi và thoát khỏifdisk
.
- Nhập lệnh
p
để xem thông tin về các phân vùng trên đĩasdc
. - Nhập lệnh
d
và sau đó chọn phân vùng cần xóa. Trong trường hợp này, nếu bạn muốn xóasdc1
vàsdc2
, bạn sẽ nhậpd
hai lần và chọn1
và2
tương ứng. - Nhập lệnh
w
để lưu các thay đổi và thoát khỏifdisk
.
Sau khi thực hiện các bước trên, các phân vùng sdc1
và sdc2
trên đĩa sdc
sẽ được xóa. Hãy chắc chắn rằng bạn đã chọn đúng đĩa và phân vùng cần xóa để tránh xóa nhầm dữ liệu trên các phân vùng quan trọng. Và dưới đây là kết quả sau khi xoá phân vùng.
$ lsblk
NAME
sda MAJ:MIN RM SIZE RO TYPE MOUNTPOINT 8:0 0 3.6T 0 disk
sdb 8:16 0 931.5G 0 disk
├─sdb1 8:17 0 1007K 0 part
├─sdb2 8:18 0 1G 0 part
└─sdb3 8:19 0 930.5G 0 part
├─pve-swap 253:1 0 8G 0 lvm [SWAP]
├─pve-root 253:2 0 96G 0 lvm /
├─pve-data_tmeta 253:4 0 8.1G 0 lvm
│ └─pve-data 253:9 0 794.3G 0 lvm
└─pve-data_tdata 253:5 0 794.3G 0 lvm
└─pve-data 253:9 0 794.3G 0 lvm
sdc 8:32 0 931.5G 0 disk 8:32 0 931.5G 0 disk
sdd 8:48 0 3.6T 0 disk
sde 8:64 0 1.8T 0 disk
└─ceph--15310d39--26ef--4abc--9e43--40aea4bee62c-osd--block--1d3b4368--b715--4e7e--951f--9a0a8d3c62fb 253:6 0 1.8T 0 lvm
sdf 8:80 0 1.8T 0 disk
└─ceph--e79a7af2--c48a--43ca--9a84--beb0a838f4bd-osd--block--6f76a4be--b634--4902--9c15--90e89ae4b670 253:0 0 1.8T 0 lvm
sdg 8:96 0 1.8T 0 disk
└─ceph--37d7c6e1--3985--44f8--9320--4f8bd0604f42-osd--block--8befb969--fdee--425a--a474--23ebbaeea486 253:3 0 1.8T 0 lvm
sdh 8:112 0 1.8T 0 disk
└─ceph--b494b42c--f07d--4ead--8762--b243bd9ddb3d-osd--block--f218989a--53d4--485b--bcfb--9ee585fa5a37 253:8 0 1.8T 0 lvm
sdi 8:128 0 1.8T 0 disk
└─ceph--a18e17ed--72fd--4845--a30c--7e27ff1593a1-osd--block--18c5eac7--ec9f--4b29--bda0--22f425cb8ad6 253:7 0 1.8T 0 lvm
sdj 8:144 0 3.6T 0 disk
sdk 8:160 0 3.6T 1 disk
├─sdk1 8:161 0 4M 1 part
├─sdk2 8:162 0 4G 1 part
├─sdk3 8:163 0 3.6T 1 part
├─sdk5 8:165 0 250M 1 part
├─sdk6 8:166 0 250M 1 part
├─sdk7 8:167 0 110M 1 part
├─sdk8 8:168 0 286M 1 part
└─sdk9 8:169 0 2.5G 1 part 8:34 0 931.4G 0 part
Nếu khi xoá phân vùng bạn gặp lỗi fdisk: cannot open /dev/sdk: Read-only file system
như dưới hoặc có thể không có thông báo lỗi gì nhưng vẫn không xoá được phân vùng thì hãy làm theo các bước tiếp theo.
Giả sử mình có các ở đĩa trước đó sử dụng chạy Ceph đó là sde, sdf, sdg, sdh, sdi, mình đã thử xoá chúng bằng cách trên nhưng không thành công và tất nhiên trường hợp này khi xoá nó cũng không có thông báo lỗi.
Bạn để ý ở phần type của phân vùng nó có type là lvm và như vậy nó đang ở dạng là Logical Volume Manager.
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 3.6T 0 disk
sdb 8:16 0 931.5G 0 disk
├─sdb1 8:17 0 1007K 0 part
├─sdb2 8:18 0 1G 0 part
└─sdb3 8:19 0 930.5G 0 part
├─pve-swap 253:1 0 8G 0 lvm [SWAP]
├─pve-root 253:2 0 96G 0 lvm /
├─pve-data_tmeta 253:4 0 8.1G 0 lvm
│ └─pve-data 253:9 0 794.3G 0 lvm
└─pve-data_tdata 253:5 0 794.3G 0 lvm
└─pve-data 253:9 0 794.3G 0 lvm
sdc 8:32 0 931.5G 0 disk
sdd 8:48 0 3.6T 0 disk
sde 8:64 0 1.8T 0 disk
└─ceph--15310d39--26ef--4abc--9e43--40aea4bee62c-osd--block--1d3b4368--b715--4e7e--951f--9a0a8d3c62fb 253:6 0 1.8T 0 lvm
sdf 8:80 0 1.8T 0 disk
└─ceph--e79a7af2--c48a--43ca--9a84--beb0a838f4bd-osd--block--6f76a4be--b634--4902--9c15--90e89ae4b670 253:0 0 1.8T 0 lvm
sdg 8:96 0 1.8T 0 disk
└─ceph--37d7c6e1--3985--44f8--9320--4f8bd0604f42-osd--block--8befb969--fdee--425a--a474--23ebbaeea486 253:3 0 1.8T 0 lvm
sdh 8:112 0 1.8T 0 disk
└─ceph--b494b42c--f07d--4ead--8762--b243bd9ddb3d-osd--block--f218989a--53d4--485b--bcfb--9ee585fa5a37 253:8 0 1.8T 0 lvm
sdi 8:128 0 1.8T 0 disk
└─ceph--a18e17ed--72fd--4845--a30c--7e27ff1593a1-osd--block--18c5eac7--ec9f--4b29--bda0--22f425cb8ad6 253:7 0 1.8T 0 lvm
sdj 8:144 0 3.6T 0 disk
sdk 8:160 0 3.6T 1 disk
├─sdk1 8:161 0 4M 1 part
├─sdk2 8:162 0 4G 1 part
├─sdk3 8:163 0 3.6T 1 part
├─sdk5 8:165 0 250M 1 part
├─sdk6 8:166 0 250M 1 part
├─sdk7 8:167 0 110M 1 part
├─sdk8 8:168 0 286M 1 part
└─sdk9 8:169 0 2.5G 1 part
Bạn có thể vào thư mục /dev/ hoặc /dev/maper, thông tin của Logical Volume Manager sẽ được lưu ở đây.
$ ls -al /dev/ | grep 'ceph-'
drwxr-xr-x 2 root root 60 Jun 8 12:30 ceph-15310d39-26ef-4abc-9e43-40aea4bee62c
drwxr-xr-x 2 root root 60 Jun 8 12:30 ceph-37d7c6e1-3985-44f8-9320-4f8bd0604f42
drwxr-xr-x 2 root root 60 Jun 8 12:30 ceph-a18e17ed-72fd-4845-a30c-7e27ff1593a1
drwxr-xr-x 2 root root 60 Jun 8 12:30 ceph-b494b42c-f07d-4ead-8762-b243bd9ddb3d
drwxr-xr-x 2 root root 60 Jun 8 12:30 ceph-e79a7af2-c48a-43ca-9a84-beb0a838f4bd
Việc của bạn là xác định file nào chứa thông tin Logical Volume Manager của disk cần xoá và dùng lệnh lvremove <đường dẫn tới file chứa thông tin Logical Volume Manager>
để xoá phân vùng, bạn hãy bấm y để xác nhận xoá.
$ lvremove /dev/ceph-37d7c6e1-3985-44f8-9320-4f8bd0604f42/osd-block-8befb969-fdee-425a-a474-23ebbaeea486
Do you really want to remove active logical volume ceph-37d7c6e1-3985-44f8-9320-4f8bd0604f42/osd-block-8befb969-fdee-425a-a474-23ebbaeea486? [y/n]: y
Logical volume "osd-block-8befb969-fdee-425a-a474-23ebbaeea486" successfully removed
Làm lần lượt cho các disk còn lại, bạn có kết quả.
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 3.6T 0 disk
sdb 8:16 0 931.5G 0 disk
├─sdb1 8:17 0 1007K 0 part
├─sdb2 8:18 0 1G 0 part
└─sdb3 8:19 0 930.5G 0 part
├─pve-swap 253:0 0 8G 0 lvm [SWAP]
├─pve-root 253:1 0 96G 0 lvm /
├─pve-data_tmeta 253:2 0 8.1G 0 lvm
│ └─pve-data 253:4 0 794.3G 0 lvm
└─pve-data_tdata 253:3 0 794.3G 0 lvm
└─pve-data 253:4 0 794.3G 0 lvm
sdc 8:32 0 931.5G 0 disk
sdd 8:48 0 3.6T 0 disk
sde 8:64 0 1.8T 0 disk
sdf 8:80 0 1.8T 0 disk
sdg 8:96 0 1.8T 0 disk
sdh 8:112 0 1.8T 0 disk
sdi 8:128 0 1.8T 0 disk
sdj 8:144 0 3.6T 0 disk
sdk 8:160 0 3.6T 1 disk
├─sdk1 8:161 0 4M 1 part
├─sdk2 8:162 0 4G 1 part
├─sdk3 8:163 0 3.6T 1 part
├─sdk5 8:165 0 250M 1 part
├─sdk6 8:166 0 250M 1 part
├─sdk7 8:167 0 110M 1 part
├─sdk8 8:168 0 286M 1 part
└─sdk9 8:169 0 2.5G 1 part