Có rất nhiều công cụ có sẵn để quản lý bộ nhớ trong Linux. Tuy nhiên, chỉ một vài công cụ được sử dụng cho công việc bảo trì và quản trị hàng ngày. Trong hướng dẫn này, bạn sẽ được làm quen với một số tiện ích thường dùng nhất để quản lý các điểm mount, thiết bị lưu trữ và hệ thống tập tin, Các lệnh cơ bản liên quan đến lưu trữ trong Linux.
Tài liệu tham khảo khác
Hướng dẫn này không đề cập đến cách chuẩn bị thiết bị lưu trữ cho lần sử dụng đầu tiên trên hệ thống Linux. Nếu bạn chưa thiết lập lưu trữ, hãy tham khảo hướng dẫn phân vùng và định dạng thiết bị lưu trữ trong Linux để biết cách chuẩn bị thiết bị lưu trữ thô của mình.
Để hiểu rõ hơn về một số thuật ngữ được sử dụng trong lĩnh vực lưu trữ, hãy tham khảo bài viết thuật ngữ lưu trữ.
Xác định Dung Lượng và Mức Sử Dụng Lưu Trữ với df
Thông tin quan trọng nhất bạn cần biết về lưu trữ của hệ thống là dung lượng tổng và mức sử dụng hiện tại của các thiết bị lưu trữ được kết nối.
Để kiểm tra tổng dung lượng lưu trữ sẵn có và xem mức sử dụng hiện tại của ổ đĩa, hãy dùng tiện ích df
. Mặc định, lệnh này xuất ra các số đo theo đơn vị 1K block, điều này đôi khi không thực sự tiện lợi. Bạn có thể thêm tham số -h
để hiển thị theo đơn vị dễ đọc hơn:
df -h
Output
Filesystem Size Used Avail Use% Mounted on udev 238M 0 238M 0% /dev tmpfs 49M 624K 49M 2% /run /dev/vda1 20G 1.1G 18G 6% / tmpfs 245M 0 245M 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 245M 0 245M 0% /sys/fs/cgroup tmpfs 49M 0 49M 0% /run/user/1000 /dev/sda1 99G 60M 94G 1% /mnt/data
Ở đây, phân vùng /dev/vda1
được gắn vào /
đang sử dụng 6% dung lượng với 18G trống, trong khi phân vùng /dev/sda1
được gắn vào /mnt/data
gần như trống với 94G trống. Các mục còn lại sử dụng hệ thống tập tin kiểu tmpfs
hoặc devtmpfs
– là bộ nhớ tạm thời được sử dụng như lưu trữ thường trực. Bạn có thể loại trừ các mục này bằng cách gõ:
df -h -x tmpfs -x devtmpfs
Output:
Filesystem Size Used Avail Use% Mounted on /dev/vda1 20G 1.1G 18G 6% / /dev/sda1 99G 60M 94G 1% /mnt/data
Kết quả này cho thấy mức sử dụng ổ đĩa hiện tại một cách rõ ràng hơn bằng cách loại bỏ một số thiết bị đặc biệt và ảo.
Tìm Thông Tin về Các Thiết Bị Block với lsblk
Một thiết bị block là thuật ngữ chung dùng cho thiết bị lưu trữ mà đọc hoặc ghi dữ liệu theo các khối có kích thước xác định. Thuật ngữ này áp dụng cho hầu hết các loại lưu trữ không bay hơi như ổ cứng HDD, ổ SSD, v.v. Thiết bị block là thiết bị vật lý nơi hệ thống tập tin được ghi vào, và hệ thống tập tin quyết định cách dữ liệu và các tập tin được lưu trữ.
Tiện ích lsblk
có thể được sử dụng để hiển thị thông tin về các thiết bị block. Các khả năng cụ thể của tiện ích phụ thuộc vào phiên bản được cài đặt, nhưng nhìn chung, lệnh lsblk
có thể hiển thị thông tin về ổ đĩa, thông tin phân vùng và hệ thống tập tin đã được ghi vào.
Nếu không có đối số nào, lsblk
sẽ hiển thị tên thiết bị, số hiệu major và minor liên quan đến thiết bị (được Linux kernel sử dụng để theo dõi driver và thiết bị), thông tin về tính di động của ổ đĩa, dung lượng, trạng thái chỉ đọc hay không, loại thiết bị (đĩa hoặc phân vùng) và điểm mount của nó. Trên một số hệ thống, cần sử dụng sudo
để hiển thị thông tin chính xác:
sudo lsblk
Output:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 100G 0 disk vda 253:0 0 20G 0 disk └─vda1 253:1 0 20G 0 part /
Trong kết quả hiển thị, phần quan trọng nhất thường là tên thiết bị (ví dụ như /dev/sda
), kích thước, loại và điểm mount. Ở đây, bạn có một ổ đĩa (/dev/vda
) với một phân vùng (/dev/vda1
) được sử dụng làm phân vùng gốc /
và một ổ đĩa khác (/dev/sda
) chưa được phân vùng.
Để lấy thông tin liên quan nhiều hơn đến quản lý đĩa và phân vùng, bạn có thể dùng tham số --fs
trên một số phiên bản:
sudo lsblk --fs
Output:
NAME FSTYPE LABEL UUID MOUNTPOINT sda vda └─vda1 ext4 DOROOT c154916c-06ea-4268-819d-c0e36750c1cd /
Nếu tham số --fs
không khả dụng trên hệ thống của bạn, bạn có thể tái tạo kết quả bằng cách sử dụng tham số -o
để yêu cầu hiển thị các trường thông tin cụ thể. Ví dụ:
sudo lsblk -t
Output:
NAME FSTYPE LABEL UUID MOUNTPOINT sda vda └─vda1 ext4 DOROOT c154916c-06ea-4268-819d-c0e36750c1cd /
Để lấy thông tin về topology của đĩa, bạn gõ:
sudo lsblk -t
Output:
NAME ALIGNMENT MIN-IO OPT-IO PHY-SEC LOG-SEC ROTA SCHED RQ-SIZE RA WSAME sda 0 512 0 512 512 1 deadline 128 128 2G vda 0 512 0 512 512 1 128 128 0B └─vda1 0 512 0 512 512 1 128 128 0B
Có nhiều phím tắt khác giúp hiển thị các thuộc tính liên quan đến ổ đĩa và phân vùng. Bạn có thể hiển thị tất cả các cột có sẵn bằng tham số -O
hoặc tùy chỉnh các trường cần hiển thị bằng cách chỉ định tên cột với tham số -o
. tham số -h
có thể được dùng để liệt kê các cột có sẵn:
lsblk -h
Output:
. . . Available columns (for --output): NAME device name KNAME internal kernel device name . . . SUBSYSTEMS de-duplicated chain of subsystems REV device revision VENDOR device vendor For more details see lsblk(8).
Hướng dẫn cách Mount Hệ Thống Tập Tin
Trước khi sử dụng một ổ đĩa mới, thông thường bạn cần phân vùng nó, định dạng với một hệ thống tập tin, và sau đó mount ổ đĩa hoặc các phân vùng. Quá trình phân vùng và định dạng thường chỉ thực hiện một lần. Để biết thêm chi tiết cách phân vùng và định dạng ổ đĩa trong Linux, hãy xem hướng dẫn phân vùng và định dạng thiết bị lưu trữ trong Linux.
Mount hệ thống tập tin là thao tác mà bạn có thể thực hiện thường xuyên hơn. Việc mount cho phép hệ thống truy cập vào hệ thống tập tin qua một điểm mount được chỉ định – đó là thư mục dưới đó hệ thống tập tin mới sẽ được truy cập.
Hai lệnh cơ bản dùng để quản lý mount là mount
và umount
.
- Lệnh
mount
được dùng để gắn một hệ thống tập tin vào cây thư mục hiện hành. Trong hệ thống Linux, toàn bộ hệ thống tập tin được hợp nhất thành một cây thư mục duy nhất, bất kể số lượng thiết bị vật lý cấu thành nên nó. - Lệnh
umount
(lưu ý: không phải làunmount
) được dùng để tháo hệ thống tập tin ra khỏi cây thư mục. Ngoài ra, lệnhfindmnt
cũng rất hữu ích để thu thập thông tin về trạng thái của các hệ thống tập tin đang được mount.
Sử Dụng Lệnh mount
Cách đơn giản nhất để sử dụng lệnh mount
là chỉ định thiết bị hoặc phân vùng đã định dạng và điểm mount mà bạn muốn gắn nó vào:
sudo mount /dev/sda1 /mnt
Điểm mount (tham số cuối cùng chỉ định nơi trong hệ thống tập tin mà hệ thống tập tin mới được gắn vào) hầu như luôn phải là một thư mục trống.
Thông thường, bạn sẽ muốn chọn thêm các tùy chọn cụ thể khi mount. Mặc dù lệnh mount
có thể tự động nhận diện kiểu hệ thống tập tin, nhưng tốt hơn hết bạn nên chỉ định kiểu hệ thống tập tin bằng tham số -t
. Ví dụ, với hệ thống tập tin Ext4, bạn có thể dùng:
sudo mount -t ext4 /dev/sda1 /mnt
Có rất nhiều tùy chọn khác có thể ảnh hưởng đến cách hệ thống tập tin được mount. Các tùy chọn mount chung có thể được tìm thấy trong phần FILESYSTEM INDEPENDENT MOUNT OPTIONS của trang hướng dẫn mount.
Bạn có thể truyền thêm các tùy chọn với tham số -o
. Ví dụ, để mount một phân vùng với các tùy chọn mặc định (tương đương với rw,suid,dev,exec,auto,nouser,async
), bạn có thể sử dụng -o defaults
. Nếu bạn cần ghi đè quyền truy cập đọc-ghi và mount dưới chế độ chỉ đọc, bạn có thể thêm ro
vào sau, sẽ ghi đè lên rw
từ tùy chọn mặc định:
sudo mount -t ext4 -o defaults,ro /dev/sda1 /mnt
Để mount tất cả các hệ thống tập tin được liệt kê trong file /etc/fstab
, bạn dùng tùy chọn -a
:
sudo mount -a
Liệt Kê Các Tùy Chọn Mount Của Hệ Thống Tập Tin
Để hiển thị các tùy chọn mount được sử dụng cho một điểm mount cụ thể, bạn có thể dùng lệnh findmnt
. Ví dụ, nếu bạn muốn xem chi tiết điểm mount chỉ đọc đã được thiết lập ở ví dụ trên, bạn có thể dùng:
findmnt /mnt
Output
TARGET SOURCE FSTYPE OPTIONS /mnt /dev/sda1 ext4 ro,relatime,data=ordered
Điều này hữu ích nếu bạn đang thử nghiệm với nhiều tùy chọn và cuối cùng đã tìm ra bộ tùy chọn phù hợp. Bạn có thể sử dụng kết quả từ findmnt
để biết thêm các tùy chọn thích hợp cần thêm vào file /etc/fstab
cho lần mount sau.
Cách unmount Một Hệ Thống Tập Tin
Lệnh umount
được sử dụng để tháo một hệ thống tập tin đã được mount. Lưu ý, lệnh này là umount
chứ không phải unmount
.
Cấu trúc chung của lệnh là chỉ định điểm mount hoặc thiết bị của hệ thống tập tin đang được mount. Hãy đảm bảo rằng bạn không đang sử dụng bất kỳ tập tin nào trên điểm mount đó và không có ứng dụng nào (bao gồm cả shell hiện tại) đang hoạt động bên trong thư mục đó:
cd ~ sudo umount /mnt
Thông thường, không cần thêm các tùy chọn cho hành vi mặc định của lệnh tháo mount.
Kết Luận
Mặc dù danh sách này không bao gồm tất cả các tiện ích, nhưng những công cụ được liệt kê ở trên hầu như đáp ứng được hầu hết các nhu cầu quản trị hệ thống hàng ngày của bạn. Bằng cách nắm vững một vài lệnh cơ bản, bạn có thể dễ dàng quản lý các thiết bị lưu trữ trên máy chủ của mình.