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

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, umount và remount 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:

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.

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

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

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

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

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) chomountbiế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 chomount. 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/

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

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

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/

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

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

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
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

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

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

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

Đĩ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

Ổ 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

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

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

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

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

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ànhshare./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à dave và pat.
cd /media/dave/NAS

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

Đ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

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

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

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

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

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

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 mount và umount 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ăng | Lệnh (Command) | Chức năng chính (Mục đích sử dụng) |
| Tệp (Files) | tar | Lưu trữ và nén các tệp. |
| pv | Giám sát tiến trình dữ liệu qua pipe. | |
| cat | Hiển thị nội dung tệp. | |
| tac | Hiển thị nội dung tệp ngược (từ cuối lên). | |
| chmod | Thay đổi quyền truy cập tệp/thư mục. | |
| grep | Tìm kiếm chuỗi (pattern) trong tệp. | |
| diff | So sánh hai tệp. | |
| sed | Bộ chỉnh sửa dòng lệnh (stream editor). | |
| ar | Tạo, sửa đổi và trích xuất từ kho lưu trữ. | |
| man | Xem trang hướng dẫn (manual) của lệnh. | |
| pushd | Lưu thư mục hiện tại và thay đổi thư mục. | |
| popd | Khôi phục thư mục đã lưu. | |
| fsck | Kiểm tra và sửa chữa hệ thống tệp. | |
| testdisk | Công cụ khôi phục phân vùng và tệp. | |
| seq | In ra một chuỗi số. | |
| fd | Công cụ tìm kiếm tệp nhanh và thân thiện hơn find. | |
| pandoc | Chuyển đổi tệp giữa các định dạng đánh dấu khác nhau. | |
| cd | Thay đổi thư mục (Change Directory). | |
| $PATH | Biến môi trường liệt kê các thư mục chứa chương trình thực thi. | |
| awk | Ngôn ngữ xử lý và phân tích văn bản. | |
| join | Kết hợp các dòng từ hai tệp dựa trên trường chung. | |
| jq | Bộ xử lý JSON trên dòng lệnh. | |
| fold | Ngắt các dòng dài. | |
| uniq | Lọc các dòng trùng lặp liền kề. | |
| journalctl | Xem nhật ký từ hệ thống systemd. | |
| tail | Hiển thị phần cuối của tệp. | |
| stat | Hiển thị trạng thái tệp hoặc hệ thống tệp. | |
| ls | Liệt kê nội dung thư mục. | |
| fstab | Tệp cấu hình hệ thống tệp được gắn khi khởi động. | |
| echo | Hiển thị một chuỗi ký tự. | |
| less | Trình xem tệp tương tác. | |
| chgrp | Thay đổi nhóm sở hữu tệp. | |
| chown | Thay đổ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. | |
| look | Hiển thị các dòng bắt đầu bằng chuỗi cho trước. | |
| strings | In các chuỗi ký tự có thể in được trong tệp nhị phân. | |
| type | Mô tả lệnh đã cho. | |
| rename | Đổi tên hàng loạt tệp. | |
| zip | Nén tệp thành định dạng .zip. | |
| unzip | Giải nén tệp .zip. | |
| mount | Gắn hệ thống tệp. | |
| umount | Ngắt kết nối hệ thống tệp. | |
| install | Sao chép và thiết lập thuộc tính tệp. | |
| fdisk | Công cụ quản lý phân vùng đĩa. | |
| mkfs | Tạo hệ thống tệp. | |
| rm | Xóa tệp/thư mục (remove). | |
| rmdir | Xóa thư mục trống. | |
| rsync | Đồng bộ hóa tệp từ xa và cục bộ. | |
| df | Báo cáo dung lượng đĩa trống. | |
| gpg | Công cụ mã hóa/giải mã GnuPG. | |
| vi / nano | Các trình chỉnh sửa văn bản trên terminal. | |
| mkdir | Tạo thư mục mới. | |
| du | Báo cáo mức sử dụng không gian đĩa. | |
| ln | Tạo liên kết tệp (link). | |
| patch | Áp dụng các thay đổi cho tệp văn bản. | |
| convert | Chuyể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. | |
| shred | Ghi đè lên tệp để xóa dữ liệu an toàn. | |
| srm | Công cụ xóa tệp an toàn (secure remove). | |
| scp | Sao chép tệp an toàn qua mạng (SSH). | |
| gzip | Nén tệp bằng thuật toán Lempel–Ziv. | |
| chattr | Thay đổi thuộc tính tệp trên hệ thống ext. | |
| cut | Cắt các phần của dòng từ tệp. | |
| find | Tì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. | |
| tr | Dịch hoặc xóa các ký tự. | |
| Tiến trình (Processes) | alias | Tạo bí danh (tên tắt) cho các lệnh. |
| screen / tmux | Quản lý nhiều phiên terminal trong một cửa sổ. | |
| top | Hiể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. | |
| progress | Giám sát tiến trình của các lệnh sao chép. | |
| strace | Theo dõi các lệnh gọi hệ thống của tiến trình. | |
| systemd | Hệ thống quản lý và khởi tạo dịch vụ/tiến trình. | |
| chsh | Thay đổi shell đăng nhập. | |
| history | Hiển thị lịch sử các lệnh đã gõ. | |
| at / batch | Lên lịch thực thi lệnh một lần trong tương lai. | |
| free | Hiể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. | |
| dmesg | Hiển thị bộ đệm thông báo kernel. | |
| chfn | Thay đổi thông tin ngón tay (finger information). | |
| usermod | Sửa đổi tài khoản người dùng. | |
| ps | Báo cáo trạng thái của tiến trình hiện tại. | |
| chroot | Thay đổi thư mục gốc của tiến trình đang chạy. | |
| xargs | Xây dựng và thực thi các dòng lệnh từ đầu vào chuẩn. | |
| tty | In tên của terminal được kết nối với đầu vào chuẩn. | |
| pinky | Công cụ thông tin người dùng nhẹ. | |
| lsof | Liệt kê các tệp đang mở. | |
| vmstat | Báo cáo thống kê bộ nhớ ảo. | |
| timeout | Thực thi lệnh với giới hạn thời gian. | |
| wall | Gửi tin nhắn đến tất cả người dùng đang đăng nhập. | |
| yes | In một chuỗi lặp đi lặp lại (thường là ‘y’). | |
| kill | Gửi tín hiệu đến các tiến trình (thường để chấm dứt). | |
| sleep | Tạm dừng thực thi trong một khoảng thời gian. | |
| sudo / su | Thự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 / groups | Quản lý và xem nhóm người dùng. | |
| lshw | Liệt kê cấu hình phần cứng. | |
| shutdown / reboot / halt / poweroff | Quản lý việc tắt/khởi động lại hệ thống. | |
| passwd | Thay đổi mật khẩu người dùng. | |
| lscpu | Hiển thị thông tin về CPU. | |
| crontab | Quản lý các công việc định kỳ (cron jobs). | |
| date | In hoặc thiết lập ngày giờ hệ thống. | |
| bg / fg | Chuyển tiến trình nền/trước (background/foreground). | |
| pidof / nohup | Tìm ID tiến trình / Chạy lệnh miễn nhiễm với SIGHUP. | |
| pmap | Báo cáo bản đồ bộ nhớ của tiến trình. | |
| Mạng (Networking) | netstat | In các kết nối mạng, bảng định tuyến, v.v. |
| ping | Kiểm tra kết nối mạng và độ trễ. | |
| traceroute | Theo dõi tuyến đường gói tin đến máy chủ. | |
| ip | Công cụ quản lý định tuyến, thiết bị mạng, v.v. | |
| ss | Công cụ thay thế netstat để xem socket. | |
| whois | Truy vấn thông tin đăng ký tên miền/IP. | |
| fail2ban | Dịch vụ ngăn chặn tấn công dò mật khẩu. | |
| bmon | Công cụ giám sát băng thông mạng. | |
| dig | Công cụ tra cứu DNS. | |
| finger | Công cụ tra cứu thông tin người dùng (ít dùng). | |
| nmap | Công cụ quét cổng và khám phá mạng. | |
| ftp / curl / wget | Các công cụ truyền tệp và tải xuống qua mạng. | |
| who / whoami / w | Hiển thị người dùng đang đăng nhập. | |
| iptables / ufw / firewalld | Các công cụ quản lý tường lửa Linux. | |
| ssh-keygen | Tạo, quản lý và chuyển đổi khóa xác thực SSH. | |
| arping | Gử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!
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ộ!











