104.3 Bài 1
Chứng chỉ: |
LPIC-1 |
---|---|
Phiên bản: |
5.0 |
Chủ đề: |
104 Thiết bị, Hệ thống tệp Linux, Tiêu chuẩn phân cấp hệ thống Tệp |
Mục tiêu: |
104.3 Kiểm soát việc gắn và ngắt gắn kết Hệ thống Tệp |
Bài: |
1 trên 1 |
Giới thiệu
Cho đến nay, chúng ta đã được học về cách phân vùng đĩa cũng như cách tạo và duy trì hệ thống tệp trên đó. Tuy nhiên, trước khi có thể truy cập được hệ thống tệp trên Linux, nó cần được gắn kết (mount).
Điều này có nghĩa là gắn kết hệ thống tệp vào một điểm cụ thể trong cây thư mục của hệ thống được gọi là điểm gắn kết. Hệ thống tệp có thể được gắn kết thủ công hoặc tự động. Trong bài học này, chúng ta sẽ cùng tìm hiểu về một trong số nhiều cách để thực hiện tác vụ nói trên.
Gắn kết và Ngắt Gắn kết Hệ thống Tệp
Lệnh gắn kết hệ thống tệp theo cách thủ công được gọi là mount
và cú pháp của nó là:
mount -t TYPE DEVICE MOUNTPOINT
Trong đó:
TYPE
-
Loại hệ thống tệp được gắn kết (ví dụ: ext4, btrfs, exfat, v.v.).
DEVICE
-
Tên của phân vùng chứa hệ thống tệp (ví dụ:
/dev/sdb1
) MOUNTPOINT
-
Nơi hệ thống tệp sẽ được gắn kết. Thư mục được gắn kết không nhất thiết phải trống nhưng bắt buộc phải tồn tại. Tuy nhiên, các tệp trong thư mục đó sẽ không thể được truy cập theo tên trong khi hệ thống tệp được gắn kết.
Ví dụ: để gắn ổ flash USB chứa hệ thống tệp exFAT nằm trên /dev/sdb1
vào thư mục có tên flash
trong thư mục chính, ta có thể sử dụng:
# mount -t exfat /dev/sdb1 ~/flash/
Tip
|
Có nhiều hệ thống Linux sử dụng vỏ Bash và trên các hệ thống đó, dấu ngã |
Sau khi gắn kết, nội dung của hệ thống tệp sẽ có thể truy cập được trong thư mục ~/flash
:
$ ls -lh ~/flash/ total 469M -rwxrwxrwx 1 root root 454M jul 19 09:49 lineage-16.0-20190711-MOD-quark.zip -rwxrwxrwx 1 root root 16M jul 19 09:44 twrp-3.2.3-mod_4-quark.img
Liệt kê các Hệ thống Tệp được gắn kết
Nếu chỉ nhập mount
, chúng ta sẽ nhận được danh sách tất cả các hệ thống tệp hiện được gắn kết trên hệ thống. Danh sách này có thể sẽ khá dài vì ngoài các đĩa được gắn kết vào hệ thống thì nó còn chứa một số hệ thống tệp thời gian chạy trong bộ nhớ để phục vụ nhiều mục đích khác nhau. Để lọc đầu ra, ta có thể sử dụng tham số -t
để chỉ liệt kê các hệ thống tệp thuộc loại tương ứng như dưới đây:
# mount -t ext4 /dev/sda1 on / type ext4 (rw,noatime,errors=remount-ro)
Chúng ta có thể chỉ định nhiều hệ thống tệp cùng một lúc bằng cách phân tách chúng bằng dấu phẩy:
# mount -t ext4,fuseblk /dev/sda1 on / type ext4 (rw,noatime,errors=remount-ro) /dev/sdb1 on /home/carol/flash type fuseblk (rw,nosuid,nodev,relatime,user_id=0,group_id=0,default_permissions,allow_other,blksize=4096) [DT_8GB]
Đầu ra trong các ví dụ trên có thể được mô tả theo định dạng:
SOURCE on TARGET type TYPE OPTIONS
Trong đó, SOURCE
là phân vùng chứa hệ thống tệp, TARGET
là thư mục nơi nó được gắn kết, TYPE
là loại hệ thống tệp và OPTIONS
là các tùy chọn được truyền cho lệnh mount
tại thời điểm gắn kết.
Tham số Dòng lệnh bổ sung
Có nhiều tham số dòng lệnh có thể được sử dụng với mount
. Một trong các tham số được sử dụng nhiều nhất là:
-a
-
Tham số này sẽ gắn kết tất cả các hệ thống tệp được liệt kê trong tệp
/etc/fstab
(xem thêm trong phần tiếp theo). -o
hoặc--options
-
Tham số này sẽ truyền một danh sách các tuỳ chọn gắn kết được phân tách bằng dấu phẩy sang lệnh mount và có thể thay đổi cách hệ thống tệp được gắn kết. Các tuỳ chọn này cũng sẽ được thảo luận cùng với
/etc/fstab
. -r
hoặc-ro
-
Tuỳ chọn này sẽ gắn kết hệ thống tệp ở dạng chỉ đọc.
-w
hoặc-rw
-
Tuỳ chọn này sẽ gắn hệ thống tệp ở dạng có thể ghi.
Để ngắt gắn kết hệ thống tệp, hãy sử dụng lệnh umount
, theo sau là tên thiết bị hoặc điểm gắn kết. Trong ví dụ trên, các lệnh bên dưới đây có thể được hoán đổi cho nhau:
# umount /dev/sdb1 # umount ~/flash
Một số tham số dòng lệnh cho umount
là:
-a
-
Tham số này sẽ ngắt gắn kết tất cả các hệ thống tệp được liệt kê trong
/etc/fstab
. -f
-
Tham số này sẽ buộc ngắt gắn kết một hệ thống tệp. Nó có thể sẽ hữu ích khi chúng ta gắn kết một hệ thống tệp từ xa hiện không thể truy cập được.
-r
-
Nếu hệ thống tệp không thể ngắt gắn kết được, tham số này sẽ cố gắng biến nó thành chế độ chỉ đọc.
Xử lý các Tệp đang mở
Khi ngắt gắn kết hệ thống tệp, chúng ta có thể sẽ gặp thông báo lỗi cho biết mục tiêu đang bận (target is busy
). Điều này sẽ xảy ra nếu bất kỳ tệp nào trên hệ thống tệp đang mở. Tuy nhiên, chúng ta khó có thể ngay lập tức biết được vị trí của tệp đang mở hoặc cái gì đang truy cập vào hệ thống tệp.
Trong những trường hợp như vậy, ta có thể sử dụng lệnh lsof
, theo sau là tên của thiết bị chứa hệ thống tệp để xem danh sách các tiến trình đang truy cập nó và tệp nào đang mở. Ví dụ:
# umount /dev/sdb1 umount: /media/carol/External_Drive: target is busy. # lsof /dev/sdb1 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME evince 3135 carol 16r REG 8,17 21881768 5195 /media/carol/External_Drive/Documents/E-Books/MagPi40.pdf
COMMAND
là tên của lệnh thực thi đã mở tệp, PID
là số tiến trình và NAME
là tên của tệp đang mở. Trong ví dụ trên, tệp MagPi40.pdf
được mở bởi chương trình evince
(trình xem PDF). Nếu đóng chương trình, chúng ta sẽ có thể ngắt gắn kết hệ thống tệp.
Note
|
Trước khi đầu ra lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1000/gvfs Output information may be incomplete.
|
Nên gắn kết ở đâu?
Ta có thể gắn kết hệ thống tệp vào bất cứ đâu mà mình muốn. Tuy nhiên, có một số quy tắc hữu ích cần được tuân theo để giúp việc quản trị hệ thống trở nên dễ dàng hơn.
Theo truyền thống, /mnt
là thư mục mà tất cả các thiết bị ngoại vi sẽ được gắn kết vào và một số “điểm neo” được cấu hình sẵn cho các thiết bị phổ biến như ổ đĩa quang CD-ROM (/mnt/cdrom
) và đĩa mềm (/mnt /floppy
) sẽ tồn tại dưới nó.
Thư mục này đã được thay thế bởi /media
- hiện là điểm gắn kết mặc định cho bất kỳ phương tiện nào mà người dùng có thể tháo rời (ví dụ: ổ đĩa ngoại vi, ổ USB flash, đầu đọc thẻ nhớ, v.v.) được kết nối với hệ thống.
Trên hầu hết các bản phân phối Linux hiện đại và môi trường máy tính để bàn, các thiết bị di động sẽ được tự động gắn kết vào /media/USER/LABEL
khi được kết nối với hệ thống. Trong đó, USER
là tên người dùng và LABEL
là nhãn thiết bị. Ví dụ: một ổ flash USB có nhãn FlashDrive
được gắn kết bởi người dùng john
sẽ được gắn vào /media/john/FlashDrive/
. Cách xử lý việc này sẽ tùy thuộc vào từng môi trường máy tính để bàn.
Tuy là vậy, bất cứ khi nào chúng ta cần gắn kết một hệ thống tệp theo cách thủ công, cách tốt nhất là gắn kết nó vào /mnt
.
Gắn kết Hệ thống Tệp khi khởi động
Tệp /etc/fstab
sẽ chứa các mô tả về hệ thống tệp có thể được gắn kết. Đây là một tệp văn bản mà ở trong đó, mỗi dòng sẽ mô tả một hệ thống tệp được gắn kết với sáu trường theo thứ tự sau:
FILESYSTEM MOUNTPOINT TYPE OPTIONS DUMP PASS
Trong đó:
FILESYSTEM
-
Thiết bị chứa hệ thống tệp sẽ được gắn kết. Thay vì thiết bị, ta có thể chỉ định UUID hoặc nhãn của phân vùng (chúng ta sẽ thảo luận sau).
MOUNTPOINT
-
Nơi hệ thống tệp sẽ được gắn kết.
TYPE
-
Loại hệ thống tệp.
OPTIONS
-
Các tùy chọn gắn kết sẽ được truyền cho
mount
. DUMP
-
Cho biết liệu có nên xem xét bất kỳ hệ thống tệp ext2, ext3 hoặc ext4 nào để sao lưu bằng lệnh
dump
hay không. Thông thường nó sẽ bằng 0, nghĩa là chúng nên được bỏ qua. PASS
-
Khi khác 0, nó sẽ xác định thứ tự các hệ thống tệp sẽ được kiểm tra khi khởi động. Thông thường nó sẽ bằng 0.
Ví dụ: phân vùng đầu tiên trên đĩa đầu tiên của máy có thể được mô tả là:
/dev/sda1 / ext4 noatime,errors
Các tùy chọn gắn kết trên OPTIONS
là một danh sách các tham số được phân tách bằng dấu phẩy. Chúng có thể là tham số chung hoặc dành riêng cho hệ thống tệp. Trong số những tham số chung, chúng ta có:
atime
vànoatime
-
Theo mặc định, mỗi khi tệp được đọc thì thông tin về thời gian truy cập sẽ được cập nhật. Việc tắt tính năng này (với
noatime
) có thể tăng tốc độ I/O của đĩa. Đừng nhầm lẫn điều này với thời gian sửa đổi được cập nhật mỗi khi tệp được ghi vào. auto
vànoauto
-
Khiến hệ thống tệp có thể (hoặc không thể) được gắn kết tự động với
mount -a
. defaults
-
Tuỳ chọn này sẽ truyền các tùy chọn
rw
,suid
,dev
,exec
,auto
,nouser
vàasync
sang chomount
. dev
vànodev
-
Quyết định xem thiết bị dạng ký tự hoặc thiết bị khối trong hệ thống tệp được gắn kết có nên được diễn giải hay không.
exec
vànoexec
-
Cho phép hoặc từ chối quyền thực thi các tệp nhị phân trên hệ thống tệp.
user
vànouser
-
Cho phép (hoặc không cho phép) người dùng bình thường gắn kết hệ thống tệp.
group
-
Cho phép người dùng gắn kết hệ thống tệp nếu người dùng thuộc cùng nhóm sở hữu thiết bị chứa nó.
owner
-
Cho phép người dùng gắn kết hệ thống tệp nếu người dùng sở hữu thiết bị chứa nó.
suid
vànosuid
-
Cho phép hoặc không cho phép các bit SETUID và SETGID có hiệu lực.
ro
vàrw
-
Gắn kết hệ thống tệp ở dạng chỉ đọc hoặc có thể ghi.
remount
-
Tuỳ chọn này sẽ cố gắng gắn kết lại một hệ thống tệp đã được gắn kết. Tham số này không được sử dụng trên
/etc/fstab
mà là tham số chomount -o
. Ví dụ: để gắn kết lại phân vùng/dev/sdb1
đã được gắn ở chế độ chỉ đọc, ta có thể sử dụng lệnhmount -o remount,ro /dev/sdb1
. Khi gắn kết lại, chúng ta không cần chỉ định loại hệ thống tệp mà chỉ cần có tên thiết bị hoặc điểm gắn kết. sync
vàasync
-
Thực hiện tất cả thao tác I/O với hệ thống tệp một cách đồng bộ (hoặc không đồng bộ).
async
(không đồng bộ) thường là mặc định. Trang hướng dẫn củamount
có cảnh báo rằng việc sử dụngsync
trên phương tiện có số chu kỳ ghi hạn chế (như ổ đĩa flash hoặc thẻ nhớ) có thể rút ngắn tuổi thọ của thiết bị.
Sử dụng UUID và Nhãn
Việc chỉ định tên của thiết bị chứa hệ thống tệp cần gắn kết có thể gây ra một số vấn đề. Đôi khi, cùng một tên thiết bị có thể được gán cho một thiết bị khác, tùy thuộc vào thời điểm hoặc vị trí thiết bị đó được kết nối với hệ thống. Ví dụ: ổ flash USB trên /dev/sdb1
có thể được gán cho /dev/sdc1
nếu được cắm trên một cổng khác hoặc sau một ổ flash khác.
Một cách để tránh điều này là chỉ định nhãn hoặc UUID (Mã định danh duy nhất toàn cầu) của ổ phân vùng. Cả hai đều được chỉ định khi hệ thống tệp được tạo và sẽ không thay đổi trừ khi hệ thống tệp bị hủy hoặc được gán nhãn hoặc UUID mới theo cách thủ công.
Lệnh lsblk
có thể được sử dụng để truy vấn thông tin về hệ thống tệp và tìm ra nhãn và UUID được liên kết với nó. Để thực hiện việc này, hãy sử dụng tham số -f
, theo sau là tên thiết bị:
$ lsblk -f /dev/sda1 NAME FSTYPE LABEL UUID FSAVAIL FSUSE% MOUNTPOINT sda1 ext4 6e2c12e3-472d-4bac-a257-c49ac07f3761 64,9G 33% /
Dưới đây là ý nghĩa của từng cột:
NAME
-
Tên của thiết bị chứa hệ thống tệp.
FSTYPE
-
Loại hệ thống tệp.
LABEL
-
Nhãn hệ thống tệp.
UUID
-
Mã định danh duy nhất toàn cầu (UUID) được gán cho hệ thống tệp.
FSAVAIL
-
Dung lượng có sẵn trong hệ thống tệp.
FSUSE%
-
Phần trăm sử dụng của hệ thống tệp.
MOUNTPOINT
-
Nơi hệ thống tệp sẽ được gắn kết.
Trong /etc/fstab
, một thiết bị có thể được chỉ định bởi UUID của nó với tùy chọn UUID=
, theo sau là UUID hoặc với LABEL=
, theo sau là nhãn. Vì vậy, thay vì:
/dev/sda1 / ext4 noatime,errors
Chúng ta sẽ sử dụng:
UUID=6e2c12e3-472d-4bac-a257-c49ac07f3761 / ext4 noatime,errors
Hoặc, nếu ta có một đĩa có nhãn homedisk
:
LABEL=homedisk /home ext4 defaults
Cú pháp tương tự có thể được sử dụng với lệnh mount
. Thay vì tên thiết bị, hãy truyền UUID hoặc nhãn. Ví dụ: để gắn một đĩa NTFS ngoại vi với UUID 56C11DCC5D2E1334
trên /mnt/external
, lệnh sẽ là:
$ mount -t ntfs UUID=56C11DCC5D2E1334 /mnt/external
Gắn kết Đĩa với Systemd
Systemd là tiến trình init - tiến trình đầu tiên chạy trên nhiều bản phân phối Linux. Nó chịu trách nhiệm tạo ra các tiến trình khác, khởi động các dịch vụ và khởi động hệ thống. Trong số nhiều tác vụ khác, systemd cũng có thể được sử dụng để quản lý việc gắn kết (và tự động gắn kết) các hệ thống tệp.
Để sử dụng tính năng này của systemd, chúng ta cần tạo một tệp cấu hình được gọi là đơn vị gắn kết. Mỗi ổ phân vùng cần gắn kết sẽ có đơn vị gắn riêng và chúng cần được đặt trong /etc/systemd/system/
.
Đơn vị gắn kết là các tệp văn bản đơn giản có phần mở rộng .mount
. Định dạng cơ bản sẽ như dưới đây:
[Unit] Description= [Mount] What= Where= Type= Options= [Install] WantedBy=
Description=
-
Mô tả ngắn gọn về đơn vị gắn kết, đại loại như
Mounts the backup disk
. What=
-
Cái gì nên được gắn kết. Ổ phân vùng phải được chỉ định là
/dev/disk/by-uuid/VOL_UUID
, trong đó,VOL_UUID
là UUID của ổ phân vùng. Where=
-
Đường dẫn đầy đủ đến nơi ổ phân vùng sẽ được gắn vào.
TYPE
-
Loại hệ thống tệp.
Options=
-
Các tùy chọn gắn kết mà ta có thể muốn truyền qua. Những tùy chọn này khi được sử dụng với lệnh
mount
hoặc trong/etc/fstab
sẽ giống như nhau. WantedBy=
-
Được sử dụng để quản lý các phần phụ thuộc. Trong trường hợp này, chúng ta sẽ sử dụng
multi-user.target
, có nghĩa là bất cứ khi nào hệ thống khởi động vào môi trường đa người dùng (khởi động bình thường), đơn vị sẽ được gắn kết.
Ví dụ trước của chúng ta về đĩa ngoại vi có thể được viết như sau:
[Unit] Description=External data disk [Mount] What=/dev/disk/by-uuid/56C11DCC5D2E1334 Where=/mnt/external Type=ntfs Options=defaults [Install] WantedBy=multi-user.target
Nhưng vẫn chưa xong. Để có thể hoạt động một cách chuẩn xác, đơn vị gắn kết phải có cùng tên với điểm gắn kết. Trong trường hợp này, điểm gắn kết là /mnt/external
. Vì vậy, tệp phải được đặt tên là mnt-external.mount
.
Sau đó, ta cần khởi động lại trình nền systemd bằng lệnh systemctl
và khởi động đơn vị:
# systemctl daemon-reload # systemctl start mnt-external.mount
Bây giờ, nội dung của đĩa ngoại vi sẽ có sẵn trên /mnt/external
. Ta có thể kiểm tra trạng thái của quá trình gắn kết bằng lệnh systemctl status mnt-external.mount
như bên dưới đây:
# systemctl status mnt-external.mount ● mnt-external.mount - External data disk Loaded: loaded (/etc/systemd/system/mnt-external.mount; disabled; vendor pres Active: active (mounted) since Mon 2019-08-19 22:27:02 -03; 14s ago Where: /mnt/external What: /dev/sdb1 Tasks: 0 (limit: 4915) Memory: 128.0K CGroup: /system.slice/mnt-external.mount ago 19 22:27:02 pop-os systemd[1]: Mounting External data disk... ago 19 22:27:02 pop-os systemd[1]: Mounted External data disk.
Lệnh systemctl start mnt-external.mount
sẽ chỉ kích hoạt thiết bị cho phiên hiện tại. Nếu muốn bật nó trong mỗi lần khởi động, hãy thay thế start
bằng enable
:
# systemctl enable mnt-external.mount
Tự động gắn một Đơn vị Gắn kết
Các đơn vị gắn kết có thể được tự động gắn kết bất cứ khi nào điểm gắn kết được truy cập. Để thực hiện việc này, ta cần có tệp .automount
cùng với tệp .mount
mô tả đơn vị. Định dạng cơ bản sẽ là:
[Unit] Description= [Automount] Where= [Install] WantedBy=multi-user.target
Giống như trước đây, Description=
là một mô tả ngắn về tệp, và Where=
là điểm gắn kết. Ví dụ: tệp .automount
trong ví dụ trước sẽ là:
[Unit] Description=Automount for the external data disk [Automount] Where=/mnt/external [Install] WantedBy=multi-user.target
Lưu tệp có cùng tên với điểm gắn kết (trong trường hợp này là mnt-external.automount
), tải lại systemd và khởi động đơn vị:
# systemctl daemon-reload # systemctl start mnt-external.automount
Bây giờ, bất cứ khi nào thư mục /mnt/external
được truy cập, đĩa sẽ được gắn kết. Giống như trước đây, để bật tính năng tự động gắn trong mỗi lần khởi động, chúng ta sẽ sử dụng:
# systemctl enable mnt-external.automount
Bài tập Hướng dẫn
-
Bằng cách sử dụng
mount
với tuỳ chọnnoatime
vàasync
, làm cách nào để có thể gắn kết hệ thống tệpext4
trên/dev/sdc1
vào/mnt/external
dưới dạng chỉ đọc? -
Khi ngắt gắn kết hệ thống tệp tại
/dev/sdd2
, bạn nhận được thông báo lỗitarget is busy
. Làm cách nào để có thể biết tệp nào trên hệ thống tệp đang mở và tiến trình nào đã mở chúng? -
Hãy xem xét mục sau trong
/etc/fstab
:/dev/sdb1 /data ext4 noatime,noauto,async
. Nếu lệnhmount -a
được đưa ra, hệ thống tệp này có được gắn kết không? Tại sao? -
Làm cách nào để có thể tìm ra UUID của hệ thống tệp trong
/dev/sdb1
? -
Làm cách nào để sử dụng
mount
để gắn kết lại hệ thống tệp exFAT có UUID là6e2c12e3-472d-4bac-a257-c49ac07f3761
được gắn tại/mnt/data
dưới dạng chỉ đọc? -
Làm cách nào để có được danh sách tất cả các hệ thống tệp
ext3
vàntfs
hiện được gắn trên một hệ thống?
Bài tập Mở rộng
-
Hãy xem xét mục sau trong
/etc/fstab
:/dev/sdc1 /backup ext4 noatime,nouser,async
. Người dùng có thể gắn kết hệ thống tệp này bằng lệnhmount /backup
không? Tại sao? -
Giả sử có một hệ thống tệp từ xa được gắn kết tại
/mnt/server
, hệ thống này hiện không thể truy cập được do mất kết nối mạng. Làm cách nào để có thể buộc nó phải ngắt gắn kết, hoặc nếu không thể thì được gắn ở dạng chỉ đọc? -
Hãy viết một mục nhập
/etc/fstab
sẽ gắn kết một ổ phân vùng btrfs với nhãnBackup
trên/mnt/backup
với các tùy chọn mặc định và không cho phép thực thi các tệp nhị phân từ nó. -
Hãy xem đơn vị gắn kết systemd sau:
[Unit] Description=External data disk [Mount] What=/dev/disk/by-uuid/56C11DCC5D2E1334 Where=/mnt/external Type=ntfs Options=defaults [Install] WantedBy=multi-user.target
-
Mục nhập
/etc/fstab
tương đương cho hệ thống tệp này là gì?
-
-
Tên tệp của đơn vị ở trên phải là gì để systemd có thể sử dụng nó? Nó nên được đặt ở đâu?
Tóm tắt
Trong bài học này, chúng ta đã học cách gắn kết và ngắt gắn kết hệ thống tệp theo cách thủ công hoặc tự động. Một số lệnh và khái niệm đã được giải thích là:
-
mount
(gắn kết thiết bị vào một vị trí) -
umount
(ngắt gắn kết thiết bị) -
lsof
(liệt kê các tiến trình truy cập hệ thống tệp) -
thư mục
/mnt
và/media
-
/etc/fstab
-
lsblk
(liệt kê loại và UUID của hệ thống tệp) -
Cách gắn kết hệ thống tệp bằng UUID hoặc nhãn của nó.
-
Cách gắn kết hệ thống tệp bằng cách sử dụng các đơn vị gắn kết systemd.
-
Cách tự động gắn kết hệ thống tệp bằng cách sử dụng các đơn vị gắn kết systemd.
Đáp án Bài tập Hướng dẫn
-
Bằng cách sử dụng
mount
với tuỳ chọnnoatime
vàasync
, làm cách nào để có thể gắn kết hệ thống tệpext4
trên/dev/sdc1
vào/mnt/external
dưới dạng chỉ đọc?# mount -t ext4 -o noatime,async,ro /dev/sdc1 /mnt/external
-
Khi ngắt gắn kết hệ thống tệp tại
/dev/sdd2
, bạn nhận được thông báo lỗitarget is busy
. Làm cách nào để có thể biết tệp nào trên hệ thống tệp đang mở và tiến trình nào đã mở chúng?Sử dụng
lsof
, theo sau là tên thiết bị:$ lsof /dev/sdd2
-
Hãy xem xét mục sau trong
/etc/fstab
:/dev/sdb1 /data ext4 noatime,noauto,async
. Nếu lệnhmount -a
được đưa ra, hệ thống tệp này có được gắn kết không? Tại sao?Nó sẽ không được gắn kết. Mấu chốt ở đây là tham số
noauto
, có nghĩa là mục này sẽ bịmount -a
bỏ qua. -
Làm cách nào để có thể tìm ra UUID của hệ thống tệp trong
/dev/sdb1
?Sử dụng
lsblk -f
, theo sau là tên hệ thống tệp:$ lsblk -f /dev/sdb1
-
Làm cách nào để có thể sử dụng
mount
để gắn kết lại hệ thống tệp exFAT với UUID6e2c12e3-472d-4bac-a257-c49ac07f3761
được gắn tại/mnt/data
dưới dạng chỉ đọc?Vì hệ thống tệp đã được gắn kết nên bạn không cần phải lo lắng về loại hệ thống tệp hoặc ID, chỉ cần sử dụng tùy chọn
remount
với tham sốro
(chỉ đọc) và điểm gắn kết:# mount -o remount,ro /mnt/data
-
Làm cách nào để có được danh sách tất cả các hệ thống tệp
ext3
vàntfs
hiện được gắn trên một hệ thống?Sử dụng
mount -t
, theo sau là danh sách các hệ thống tệp được phân tách bằng dấu phẩy:# mount -t ext3,ntfs
Đáp án Bài tập Mở rộng
-
Hãy xem xét mục sau trong
/etc/fstab
:/dev/sdc1 /backup ext4 noatime,nouser,async
. Người dùng có thể gắn kết hệ thống tệp này bằng lệnhmount /backup
không? Tại sao?Không, tham số
nouser
sẽ không cho phép người dùng thông thường gắn kết hệ thống tệp này. -
Giả sử có một hệ thống tệp từ xa được gắn kết tại
/mnt/server
, hệ thống này hiện không thể truy cập được do mất kết nối mạng. Làm cách nào để có thể buộc nó phải ngắt gắn kết, hoặc nếu không thể thì được gắn ở dạng chỉ đọc?Truyền tham số
-f
và-r
để ngắt gắn kết. Lệnh sẽ làumount -f -r /mnt/server
. Hãy nhớ rằng bạn có thể nhóm các tham số; vì vậy,umount -fr /mnt/server
cũng sẽ có tác dụng. -
Hãy viết một mục nhập
/etc/fstab
sẽ gắn kết một ổ phân vùng btrfs với nhãnBackup
trên/mnt/backup
với các tùy chọn mặc định và không cho phép thực thi các tệp nhị phân từ nó.LABEL=Backup /mnt/backup btrfs defaults,noexec
. -
Hãy xem đơn vị gắn kết systemd sau:
[Unit] Description=External data disk [Mount] What=/dev/disk/by-uuid/56C11DCC5D2E1334 Where=/mnt/external Type=ntfs Options=defaults [Install] WantedBy=multi-user.target
-
Mục nhập
/etc/fstab
tương đương cho hệ thống tệp này là gì?Mục nhập sẽ là:
UUID=56C11DCC5D2E1334 /mnt/external ntfs defaults
-
-
Tên tệp của đơn vị ở trên phải là gì để systemd có thể sử dụng nó? Nó nên được đặt ở đâu?
Tên tệp phải giống với điểm gắn kết. Vì vậy, tên tệp sẽ là
mnt-external.mount
được đặt trong/etc/systemd/system
.