Linux

Hướng dẫn cách gắn và ngắt kết nối các thiết bị lưu trữ từ giao diện dòng lệnh Linux

cach gan va ngat ket noi cac thiet bi luu tru tu giao dien dong lenh

Hệ thống tệp trong Linux và các hệ điều hành giống Unix như macOS có thể được gắn kết, hủy gắn kết và gắn lại bằng terminal. Đây là một công cụ mạnh mẽ và đa năng—sau đây là tất cả những gì bạn cần biết.

1. Hệ thống tệp (File system) trong Linux

Các hệ thống tệp trong Linux, macOS và các hệ điều hành tương tự Unix khác không sử dụng các định danh ổ đĩa (volume identifiers) riêng biệt cho các thiết bị lưu trữ như cách mà Windows thực hiện. Windows gán cho mỗi ổ đĩa một ký tự như C: hoặc D: và hệ thống tệp cho mỗi ổ đĩa là một cây thư mục nằm bên dưới ký tự ổ cứng đó.

Trong Linux, hệ thống tệp là một cây thư mục tất-cả-trong-một. Một thiết bị lưu trữ được gắn (mounted) sẽ có hệ thống tệp của nó được ghép nối (grafted) vào cây thư mục chung đó, khiến nó xuất hiện như một phần không thể thiếu của một hệ thống tệp thống nhất. Hệ thống tệp vừa được gắn sẽ có thể truy cập được thông qua thư mục mà nó được gắn vào. Thư mục đó được gọi là điểm gắn kết (mount point) cho hệ thống tệp đó.

Nhiều hệ thống tệp được tự động gắn khi khởi động (boot time) hoặc tự động gắn tức thời (on-the-fly) khi các ổ đĩa lưu trữ được kết nối với máy tính trong thời gian chạy (runtime). Các quản trị viên hệ thống cẩn trọng có thể tắt các tính năng tự động gắn trong thời gian chạy để họ có thể kiểm soát các kết nối với hệ thống.

Điều này có nghĩa là các thiết bị lưu trữ được kết nối trong thời gian chạy có thể sẽ không tự động gắn và cần phải được gắn thủ công. Việc gắn thủ công một hệ thống tệp cho phép bạn đưa ra các quyết định về hệ thống tệp đó, chẳng hạn như điểm gắn kết sẽ ở đâu và liệu hệ thống tệp sẽ ở chế độ chỉ đọc (read-only) hay đọc-ghi (read-write).

Dù là do cần thiết hay do lựa chọn, các lệnh mount, umountremount cung cấp cho bạn khả năng kiểm soát khía cạnh quan trọng này của hệ thống Linux của mình.

2. Truy vấn hệ thống tệp bằng lệnh Mount

Lệnh mount có rất nhiều tùy chọn, nhưng để liệt kê tất cả các hệ thống tệp đã được gắn trên máy tính của bạn, bạn không cần tùy chọn nào cả. Đơn giản chỉ cần gõ mount và nhấn Enter:

cach gan va ngat ket noi cac thiet bi luu tru tu giao dien dong lenh

mount

mount sẽ liệt kê tất cả các hệ thống tệp đã kết nối trong cửa sổ terminal.

cach gan va ngat ket noi cac thiet bi luu tru tu giao dien dong lenh

Có thể khó để lọc qua khối dữ liệu này để tìm thấy những gì bạn đang tìm kiếm.

Bạn có thể tinh chỉnh đầu ra bằng cách yêu cầu mount chỉ liệt kê các hệ thống tệp mà bạn quan tâm. Tùy chọn -t (type – loại) yêu cầu mount báo cáo về loại hệ thống tệp nào.

mount -t tmpfs
mount -t ext4

cach gan va ngat ket noi cac thiet bi luu tru tu giao dien dong lenh

Ví dụ, chúng ta đã yêu cầu mount chỉ liệt kê các hệ thống tệp tmpfs. Chúng ta nhận được một đầu ra dễ quản lý hơn nhiều.

Một hệ thống tệp tmpfs xuất hiện như thể nó là một hệ thống tệp đã được gắn thông thường, nhưng nó thực chất được lưu trữ trong bộ nhớ khả biến (volatile memory)—tmp là viết tắt của temporary (tạm thời)—thay vì trên một thiết bị lưu trữ bền vững.

Bạn sẽ muốn thay thế tham số tmpfs bằng loại tệp mà bạn quan tâm.

Chúng ta cũng đã thực thi một lệnh để liệt kê các hệ thống tệp ext4. Trên máy tính thử nghiệm này, có một hệ thống tệp ext4 duy nhất, nó nằm trên thiết bị sda—thiết bị lưu trữ đầu tiên được gắn, thường là ổ đĩa cứng chính—và được gắn tại /, là thư mục gốc của cây hệ thống tệp.

Các chỉ báo khác có ý nghĩa:

  • rw: Hệ thống tệp có thể đọc và ghi được (readable and writable).
  • relatime: Kernel đang sử dụng một cơ chế tối ưu hóa để ghi lại siêu dữ liệu về thời gian truy cập và sửa đổi tệp.
  • errors=remount -o: Nếu một lỗi đủ nghiêm trọng được phát hiện, hệ thống tệp sẽ được gắn lại (remount) ở chế độ chỉ đọc để cho phép chẩn đoán.

3. Truy vấn hệ thống tệp bằng lệnh Df

Lệnh df (disk free) cũng có thể được sử dụng để hiển thị các hệ thống tệp nào đang được gắn và các điểm gắn kết của chúng.

Sử dụng df mà không có tham số sẽ gây ra vấn đề quá tải thông tin tương tự như mount. Ví dụ, trong Ubuntu Linux, có một hệ thống tệp giả lập squashfs được tạo ra cho mọi ứng dụng được cài đặt bằng lệnh snap. Ai muốn xem tất cả những thứ đó?

Để buộc df bỏ qua chúng—hoặc bất kỳ loại hệ thống tệp nào khác—hãy sử dụng tùy chọn -x (exclude – loại trừ):

df -x squashfs

cach gan va ngat ket noi cac thiet bi luu tru tu giao dien dong lenh

Bạn có thể dễ dàng thấy tên của các hệ thống tệp, dung lượng, không gian đã sử dụng và còn trống, cùng với các điểm gắn kết của chúng.

4. Gắn lại tất cả hệ thống tệp trong Fstab

Tất cả các hệ thống tệp được gắn khi khởi động đều có các mục nhập trong một tệp gọi là fstab (file system table), nằm trong thư mục /etc.

Bạn có thể sử dụng mount để buộc “làm mới” và gắn lại tất cả các hệ thống tệp được liệt kê trong fstab. Trong điều kiện hoạt động bình thường, điều này là không cần thiết. Nó thực sự phát huy tác dụng nếu bạn gặp sự cố với nhiều hệ thống tệp.

Bạn sẽ cần sử dụng sudo, vì vậy bạn sẽ được nhắc nhập mật khẩu.

sudo mount -a

cach gan va ngat ket noi cac thiet bi luu tru tu giao dien dong lenh

Thừa nhận rằng, trên một máy tính hoạt động chính xác, điều này có vẻ hơi “bình thường”.

Tuy nhiên, trên một máy tính có sự cố hệ thống tệp, việc gắn lại (remount) có thể giải quyết được các vấn đề. Nếu điều đó không xảy ra, thì ít nhất bạn sẽ nhận được các thông báo chẩn đoán trên màn hình và trong nhật ký hệ thống để hướng dẫn bạn tìm ra nguyên nhân của sự cố.

5. Gắn một ảnh ISO (ISO image)

Rất dễ dàng để gắn một ảnh ISO để bạn có thể truy cập nội dung của nó như một phần của hệ thống tệp.

Điều này sẽ hoạt động với bất kỳ ảnh ISO nào. Trong ví dụ này, chúng ta đang sử dụng ảnh ISO Tiny Core Linux vì nó nhỏ gọn và tải xuống nhanh chóng. (Một bản phân phối Linux tí hon với giao diện người dùng đồ họa (GUI), chỉ trong 18 MB!).

Trong cùng thư mục với ảnh ISO, hãy thực thi lệnh này. Thay thế tên của tệp ISO mà bạn đang gắn.

sudo mount -t iso9660 -o loop TinyCore-current.iso /mnt

cach gan va ngat ket noi cac thiet bi luu tru tu giao dien dong lenh

Vì chúng ta cần sử dụng sudo, bạn sẽ cần nhập mật khẩu của mình.

  • Tùy chọn -t (type) cho mount biết loại hệ thống tệp chúng ta đang gắn. Đó là một tệp ISO, vì vậy chúng ta cung cấp thông số iso9660.
  • Cờ -o (options) được sử dụng để truyền các tham số bổ sung cho mount. Tham số của chúng ta là loop.

Chúng ta đang sử dụng loop để buộc mount sử dụng một tệp thiết bị vòng lặp (loop device file) để kết nối với ảnh ISO của chúng ta. Tệp thiết bị vòng lặp cho phép một tệp (như ảnh ISO) được gắn và được xử lý như thể nó là một thiết bị lưu trữ.

Các tệp thiết bị là các tệp đặc biệt được sử dụng làm giao diện để các thiết bị được kết nối xuất hiện như thể chúng là một tệp hệ thống tệp thông thường. Đây là một phần của triết lý thiết kế “mọi thứ trong Linux là một tệp”.

Có nhiều loại tệp thiết bị khác nhau. Chúng ta đã thấy một loại trước đó khi chúng ta nhận thấy rằng hệ thống tệp ext4 duy nhất trên máy thử nghiệm này được gắn tại / và được gọi là sda.

Nói chính xác hơn, hệ thống tệp ext4 đó nằm trên một thiết bị lưu trữ được kết nối với hệ thống tệp thông qua tệp thiết bị/dev/sda và hệ thống tệp trên thiết bị lưu trữ đó được gắn tại /.

Tất nhiên, chúng ta phải cung cấp tên của ảnh ISO và chúng ta cần cho mount biết nơi chúng ta muốn hệ thống tệp được gắn. Chúng ta đã chọn /mnt.

Ảnh ISO đã được gắn. Một lời nhắc rằng ảnh ISO luôn được gắn ở chế độ chỉ đọc (read-only) sẽ xuất hiện trong cửa sổ terminal.

6. Khám phá ảnh ISO

Sau khi ảnh ISO đã được gắn (mounted), chúng ta có thể điều hướng các thư mục trong ảnh ISO đó theo cách tương tự như bất kỳ phần nào khác của hệ thống tệp. Hãy liệt kê các tệp trong ảnh ISO. Hãy nhớ rằng nó được gắn tại thư mục /mnt.

ls /mnt
ls /mnt/cde/

cach gan va ngat ket noi cac thiet bi luu tru tu giao dien dong lenh

7. Ngắt kết nối (Unmounting) ảnh ISO

Để ngắt kết nối một hệ thống tệp đã được gắn, hãy sử dụng lệnh umount. Lưu ý rằng không có chữ “n” giữa “u” và “m”—lệnh là umount chứ không phải “unmount.”

Bạn phải cho umount biết hệ thống tệp nào bạn đang ngắt kết nối. Thực hiện điều đó bằng cách cung cấp điểm gắn kết (mount point) của hệ thống tệp đó.

sudo umount /mnt

cach gan va ngat ket noi cac thiet bi luu tru tu giao dien dong lenh

Không có thông báo là tin tốt. Nếu không có gì được báo cáo, nghĩa là mọi thứ đã diễn ra suôn sẻ.

8. Tạo điểm gắn kết (Mount point)

Bạn có thể tự tạo và sử dụng các điểm gắn kết của riêng mình. Chúng ta sẽ tạo một điểm gọi là isomnt và gắn ảnh ISO của chúng ta lên đó. Một điểm gắn kết chỉ là một thư mục. Vì vậy, chúng ta có thể sử dụng lệnh mkdir để tạo điểm gắn kết mới của mình.

sudo mkdir /media/dave/isomnt

cach gan va ngat ket noi cac thiet bi luu tru tu giao dien dong lenh

Bây giờ chúng ta có thể sử dụng cùng một định dạng lệnh như trước để gắn ảnh ISO của mình. Lần này, chúng ta sẽ không gắn nó vào /mnt, mà sẽ gắn vào /media/dave/isomnt/:

sudo mount -r -t iso9660 -o loop TinyCore-current.iso /media/dave/isomnt/

cach gan va ngat ket noi cac thiet bi luu tru tu giao dien dong lenh

Bây giờ chúng ta có thể truy cập hệ thống tệp đã được gắn từ điểm gắn kết mới của mình.

ls /media/dave/isomnt/cde/optional

cach gan va ngat ket noi cac thiet bi luu tru tu giao dien dong lenh

Nhưng các đường dẫn đó đang trở nên rất dài. Điều đó sẽ nhanh chóng trở nên nhàm chán. Hãy làm gì đó với vấn đề này.

9. Liên kết (Binding) một điểm gắn kết

Bạn có thể liên kết (bind) một điểm gắn kết với một thư mục khác. Hệ thống tệp đã được gắn sau đó có thể được truy cập thông qua điểm gắn kết gốc hoặc thông qua thư mục được liên kết với nó.

Đây là một ví dụ thực hành. Chúng ta sẽ tạo một thư mục trong thư mục nhà (home directory) của mình gọi là iso. Sau đó, chúng ta sẽ liên kết điểm gắn kết của ảnh ISO /media/dave/isomnt/ với thư mục iso mới trong thư mục nhà của chúng ta.

Chúng ta sẽ có thể truy cập ảnh ISO thông qua điểm gắn kết gốc /media/dave/isomnt/ và thông qua thư mục iso mới. Tùy chọn -B (bind) yêu cầu tên của điểm gắn kết và tên của thư mục để liên kết nó.

mkdir iso
sudo mount -B /media/dave/isomnt/ iso
ls iso
ls /media/dave/isomnt
cd iso
ls
cd cde

cach gan va ngat ket noi cac thiet bi luu tru tu giao dien dong lenh

10. Sử dụng Umount với các liên kết

Một hệ thống tệp mà điểm gắn kết của nó đã được liên kết với một thư mục khác yêu cầu phải được ngắt kết nối khỏi điểm gắn kết gốc và điểm liên kết (bind point).

Ngay cả khi chúng ta ngắt kết nối hệ thống tệp khỏi điểm gắn kết gốc của nó, bạn vẫn có thể truy cập hệ thống tệp từ thư mục liên kết của nó. Hệ thống tệp phải được ngắt kết nối khỏi thư mục đó nữa.

sudo umount /media/dave/isomnt
ls iso
sudo umount iso
ls iso

cach gan va ngat ket noi cac thiet bi luu tru tu giao dien dong lenh

11. Gắn ổ cứng mềm

Một ổ cứng mềm (có đĩa mềm bên trong) là một thiết bị lưu trữ. Điều đó có nghĩa là một tệp thiết bị sd (viết tắt của storage device) sẽ được sử dụng để kết nối với thiết bị vật lý. Chúng ta phải xác định tệp thiết bị sd tiếp theo còn trống là gì. Chúng ta có thể làm điều này bằng cách truyền đầu ra của lệnh df qua grep và tìm kiếm các mục có chứa “sd” trong đó.

df | grep /dev/sd

cach gan va ngat ket noi cac thiet bi luu tru tu giao dien dong lenh

Trên máy tính này, có một tệp thiết bị sd đang được sử dụng. Đó là /dev/sda. Tệp thiết bị sd tiếp theo được cấp phát sẽ là /dev/sdb. Điều đó có nghĩa là khi chúng ta kết nối ổ cứng mềm với máy tính, Linux sẽ sử dụng /dev/sdb để kết nối với ổ đĩa mềm.

Chúng ta sẽ yêu cầu mount gắn hệ thống tệp trên đĩa mềm trong ổ cứng mềm được kết nối với /dev/sdb vào điểm gắn kết /mnt.

Lắp đĩa mềm vào ổ cứng mềm và kết nối ổ cứng mềm với cổng USB trên máy tính. Thực hiện lệnh sau:

sudo mount /dev/sdb /mnt

cach gan va ngat ket noi cac thiet bi luu tru tu giao dien dong lenh

12. Nhãn hệ thống tệp

Chúng ta có thể sử dụng tùy chọn -l (label) với mount để tìm hiểu nhãn nào (nếu có) được gắn vào một hệ thống tệp. Nhãn không hơn gì những tên tùy ý. Chúng không có mục đích chức năng.

Chúng ta đang sử dụng tùy chọn -t (type) để yêu cầu mount chỉ báo cáo về các hệ thống tệp vfat.

mount -l -t vfat

cach gan va ngat ket noi cac thiet bi luu tru tu giao dien dong lenh

Bạn sẽ tìm thấy nhãn trong dấu ngoặc vuông ở cuối danh sách. Nhãn cho ổ cứng mềm này là NORTUN.

Chúng ta có thể truy cập ổ đĩa mềm thông qua điểm gắn kết /mnt.

cd /mnt
ls
ls -l AMATCH.C

cach gan va ngat ket noi cac thiet bi luu tru tu giao dien dong lenh

Đĩa mềm chứa các tệp mã nguồn ngôn ngữ C. Dấu thời gian của một tệp cho thấy lần sửa đổi cuối cùng là vào tháng 10 năm 1992. (Mặc dù ý nghĩa của NORTUN như một nhãn đã bị thất lạc theo thời gian).

Nếu chúng ta lặp lại lệnh df được truyền qua grep để liệt kê các tệp thiết bị sd, chúng ta sẽ thấy hiện có hai tệp.

df | grep /dev/sd

cach gan va ngat ket noi cac thiet bi luu tru tu giao dien dong lenh

Ổ cứng mềm của chúng ta hiển thị đang được gắn trên /dev/sdb như chúng ta mong đợi. Hệ thống tệp trên đĩa mềm trong ổ cứng được gắn tại /mnt.

Để ngắt kết nối ổ cứng mềm, chúng ta sử dụng umount và truyền tệp thiết bị cho nó làm tham số.

sudo umount /dev/sdb

13. Tùy chọn Umount Lazy

Điều gì sẽ xảy ra nếu bạn (hoặc người dùng khác) đang sử dụng hệ thống tệp khi bạn cố gắng ngắt kết nối nó? Việc ngắt kết nối sẽ thất bại.

sudo umount /dev/sdb

cach gan va ngat ket noi cac thiet bi luu tru tu giao dien dong lenh

Nó thất bại vì thư mục làm việc hiện tại (current working directory) của người dùng nằm bên trong hệ thống tệp mà họ đang cố gắng ngắt kết nối. Linux đủ thông minh để không cho phép bạn “cưa cành cây mà bạn đang ngồi trên đó.”

Để khắc phục điều này, hãy sử dụng tùy chọn -l (lazy – lười biếng). Điều này khiến umount chờ cho đến khi hệ thống tệp có thể được ngắt kết nối một cách an toàn.

sudo umount -l /dev/sdb
ls
cd ~
ls /mnt

cach gan va ngat ket noi cac thiet bi luu tru tu giao dien dong lenh

Mặc dù lệnh umount đã được thực thi, hệ thống tệp vẫn được gắn và người dùng có thể liệt kê các tệp như bình thường.

Ngay sau khi người dùng thay đổi thư mục về thư mục nhà của họ, hệ thống tệp đĩa mềm sẽ được giải phóng và ngắt kết nối. Việc cố gắng liệt kê các tệp trong /mnt không tạo ra kết quả.

14. Gắn chia sẻ Samba (Samba share)

Samba là một tập hợp các dịch vụ phần mềm cho phép truy cập các chia sẻ mạng một cách hoán đổi giữa Linux, các hệ điều hành tương tự Unix và hệ điều hành Windows.

Việc thiết lập Samba nằm ngoài phạm vi của bài viết này. Nhưng, nếu bạn có quyền truy cập được ủy quyền vào một chia sẻ Samba đã được cung cấp cho bạn, đây là cách bạn có thể gắn nó trong Linux.

Một Raspberry Pi được kết nối với cùng một mạng với máy thử nghiệm có một chia sẻ Samba trên đó. Đó là một thư mục tên là Backup đã được đặt tên Samba là “share.” Hãy thực hiện kết nối SSH đến nó và xem nội dung của thư mục được chia sẻ. Thư mục được chia sẻ nằm trên một USB được gắn trên Pi.

Tên người dùng là pi và tên mạng của Raspberry Pi là marineville.local.

ssh pi@marineville.local
ls /media/pi/USB64/Backup
exit

cach gan va ngat ket noi cac thiet bi luu tru tu giao dien dong lenh

Người dùng thực hiện lệnh SSH và được nhắc nhập mật khẩu Raspberry Pi của họ.

Họ cung cấp mật khẩu và được xác thực. Dấu nhắc cửa sổ terminal thay đổi thành pi@marineville vì nó được kết nối với Raspberry Pi.

Họ liệt kê nội dung của thư mục được chia sẻ tại /media/pi/USB64/Backup. Nội dung là hai thư mục, một thư mục tên là dave và một thư mục tên là pat. Vì vậy, bây giờ chúng ta biết điều gì sẽ xảy ra khi chúng ta gắn chia sẻ Samba.

Họ gõ exit để ngắt kết nối khỏi Raspberry Pi và dấu nhắc quay trở lại thành dave@howtogeek.

Để sử dụng Samba, bạn phải cài đặt gói cifs-utils.

Sử dụng apt-get để cài đặt gói này lên hệ thống của bạn nếu bạn đang sử dụng Ubuntu hoặc một bản phân phối dựa trên Debian khác. Trên các bản phân phối Linux khác, hãy sử dụng công cụ quản lý gói của bản phân phối Linux đó.

sudo apt-get install cifs-utils

cach gan va ngat ket noi cac thiet bi luu tru tu giao dien dong lenh

Khi quá trình cài đặt hoàn tất, hãy gắn chia sẻ bằng một lệnh như sau, thay đổi địa chỉ IP, tên chia sẻ và điểm gắn kết (vốn phải tồn tại) để phù hợp với hoàn cảnh của bạn.

sudo mount -t cifs -o credentials=/etc/samba/creds,uid=1000,gid=1000 //192.168.4.13/share /media/dave/NAS

cach gan va ngat ket noi cac thiet bi luu tru tu giao dien dong lenh

Hãy phân tích các phần của lệnh đó:

  • -t cifs: Loại hệ thống tệp là cifs (Common Internet File System).
  • -o credentials=/etc/samba/creds,uid=1000,gid=1000: Các tham số tùy chọn là đường dẫn đến một tệp gọi là creds được bảo mật và chứa tên người dùng và mật khẩu cho người dùng Raspberry Pi; ID Người dùng (UID) và ID Nhóm (GID) được sử dụng để thiết lập chủ sở hữu và nhóm của thư mục gốc của hệ thống tệp.
  • //192.168.4.13/share: Vị trí mạng của thiết bị có chia sẻ Samba trên đó và tên Samba của thư mục được chia sẻ. Thư mục gốc của chia sẻ là một thư mục tên là Backup, nhưng tên chia sẻ Samba của nó được đặt thành share.
  • /media/dave/NAS: Tên của điểm gắn kết. Bạn phải tạo điểm gắn kết của mình trước.

Bằng cách truy cập điểm gắn kết của chúng ta tại /media/dave/NAS, chúng ta đang truy cập thư mục được chia sẻ trên Raspberry Pi qua mạng. Chúng ta có thể thấy hai thư mục trên Raspberry Pi được gọi là davepat.

cd /media/dave/NAS

cach gan va ngat ket noi cac thiet bi luu tru tu giao dien dong lenh

15. Tạo và gắn một hệ thống tệp

Bạn có thể sử dụng lệnh dd để tạo một tệp ảnh (image file), sau đó sử dụng mkfs để tạo một hệ thống tệp bên trong nó. Hệ thống tệp đó sau đó có thể được gắn. Đây là một cách tốt để thực hành và thử nghiệm với mount.

Chúng ta sử dụng tùy chọn if (input file) để yêu cầu dd sử dụng luồng giá trị 0 từ /dev/zero làm tệp đầu vào.

Tùy chọn of (output file) là một tệp mới gọi là geek_fs.

Chúng ta đang sử dụng tùy chọn bs (block size) để yêu cầu kích thước khối là 1 MB.

Chúng ta sử dụng tùy chọn count để yêu cầu dd bao gồm 20 khối trong tệp đầu ra.

dd if=/dev/zero of./geek_fs bs=1M count=20

cach gan va ngat ket noi cac thiet bi luu tru tu giao dien dong lenh

Điều đó tạo ra tệp ảnh của chúng ta. Nó không chứa gì ngoài các giá trị 0.

Chúng ta có thể tạo một hệ thống tệp hoạt động bên trong tệp geek_fs bằng cách sử dụng lệnh mkfs (make file system). Tùy chọn -t (type) cho phép chúng ta chọn loại hệ thống tệp. Chúng ta đang tạo một hệ thống ext4.

mkfs -t ext4 ./geek_fs

cach gan va ngat ket noi cac thiet bi luu tru tu giao dien dong lenh

Chỉ cần như vậy là có một hệ thống tệp hoạt động.

Hãy gắn nó vào /media/dave/geek và sau đó sử dụng chown để thiết lập quyền sở hữu chủ sở hữu và nhóm để cho phép truy cập vào nó.

sudo mount ./geek_fs /media/dave/geek
sudo chown dave:users /media/dave/geek

cach gan va ngat ket noi cac thiet bi luu tru tu giao dien dong lenh

Nó có hoạt động không? Hãy chuyển vào hệ thống tệp mới và sao chép một tệp vào để xem.

cd /media/dave/geek
cp /etc/fstab .
ls -l

cach gan va ngat ket noi cac thiet bi luu tru tu giao dien dong lenh

Chúng ta đã có thể thay đổi thư mục vào hệ thống tệp mới và chúng ta đã sao chép thành công tệp /etc/fstab. Nó đang hoạt động!

Nếu chúng ta sử dụng mount để liệt kê các hệ thống tệp đã được gắn nhưng hạn chế đầu ra của nó đối với các hệ thống tệp ext4 bằng cách sử dụng tùy chọn -t (type), chúng ta sẽ thấy hiện có hai hệ thống tệp ext4 đã được gắn.

mount -t ext4

cach gan va ngat ket noi cac thiet bi luu tru tu giao dien dong lenh

16. Gắn lại (Remounting) một hệ thống tệp

Việc gắn lại một hệ thống tệp sử dụng tùy chọn -o remount. Thao tác này thường được thực hiện để chuyển một hệ thống tệp từ trạng thái chỉ đọc (read-only) (thử nghiệm) sang trạng thái đọc-ghi (read-write) (sản xuất).

Hãy gắn lại ổ đĩa mềm của chúng ta. Lần này chúng ta sẽ sử dụng cờ -r (read-only). Sau đó, chúng ta sẽ truyền mount qua grep và xem chi tiết hệ thống tệp đĩa mềm.

sudo mount -r /dev/sdb /mnt
mount | grep /mnt

cach gan va ngat ket noi cac thiet bi luu tru tu giao dien dong lenh

Như bạn có thể thấy, chữ ro được làm nổi bật cho biết hệ thống tệp được gắn ở chế độ chỉ đọc.

Sử dụng tùy chọn -o remount cùng với cờ rw (read-write), chúng ta có thể ngắt kết nối và gắn lại hệ thống tệp với các cài đặt mới, tất cả chỉ trong một lệnh.

sudo mount -o remount,rw /mnt

Lặp lại việc truyền mount qua grep cho chúng ta thấy ro đã được thay thế bằng rw (được làm nổi bật). Hệ thống tệp hiện đã ở chế độ đọc-ghi.

mount | grep /mnt

17. (Không thể) Di chuyển (Moving) một hệ thống tệp

Trước đây, bạn có thể ngắt kết nối một hệ thống tệp và gắn lại nó trên một điểm gắn kết khác chỉ bằng một lệnh duy nhất.

Tùy chọn -M (move) trong mount tồn tại cụ thể để cho phép bạn làm điều đó. Nhưng nó không còn hoạt động trong các bản phân phối Linux đã chuyển sang sử dụng systemd. Và đó là hầu hết các tên tuổi lớn.

Nếu chúng ta cố gắng di chuyển một hệ thống tệp từ /mnt sang ./geek, nó sẽ thất bại và đưa ra thông báo lỗi như hình dưới đây. Việc cố gắng liệt kê các tệp trong hệ thống tệp thông qua ./geek không trả về kết quả nào.

sudo mount -M /mnt ./geek
ls ./geek

cach gan va ngat ket noi cac thiet bi luu tru tu giao dien dong lenh

Cách giải quyết là sử dụng tùy chọn -B (bind) mà chúng ta đã sử dụng trước đó để liên kết điểm gắn kết gốc với điểm gắn kết mới.

sudo mount -B /mnt ./geek
ls ./geek

Ngoài việc không giải phóng điểm gắn kết gốc, điều này sẽ mang lại kết quả thực tế tương tự.

18. Quan sát cuối cùng

Sử dụng tùy chọn --make-private đã từng có thể buộc việc di chuyển diễn ra trên các phiên bản Linux sử dụng systemd. Kỹ thuật đó không được trình bày ở đây vì hai lý do:

  • Nó có thể có hành vi khó lường.
  • Nó không duy trì và sẽ cần lặp lại ở mỗi lần khởi động lại.

Devuan Linux sử dụng SysV init chứ không phải systemd. Một máy tính đã được tải phiên bản Devuan mới nhất và được thử nghiệm. Tùy chọn -M (move) đã hoạt động như mong đợi trên hệ thống đó.

Ngoại trừ các sự cố của systemd với tùy chọn -M (move), bạn sẽ thấy việc sử dụng mountumount khá đơn giản. Đây là những lệnh tuyệt vời nên có sẵn khi đối mặt với một hệ thống bị hỏng và bạn phải bắt đầu ghép các mảnh hệ thống tệp lại với nhau bằng tay.

Danh mục các lệnh Linux phổ biến (Linux Commands Cheat Sheet)

Dưới đây là bảng tổng hợp các lệnh Linux cốt lõi được phân loại theo chức năng chính (Tệp, Tiến trình và Mạng) trong hệ điều hành Linux.

Nhóm chức năngLệnh (Command)Chức năng chính (Mục đích sử dụng)
Tệp (Files)tarLưu trữ và nén các tệp.
pvGiám sát tiến trình dữ liệu qua pipe.
catHiển thị nội dung tệp.
tacHiển thị nội dung tệp ngược (từ cuối lên).
chmodThay đổi quyền truy cập tệp/thư mục.
grepTìm kiếm chuỗi (pattern) trong tệp.
diffSo sánh hai tệp.
sedBộ chỉnh sửa dòng lệnh (stream editor).
arTạo, sửa đổi và trích xuất từ kho lưu trữ.
manXem trang hướng dẫn (manual) của lệnh.
pushdLưu thư mục hiện tại và thay đổi thư mục.
popdKhôi phục thư mục đã lưu.
fsckKiểm tra và sửa chữa hệ thống tệp.
testdiskCông cụ khôi phục phân vùng và tệp.
seqIn ra một chuỗi số.
fdCông cụ tìm kiếm tệp nhanh và thân thiện hơn find.
pandocChuyển đổi tệp giữa các định dạng đánh dấu khác nhau.
cdThay đổi thư mục (Change Directory).
$PATHBiến môi trường liệt kê các thư mục chứa chương trình thực thi.
awkNgôn ngữ xử lý và phân tích văn bản.
joinKết hợp các dòng từ hai tệp dựa trên trường chung.
jqBộ xử lý JSON trên dòng lệnh.
foldNgắt các dòng dài.
uniqLọc các dòng trùng lặp liền kề.
journalctlXem nhật ký từ hệ thống systemd.
tailHiển thị phần cuối của tệp.
statHiển thị trạng thái tệp hoặc hệ thống tệp.
lsLiệt kê nội dung thư mục.
fstabTệp cấu hình hệ thống tệp được gắn khi khởi động.
echoHiển thị một chuỗi ký tự.
lessTrình xem tệp tương tác.
chgrpThay đổi nhóm sở hữu tệp.
chownThay đổi chủ sở hữu và nhóm sở hữu tệp.
revĐảo ngược thứ tự các ký tự trong mỗi dòng của tệp.
lookHiển thị các dòng bắt đầu bằng chuỗi cho trước.
stringsIn các chuỗi ký tự có thể in được trong tệp nhị phân.
typeMô tả lệnh đã cho.
renameĐổi tên hàng loạt tệp.
zipNén tệp thành định dạng .zip.
unzipGiải nén tệp .zip.
mountGắn hệ thống tệp.
umountNgắt kết nối hệ thống tệp.
installSao chép và thiết lập thuộc tính tệp.
fdiskCông cụ quản lý phân vùng đĩa.
mkfsTạo hệ thống tệp.
rmXóa tệp/thư mục (remove).
rmdirXóa thư mục trống.
rsyncĐồng bộ hóa tệp từ xa và cục bộ.
dfBáo cáo dung lượng đĩa trống.
gpgCông cụ mã hóa/giải mã GnuPG.
vi / nanoCác trình chỉnh sửa văn bản trên terminal.
mkdirTạo thư mục mới.
duBáo cáo mức sử dụng không gian đĩa.
lnTạo liên kết tệp (link).
patchÁp dụng các thay đổi cho tệp văn bản.
convertChuyển đổi định dạng hình ảnh (ImageMagick).
rcloneĐồng bộ hóa tệp với các dịch vụ lưu trữ đám mây.
shredGhi đè lên tệp để xóa dữ liệu an toàn.
srmCông cụ xóa tệp an toàn (secure remove).
scpSao chép tệp an toàn qua mạng (SSH).
gzipNén tệp bằng thuật toán Lempel–Ziv.
chattrThay đổi thuộc tính tệp trên hệ thống ext.
cutCắt các phần của dòng từ tệp.
findTìm kiếm tệp trong hệ thống phân cấp thư mục.
umaskĐặt quyền mặc định cho các tệp/thư mục mới.
wcĐếm số dòng, từ và ký tự trong tệp.
trDịch hoặc xóa các ký tự.
Tiến trình (Processes)aliasTạo bí danh (tên tắt) cho các lệnh.
screen / tmuxQuản lý nhiều phiên terminal trong một cửa sổ.
topHiển thị các tiến trình đang chạy và mức sử dụng hệ thống.
nice / reniceĐặt/thay đổi mức độ ưu tiên của tiến trình.
progressGiám sát tiến trình của các lệnh sao chép.
straceTheo dõi các lệnh gọi hệ thống của tiến trình.
systemdHệ thống quản lý và khởi tạo dịch vụ/tiến trình.
chshThay đổi shell đăng nhập.
historyHiển thị lịch sử các lệnh đã gõ.
at / batchLên lịch thực thi lệnh một lần trong tương lai.
freeHiển thị dung lượng bộ nhớ khả dụng và đã sử dụng.
whichĐịnh vị tệp thực thi của lệnh.
dmesgHiển thị bộ đệm thông báo kernel.
chfnThay đổi thông tin ngón tay (finger information).
usermodSửa đổi tài khoản người dùng.
psBáo cáo trạng thái của tiến trình hiện tại.
chrootThay đổi thư mục gốc của tiến trình đang chạy.
xargsXây dựng và thực thi các dòng lệnh từ đầu vào chuẩn.
ttyIn tên của terminal được kết nối với đầu vào chuẩn.
pinkyCông cụ thông tin người dùng nhẹ.
lsofLiệt kê các tệp đang mở.
vmstatBáo cáo thống kê bộ nhớ ảo.
timeoutThực thi lệnh với giới hạn thời gian.
wallGửi tin nhắn đến tất cả người dùng đang đăng nhập.
yesIn một chuỗi lặp đi lặp lại (thường là ‘y’).
killGửi tín hiệu đến các tiến trình (thường để chấm dứt).
sleepTạm dừng thực thi trong một khoảng thời gian.
sudo / suThực thi lệnh với quyền của người dùng khác (root).
timeĐo thời gian thực thi của lệnh.
groupadd / usermod / groupsQuản lý và xem nhóm người dùng.
lshwLiệt kê cấu hình phần cứng.
shutdown / reboot / halt / poweroffQuản lý việc tắt/khởi động lại hệ thống.
passwdThay đổi mật khẩu người dùng.
lscpuHiển thị thông tin về CPU.
crontabQuản lý các công việc định kỳ (cron jobs).
dateIn hoặc thiết lập ngày giờ hệ thống.
bg / fgChuyển tiến trình nền/trước (background/foreground).
pidof / nohupTìm ID tiến trình / Chạy lệnh miễn nhiễm với SIGHUP.
pmapBáo cáo bản đồ bộ nhớ của tiến trình.
Mạng (Networking)netstatIn các kết nối mạng, bảng định tuyến, v.v.
pingKiểm tra kết nối mạng và độ trễ.
tracerouteTheo dõi tuyến đường gói tin đến máy chủ.
ipCông cụ quản lý định tuyến, thiết bị mạng, v.v.
ssCông cụ thay thế netstat để xem socket.
whoisTruy vấn thông tin đăng ký tên miền/IP.
fail2banDịch vụ ngăn chặn tấn công dò mật khẩu.
bmonCông cụ giám sát băng thông mạng.
digCông cụ tra cứu DNS.
fingerCông cụ tra cứu thông tin người dùng (ít dùng).
nmapCông cụ quét cổng và khám phá mạng.
ftp / curl / wgetCác công cụ truyền tệp và tải xuống qua mạng.
who / whoami / wHiển thị người dùng đang đăng nhập.
iptables / ufw / firewalldCác công cụ quản lý tường lửa Linux.
ssh-keygenTạo, quản lý và chuyển đổi khóa xác thực SSH.
arpingGửi gói tin ARP để xác minh địa chỉ MAC.

19. Kết luận

Gắn và ngắt kết nối các thiết bị lưu trữ từ giao diện dòng lệnh Linux là một kỹ năng mạnh mẽ, giúp bạn quản lý thiết bị một cách linh hoạt và hiệu quả. Với các lệnh được hướng dẫn chi tiết, bạn có thể dễ dàng thao tác trên hệ thống Linux, đảm bảo an toàn dữ liệu và tối ưu hóa quy trình làm việc. Hãy áp dụng ngay để làm chủ hệ điều hành mã nguồn mở và nâng cao kỹ năng công nghệ của mình!

Xem thêm: Hướng dẫn cách sử dụng Click to Do để thực hiện các hành động AI cho văn bản và hình ảnh trên Windows 11

Nếu bạn cần thêm hỗ trợ về quản lý thiết bị trên Linux hoặc đang tìm kiếm các thiết bị lưu trữ chất lượng để tối ưu hóa trải nghiệm, hãy ghé thăm COHOTECH – cửa hàng công nghệ uy tín với đa dạng sản phẩm hiện đại và dịch vụ tư vấn tận tâm, luôn sẵn sàng đồng hành cùng bạn trong mọi nhu cầu công nghệ.

Hãy để lại bình luận bên dưới để chia sẻ trải nghiệm của bạn khi sử dụng dòng lệnh Linux hoặc đặt câu hỏi nếu cần thêm sự trợ giúp. Đừng quên chia sẻ bài viết này với bạn bè và cộng đồng Linux để cùng khám phá những mẹo kỹ thuật hữu ích! Cảm ơn bạn đã đọc và ủng hộ!

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *