Hướng dẫn quản lý phân vùng đĩa cứng trên Linux
Giới thiệu
Phân vùng đĩa cứng là chia nhỏ ổ đĩa trên máy tính để phục vụ một nhu cầu cụ thể. Ví dụ: Ổ phân vùng C:\ thường được sử dụng để chứa các file của hệ điều hành. Các phân vùng còn lại dùng cho mục đích khác như chứa thông tin cá nhân, công việc. Việc phân vùng đĩa cứng (hay còn gọi là ổ cứng) có nhiều lợi ích như dễ tổ chức, cài nhiều hệ điều hành và sao lưu dễ dàng hơn.
Dưới đây là một số khái niệm bạn cần nắm trước khi thực hiện thao tác phân vùng đĩa cứng.
File System là gì?
File System là một tập hợp logic của các files nằm trên một phân vùng hoặc trên đĩa. Hệ điều hành sử dụng File System để lưu trữ và truy xuất dữu liệu. Nếu không có File System thì dữ liệu được lưu trữ thành một khối chung mà không có cách nào biết nó bắt đầu hay kết thúc ở đâu.
Đối với hệ điều hành Windows thì file system chủ yếu ở format FAT32
và NTFS
. Còn đối với Linux thì ta có nhiều format hơn như ext2, ext3, ext4, xfs, vfat, swap , ZFS
và GlusterFS
.
Ngoài ra các bạn sẽ va phải các khái niệm sau:
Primary Partition (Phân vùng Primary): Là phân vùng chứa 1 file system
Extended Partition (Phân vùng Extended): Là phân vùng chứa một hoặc nhiều phân vùng Logical.
Logical Partition (Phân vùng Logical): Là phân vùng có thể được format để lưu trữ dữ liệu nhưng không thể dùng để host một hệ điều hành.
Master Boot Record (MBR) là gì?
Master Boot Record (MBR) là một boot sector đặc biệt chứa thông tin về Hệ điều hành và tải vào bộ nhớ chính hoặc RAM . MBR nằm ở đầu ổ đĩa và còn đươc gọi là partition sector hoặc master partition table bởi nó bao gồm một bảng chứa vị trí từng phân vùng mà đĩa cứng đã được định dạng. MBR tuy được sử dụng rộng rãi nhưng hiện đã cũ. MBR làm việc với các ổ đĩa có kích thước chỉ 2TB trở xuống, Ngoài ra, nó chỉ hỗ trợ 4 phân vùng chính. Nếu muốn nhiều phân vùng hơn, bạn cần thực hiện chuyển đổi phân vùng chính thành "extended partition" và tạo phân vùng trong đó
GUID Partition Table (GPT) là gì?
Đây là một chuẩn mới hơn để bố trí các bảng phân vùng của thiết bị lưu trữ vật lý (ổ cứng, ổ đĩa). GPT tạo thành một phần của UEFI (thay thế EFI cho BIOS PC), UEFI có giao diện người dùng hiện đại và dễ sử dụng. GPT có điểm vượt trội chính là cho phép không giới hạn các phân vùng, hệ điều hành sẽ giới hạn điều đó.
Quản lý phân vùng đĩa cứng bằng fdisk
fdisk là một tiện ích command-line để phân vùng đĩa cứng. fdisk có chức năng phân chia, thay đổi, thêm hoặc xoá các phân vùng. Điểm cộng của fdisk chính là tính năng nhanh, gọn, lẹ của mình. Hầu hết các hệ điều hành đều tích hợp sẵn tiện ích này.
Nếu bạn muốn thay đổi phân vùng trên ổ đĩa hiện tại thì nên backup dữ liệu trước, vì fdisk có thể sẽ xoá dữ liệu của bạn trên phân vùng.
Lưu ý: fdisk không thể sử dụng đối với bảng phân vùng GUID(GPT) và nó không hoạt động phân vùng lớn hơn 2TB.
Xem tất cả các phân vùng trên Linux
Trước khi bạn thực hiện bất kì hoạt động phân vùng thì bạn cần phải biết danh sách những phân vùng đang có trên thiết bị. Để liệt kê tất cả các thông tin chi tiết các phân vùng đang có sẵn trong hệ thống bạn sử dụng lệnh fdisk -l
Ta được kết quả:
Theo như ví dụ tên, chúng ta đang có 1 disk model ABC dung lượng 50 Gib
và 3 devices sda1, sda2, sda5
Thông tin: Để xem một partition table cụ thể ta có thể thêm địa chỉ của nó vào phía sau code. Ví dụ: fdisk -l /dev/sdb
Vào chế độ chỉnh sửa phân vùng của ổ đĩa
Ta có thể sử dụng lệnh fdisk [address]
với address là địa chỉ bạn muốn vào chế độ chỉnh sửa. Ở ví dụ dưới mình đang vào chế độ chỉnh sửa cho ổ đĩa /dev/sda
Sau khi xuất hiện thông báo "Welcome to fdisk....Command (m) for help:". Các bạn nhập vào m
thì menu lệnh sẽ hiện ra.
Tạo một phân vùng mới
Để tạo một phân vùng mới bạn cần vào chế độ chỉnh sửa . Ví dụ dụ ở dưới đây mình sẽ thao tác với ổ đĩa là /dev/sda
.
Sau khi dùng lệnh fdisk /dev/sda
, hệ thống sẽ đưa bạn vào chế độ thao tác với các phân vùng trên ổ đĩa /dev/sda
.
Đây là trước khi tạo một phân vùng mới.
Bạn thực hiện điền lệnh là n
để tạo mới phân vùng.
Lúc này bạn có hai lựa chọn cho loại phân vùng mà mình tạo:
Chọn
p
để tạo phân vùng loại PrimaryHoặc chọn
e
để tạo phân vùng loại Extended
Trong ví dụ này, mình chọn phân vùng là Primary bằng cách chọn p
.
Thông tin: Bạn nên chọn loại phân vùng là Primary nếu phân vùng này chứa hệ điều hành hoặc thiết bị này có ít hơn 4 phân vùng. Bạn nên chọn loại phân vùng là extended nếu bạn muốn tạo nhiều hơn 4 phân vùng cho thiết bị.
Khi chọn loại phân vùng xong, fdisk sẽ yêu cần bạn nhập vào hai thông số là First sector và Last sector.
First sector là vị trí sector đầu của phân vùng.
Last sector là vị trí sector cuối của phân vùng.
Từ hai vị trí này sẽ tính ra được dung lượng của phân vùng. Ở đây mình chọn First Sector mặc định là 2048
còn Last Sector là +5000
tức 2048+5000=7048
. Ngoài ra bạn cũng có thể chỉ định size như +5G
hay +512MB
.
Cuối cùng bạn bấm phím w
để lưu. Bạn cần chờ ít phút để hệ thống tạo phân vùng. Như vậy chúng ta đã tạo mới 1 phân vùng rồi, ta cùng quan sát kết quả nhé:
Xóa một phân vùng
Xoá phân vùng thực hiện cũng tương tự như tạo, đầu tiên bạn truy cập vào chế độ chỉnh sửa bằng fdisk [address]
sau đó bấm phím d
để vào Menu xoá phân vùng
Bạn nhập số thứ tự phân vùng bạn muốn xoá (Mình chọn phân vùng số 3). Sau khi thông báo xoá thành công, bạn bấm phím w
để lưu.
Đây là kết quả trước khi mình xoá phân vùng số 3:
Và sau khi xoá nó:
Format một phân vùng
Format phân vùng hay còn gọi là định dạng phân vùng. Thao tác này sẽ đưa các phân vùng chưa định dạng về một định dạng file system nhất định (ví dụ ext4). Trong ví dụ này chúng ta dùng mkfs.ext4
để định dạng phân vùng /dev/sda1
sang dùng file system ext4
.
Ta được kết quả
Lưu ý: Sau khi format thì dữ liệu trên phân vùng sẽ bị xoá, vì vậy bạn hãy cẩn thận chọn đúng phân vùng để format.
Quản lý phân vùng đĩa cứng bằng parted
Parted là gì và cách cài đặt
Parted là một công cụ command-line vô cùng nổi tiếng nhằm mục đích quản lý các phân vùng. Các chức năng chính của Parted bao gồm: Tạo, Xoá, Thu nhỏ, Mở rộng phân vùng. Khác với Fdisk, thì Parted có thể sử dụng trên GPT.
Để cài đặt Parted trên Ubuntu bạn chạy dòng lệnh:
Thông tin: Bạn nên cập nhật ATP package tới bản mới nhất bằng lệnh sudo apt update
Đối với CentOS/RHEL 7: yum install parted -y
Đối với Fedora 22+: dnf install parted
Để sử dụng các tính năng của Parted, bạn cần khởi chạy nó bằng lệnh parted
Xem tất cả các phân vùng
Thông tin: Mặc định Parted chọn ổ đĩa đầu tiên được liệt kê trong hệ thống
Ta sử dụng lệnh print
để liệt kê thông tin ổ cứng hiện tại.
Nếu muốn đổi sang phân vùng khác bạn có thể sử dụng select [address]
. Ví dụ muốn đổi từ ổ đĩa hiện tại là /dev/sda sang ổ đĩa mới là /dev/sdb ta nhập như sau:
Ta sử dụng lệnh print
để xem hiện tại đang ở đâu nhé:
Tạo một phân vùng mới
CHÚ Ý: Bạn nên sử dụng lệnh print trước khi thực hiện bất cứ lệnh nào khác tránh việc nhầm lẫn phân vùng/ ổ đĩa và gây ra hậu quả không đáng có
Để tạo một phân vùng mới thì Parted sử dụng mklable
và mkpart
. Được rồi, chúng ta bắt đầu từng bước nhé:
- Bước 1: Chọn lable cho phân vùng bằng
mklabel [label-type]
.
LABEL-TYPE bao gồm: aix, amiga, bsd, dvh, gpt, mac, msdos, pc98, sun, atari, loop
. Mình sẽ không đi sâu về mỗi loại là gì, ở đây các bạn có thể xài mặc định là msdos
như mình.
- Bước 2: Tạo phân vùng mới bằng
mkpart
. Ở đây mình sẽ tạo phân vùng Primary bắt đầu từ 1 tới 10000(10GB)
- Bước 3: Tiếp theo, thoát từng phần bằng lệnh
exit
. Chúng ta sẽ định dạng phân vùng mới của mình trong hệ thống tệp ext4 bằng mkfs. Để thực hiện điều này, hãy chạy lệnh sau:
Ta sẽ được kết quả sau:
Xóa một phân vùng
Để xóa một phân vùng. Bạn cần vào chế độ thao tác với ổ đĩa bằng lệnh parted
theo hướng dẫn trên. Ở đây mình sẽ xóa một phân vùng trên ổ đĩa /dev/sda nên mình sẽ dùng lệnh select /dev/sda
Tiếp theo dùng lệnh print
để liệt kê danh sách các phân vùng kèm số thứ tự của nó.
Lệnh rm [number]
là một lệnh dùng để xoá phân vùng số number. Khi thực hiện lệnh thì sẽ không có thông báo gì nên các bạn phải chú ý !
Đây là trước khi mình xoá phân vùng số 1.
Thực hiện xóa phân vùng số 1 bằng lệnh :
Ta thu được kết quả:
Như vậy đã xóa thành công. Phân vùng số 1 đã mất.
Thay đổi kích thước phân vùng
Trong Parted, có khá nhiều công cụ để thay đổi kích thước nhưng có lẽ resizepart
là nổi tiếng và dễ sử dụng nhất. Ví dụ như muốn thay đổi một phân vùng số 1 thì ta làm như sau:
Trong đó, khi hệ thống hỏi:
Partition number?: Bạn điền thứ tự phân vùng mình cần thay đổi kích thước. Ở đây mình điền
1
để thay đổi kích thước phân vùng số 1.End? 10.0GB]?: Dung lượng bạn muốn thay đổi (đơn vị là MB). Ở đây mình điền
15000
, tương đương với 15GB để thay đổi kích thước phân vùng từ 10GB sang 15GB.
Như vậy ta đã thay đổi size của phân vùng số 1 từ 10GB
lên 15GB
.
Rescue một phân vùng
Rescue là một lệnh để ứng cứu phân vùng. Nếu bạn lỡ như xoá hay vì một lý do nào đó mà phân vùng bị mất thì đây là một lệnh cứu cánh cực kì hiệu quả. Chỉ cần phân vùng nằm trong Start
và End
thì lệnh rescue
sẽ cố gắng phục hồi nó. Ví dụ:
Thay đổi flag của phân vùng
Trong bảng phân vùng, bạn sẽ thấy một trường tên là Flag. Flag là để boot loader xác định phân vùng nào để boot. Có tổng cộng 11 flags:
boot, root, swap, hidden, raid, lvm, lba, legacy_boot, irst, esp, palo
Để đặt flag cho một phần vùng ta sử dụng 2 logic on và off bằng lệnh sau:
Ví dụ mình đặt flag boot
cho phân vùng số 2 thì mình thực hiện lệnh sau:
Tổng kết
Quản lý phân vùng là kỹ năng cơ bản dành cho người sử dụng hệ điều hành Linux. Vì vậy bạn nên nắm rõ lý thuyết và thao tác thành thạo các công cụ phân vùng đĩa cứng. Việc phân vùng cũng ảnh hưởng đến dữ liệu trên đĩa cứng nên hãy thao tác cẩn thận và chính xác tuyệt đối nhé. Chúc bạn thành công!
Tính năng đang được phát triển