Quản lý ổ đĩa trong linux
Bài viết này giới thiệu cơ bản cách quản lý phân vùng đĩa cứng trên hệ điều hành Linux giúp các bạn có thể tự học Linux dễ dàng. Một file system xác
định cách lưu trữ dữ liệu hoặc thông tin và truy xuất từ đĩa lưu trữ. Đối với hệ điều hành Windows thì các file systems phổ biến là FAT32 và NTFS. Trên hệ điều hành Linux, các file system phổ biến là ext2, ext3, ext4, xfs, vfat, swap, ZFS và GlusterFS. Phân vùng là một phần của không gian đĩa cứng. Một bảng phân vùng là một phân vùng(partition table) của đĩa chứa thông tin về kích thước và vị trí của các phân vùng trên đĩa cứng. Hai
bảng phân vùng phổ biến nhất là MBR và GPT. MBR được giới thiệu lần đầu tiên với IBM PC DOS 2.0 vào năm 1983. MBR chứa thông tin về cách phân vùng logical chứa các hệ thống tệp được sắp xếp trên đĩa. Nó chứa code thực thi(bộ tải khởi động) để hoạt động như một trình tải cho hệ điều hành được cài đặt. MBR cũng chỉ hỗ trợ tối đa bốn phân vùng chính, nếu bạn muốn nhiều hơn, bạn phải tạo một trong các phân vùng chính của
mình thành một phân vùng mở rộng của Wap và tạo các phân vùng hợp lý bên trong nó. MBR sử dụng 32 bit để lưu trữ địa chỉ khối và đối với các đĩa cứng có các sectors 512 byte, MBR xử lý tối đa 2TB (2^32 × 512 byte). 1.2.2. Bảng phân vùng GUID(GPT)GPT có thể có 128 phân vùng. GPT sử dụng 64 bit cho địa chỉ khối và cho các đĩa cứng có các sectors 512 byte, kích thước tối đa là 9,4 ZB (9,4 × 10^21 byte) hoặc 8ZiB. 2. Quản lý phân vùng ổ cứng bằng tiện ích fdisk2.1. Giới thiệu về fdiskfdisk là tiện ích quản lý phân vùng đĩa cứng trên Linux. Sử dụng fdisk, bạn có thể xem, tạo, thay đổi kích thước, xóa, thay đổi, sao chép và di chuyển các phân vùng. fdisk cho phép tạo tối đa bốn phân vùng chính được Linux cho phép với mỗi phân vùng yêu cầu kích thước tối thiểu 40mb.
2.2. Sử dụng fdisk2.2.1. Xem tất cả các phân vùng đĩa hiện cóLệnh liệt kê danh sách phân vùng trên hệ thống đĩa của bạn và các phân vùng được sắp xếp theo
tên /dev của thiết bị như
2.2.2. Xem phân vùng trên một đĩa cụ thểKhi chúng ta muốn xem tất cả các phân vùng trên một đĩa cụ thể, sử dụng lệnh sau để xem tất cả các phân vùng đĩa trên /dev/sda.
2.2.3. Xem tất cả các lệnh diskSử dụng lệnh sau để xem tất cả các lệnh fdisk có sẵn
Nhập m để xem danh sách tất cả các lệnh có sẵn của fdisk có thể được sử dụng trên /dev/sda.
Đầu ra sẽ là:
2.2.4. Tạo phân vùng mới
Để tạo phân vùng mới cuúng ta thực hiện các bước sau: Bước 1: Nhập lệnh sau để nhập lệnh sau:
Bước 2: Nhập n để tạo phân vùng mới sẽ nhắc bạn chỉ định cho một phân vùng chính hoặc phân vùng mở rộng. Nhập p cho phân vùng chính hoặc e cho phân vùng mở rộng.
Bước 3: Sau đó, bạn sẽ được nhắc nhập số của phân vùng sẽ được tạo. Bạn có thể nhấn Enter để chấp nhận mặc định.
Bước 4: Sau đó, bạn sẽ được nhắc nhập kích thước của phân vùng sẽ được tạo ví dụ dưới chúng ta sẽ tạo đĩa với size 5GB. Bạn có thể nhấn Enter để sử dụng tất cả không gian có sẵn.
Bước 5: Chạy lệnh w để lưu các thay đổi.
Tương tự chúng ta sẽ tạo phân vùng khác Bước 6: Kiểm tra xem có phân vùng mới chưa.
Bước 7: Chúng ta có hai phân vùng mới được tạo. Sau khi tạo phân vùng phải thông báo cho hệ điều hành để cập nhật bảng phân vùng. Thực hiện lệnh sau đây:
Bước 8: Bảng phân vùng đã được cập nhật. Chúng ta phải định dạng phân vùng của để sử dụng. Hệ thống định dạng tệp được hỗ trợ Linux là xfs. Lệnh sau để định dạng phân vùng sdb1 với xfs.
Định dạng phân vùng sdb2 thành xfs bằng lệnh sau:
Bước 9: Sau khi định dạng thành công phân vùng mới các phân vùng đã có thể lưu trữ dữ liệu. Chúng ta phải gắn phân vùng vào thư mục. Tạo các thư mục này bằng lệnh sau:
Bước 10: Gắn
Kiểm tra sử dụng đĩa với lệnh sau:
Bước 11: Các phân vùng gắn kết của chúng ta là tạm thời. Nếu hệ điều hành được khởi động lại, các thư mục được gắn kết này sẽ bị mất. Vì vậy, chúng ta cần phải gắn kết vĩnh viễn. Để thực hiện gắn kết vĩnh viễn phải nhập trong tệp
Để lấy UUID của các phân vùng chúng ta thực hiện như sau:
Khi đã biết UUID và hệ thống tệp, chúng tôi có thể nhập vào tệp
Lưu lại file
Nếu có lỗi, không reboot server để tránh tình trạng server không thể khởi động. Kiểm tra cấu hình trong file 2.2.5. Xoá phân vùng đĩa cứng
Khi muốn kết hợp một số phân vùng để tạo thành một phân vùng lớn hơn bạn sẽ phải xóa các phân vùng đó. Để xóa một phân vùng có tên Bước 1: Khi xóa bất kỳ phân vùng
nào, chúng ta phải ngắt kết nối phân vùng và xóa mục nhập
Bước 2: Ngắt kết nối thư mục /data được gắn vào phân vùng sdb2 bằng lệnh sau:
Bước 3: Xem các phân vùng đĩa hiện có, sau đó chạy lệnh
Bước 4: Nhập d để xóa một phân
vùng. Bạn sẽ được nhắc nhở để nhập số phân vùng trường hợp này chúng ta nhập 2 để xóa
3. Quản lý phân vùng ổ cứng bằng tiện ích parted3.1. Giới thiệu về partedparted là một chương trình để thao tác phân vùng đĩa. Nó hỗ trợ nhiều định dạng bảng phân vùng, bao gồm MS-DOS và GPT. Nó cho phép người dùng tạo, xóa, thay đổi kích thước, thu nhỏ, di chuyển và sao chép phân vùng, sắp xếp lại việc sử dụng đĩa và sao chép dữ liệu vào các đĩa cứng mới. parted là một công cụ cấp cao hơn fdisk. Nó cho phép chúng ta tạo phân vùng khi kích thước đĩa lớn hơn 2TB nhưng fdisk không cho phép. 3.2. Cài đặt partedparted cài đặt sẵn trên hầu hết các bản phân phối Linux. Nếu chưa được cài đặt sử dụng các lệnh sau để cài đặt:
3.3. Sử dụng tiện ích parted3.3.1. Khởi chạy partedLệnh
Chúng ta có thể đi chuyễn đến các đĩa khác bằng cách sử dụng lệnh:
Khi bạn muốn vào đĩa cụ thể sử dụng lệnh sau:
3.3.2. Xem tất cả các phân vùng đĩa hiện cóLệnh liệt kê danh sách phân vùng trên hệ thống đĩa của bạn và các phân vùng được sắp xếp theo tên /dev của thiết bị như
3.3.3. Tạo phân vùng mớiparted cho phép chúng ta tạo phân vùng chính hoặc mở rộng. Các bước thực hiện là giống nhau cho cả hai nhưng bạn phải một loại phân vùng thích hợp như primary hoặc extended khi tạo phân vùng. Chúng ta sẽ tạo một phân vùng mới với 10GB trong ví dụ dưới đây: Bước 1: Chọn đĩa mà phân vùng đang được tạo, trong ví dụ dưới đây
Hoặc
Sau đó chạy lệnh
Bước 2: Chọn loại partition table cho đĩa mới bằng:
Giá trị msdos tương ứng parition table loại mbr, còn giá trị là gpt thì là partition table loại GPT Bước 3: Đặt đơn vị tính bằng Gigabyte(GB)
Bước 4: Bắt đầu tạo phân vùng mới với
Bước 5: Kiểm tra phân dùng vừa được tạo:
Chúng ta có thể tạo phân dùng với cú pháp sau đây:
Tạo phân vùng 2 với size bằng 3GB:
Bước 6: Tiếp theo, thoát parted với lệnh
Bây giờ kiểm tra kết quả:
Bước 7: Sau khi định dạng thành công phân vùng mới các phân vùng đã có thể lưu trữ dữ liệu. Chúng ta phải gắn phân vùng vào thư mục. Tạo các thư mục này bằng lệnh sau:
Bước 8: Gắn
Kiểm tra sử dụng đĩa với lệnh sau:
Bước 9: Các phân vùng gắn kết của chúng ta là tạm thời. Nếu hệ điều hành được khởi động lại, các thư mục được gắn kết này sẽ bị mất. Vì vậy, chúng ta cần phải
gắn kết vĩnh viễn. Để thực hiện gắn kết vĩnh viễn phải nhập trong tệp
Để lấy UUID của các phân vùng chúng ta thực hiện như sau:
Khi đã biết UUID và hệ thống tệp, chúng tôi có thể nhập vào tệp
Lưu lại file
Nếu có lỗi, không
reboot server để tránh tình trạng server không thể khởi động. Kiểm tra cấu hình trong file 3.3.4. Tạo phân vùng mới với tất cả không gian còn lạiLệnh dưới đây tạo một phân vùng mới bắt đầu từ 13GB và kết thúc là toàn bộ không gian còn lại của đĩa: Chúng ta có thể tạo phân dùng với cú pháp sau đây:
Tạo phân vùng 3 với size bằng toàn bộ không gian còn lại của đĩa:
Bây giờ kiểm tra kết quả:
3.3.5. Xoá phân vùng
Chúng ta có thể xóa phân vùng không sử dụng bằng lệnh rm. Sử dụng cú pháp sau đây sẽ loại bỏ phân vùng 3
3.3.6. Đặt hoặc thay đổi cờ cho phân vùngChúng ta có thể thay đổi cờ phân vùng bằng cách sử dụng lệnh dưới đây. Chúng ta sẽ đặt lvm cho phân vùng 2 /dev/sdb2.
3.3.7. Thay đổi kích thước phân vùngparted cho phép người dùng thay đổi kích thước các phân vùng thành kích thước lớn và nhỏ hơn. Chạy lệnh sau để kiểm tra phân vùng đĩa và không gian trống có sẵn, dung lượng của phân dùng hiện tại:
Cách 1: Tăng kích thước phân vùng bằng command truyền tham số trực tiếp Chạy lệnh sau để tăng kích thước phân vùng 2 tăng 2GB (tăng end trong partition table 13GB to 15GB) chúng ta thực hiện như sau.
Sau khi chạy lệnh trên thì parted chỉ tăng ở partition table, vì thế chúng ta phải chạy lệnh sau để resize:
Thực hiện như sau:
Cách 2: Tăng kích thước phân vùng bằng interactive mode Chạy lệnh sau để tăng kích thước phân vùng 2 lên 1GB (tăng End trong partition table 15GB to 16GB).
Sau khi chạy lệnh trên thì parted chỉ tăng ở partition table, vì thế chúng ta phải chạy lệnh sau để resize:
4. Các quản lý phân vùng Linux trong quá trình vận hành4.1. Lệnh duLệnh 👉 Ví dụ 1: Liệt kê kích thước của một thư mục trong đơn vị đã cho (B/KB/MB):
👉 Ví dụ 2: Liệt kê các kích thước của một thư mục ở dạng có thể đọc được(tự động chọn đơn vị thích hợp cho từng kích thước):
Hiển thị kích thước của một thư mục, theo đơn vị người có thể đọc được:
4.2. Lệnh dfLệnh 👉 Ví dụ 1: Hiển thị tất cả các hệ thống tệp và sử dụng đĩa của chúng
👉 Ví dụ 2: Hiển thị tất cả các hệ thống tệp và việc sử dụng đĩa của chúng ở dạng người có thể đọc được
Chúng ta cũng có thể hiển thị
tất cả các hệ thống tệp và việc sử dụng đĩa của chúng ở dạng người có thể đọc được bằng tuỳ chọn
4.3. Lệnh fsckLệnh 👉 Ví dụ 1: Chúng ta có thể kiểm tra một hệ thống tập tin cụ thể /dev/sdb1 như bên dưới.
Sau đây là các mã(return code) có thể cho lệnh fsck:
👉 Ví dụ 2: Chúng ta có thể buộc
4.4. Lệnh e2fsckLệnh 👉 Ví dụ 1: Sử dụng tùy chọn
👉 Ví dụ 2: Sử dụng tùy chọn
👉 Ví dụ
3: Sử dụng tùy chọn
👉 Ví dụ 4: Khi hệ thống tập tin sạch sẽ, nó sẽ không thực hiện bất kỳ kiểm tra nào. Tuy nhiên, nếu bạn muốn buộc kiểm tra hệ thống tập tin, ngay cả khi nó sạch, hãy sử dụng tùy chọn
4.5. Lệnh mke2fsLệnh 👉 Ví dụ 1: Để tạo một hệ thống tập tin trên thiết bị
👉 Ví dụ 2: Để chỉ định kích thước khối theo byte
👉 Ví dụ 3: Để kiểm tra các thiết bị cho các khối xấu
4.6. Lệnh tune2fsLệnh 👉 Ví dụ 1: Sử dụng tùy chọn
👉 Ví dụ 2: Chuyển đổi loại hệ thống tập tin Bạn có thể sử dụng tùy chọn
Bạn có thể sử dụng tùy chọn
4.7. Lệnh xfs_repairLệnh Kiểm tra tính nhất quán hệ thống tệp và sửa chữa xfs có thể được thực hiện bằng lệnh
4.8. Lệnh xfs_fsrLệnh Lệnh xfs_fsr sắp xếp lại tất cả các tệp thông thường trong tất cả các hệ thống tệp được gắn kết.
Bạn có thể chỉ định thời gian nó chạy theo tùy chọn
Lệnh xfs_fsr có một tính năng ghi lại hệ thống tệp nơi nó rời khỏi lần chạy trước, vì vậy nó có thể bắt đầu ở đó vào lần tiếp theo. Thông tin này được lưu trữ trong tệp /var/tmp/.fsrlast_xfs. Nếu thông tin tìm thấy ở đây không nhất quán hoặc lỗi thời, nó sẽ bị bỏ qua và tổ chức lại bắt đầu từ đầu hoặc hệ thống tập tin đầu tiên được tìm thấy trong /etc/mtab. 4.9. Lệnh xfs_dbLệnh Chạy lệnh
Lệnh 5. Lời kếtQua bài trên, giúp cho chúng ta biết cách chia phân vùng đĩa cứng chuẩn MBR lẫn GPT bằng việc sử dụng tiện ích fdisk hoặc tiện ích parted trên hệ điều hành Linux, cách quản lý các phân vùng này trong quá trình vẫn hành và các lệnh repair lại phân vùng khi gặp lỗi trong quá trình sử dụng. |