Wednesday, November 14, 2012

Mount thiet bi trong Linux

        Tìm hiểu về file cấu hình /etc/fstab 

Để có thể truy cập được các thiết bị như USB, ổ CD/DVD, file ISO,
phân vùng ổ đĩa… trong Linux thì trước  hết các thiết bị này các được gắn kết (mount) vào 1 thư mục trống (gọi là mount point) đã được tạo sẵn trên ổ cứng. Và khi muốn tháo gỡ thiết bị khỏi hệ thống đang hoạt động thì bạn phải ngắt kết nối (unmount) giữa thiết bị với mount point trước. 2 công cụ cũng là tên của 2 lệnh: mountumount giúp bạn thực hiện  công việc gắn kết và tháo gỡ trên.

Trong Linux có 1 file fstab nằm tại thư mục /etc. Bài viết này manthang sẽ giới thiệu nội dung và cách  chỉnh sửa thông tin trong file này và ngụ ý rằng bạn đã biết cơ bản về lệnh mount (xem bài “Làm sao để mount/unmount filesystem trong Linux”).


File /etc/fstab ?

File cấu hình /etc/fstab chứa thông tin về tất cả các phân vùng, USB, ổ CD/DVD… (được gọi chung là thiết bị) trên máy tính bao gồm:

+ các thiết bị được mount ở đâu? (tên mount point gắn với thiết bị là gì?)

+ các thiết bị được mount như thế nào? (các tùy chọn khi mount là gì?)

...

Nếu bạn không thể truy cập các phân vùng dành cho Windows (NTFS, FAT), hoặc không thể mount ổ DVD, ghi dữ liệu vào USB, đọc file từ ổ mềm… thì có thể chip nhớ trên thiết bị bị lỗi hoặc cũng có thể bạn đã cấu hình file fstab không đúng cách!

fstab là file dạng văn bản (plain text), vì thế bạn có thể mở và chỉnh sửa với bất kỳ công cụ Text Editor nào với điều kiện bạn phải có đặc quyền root để lưu lại những thay đổi. Nếu bạn đang đăng nhập với tài khoản người dùng thông thường thì có thể sử dụng 2 lệnh su hoặc sudo để tạm thời chuyển sang đặc quyền
root. Chi tiết về 2 lệnh này xin hẹn ở 1 bài viết khác wink.gif

Cấu trúc của file /etc/fstab ?

Vì mỗi hệ thống có các thiết bị khác nhau nên thông tin trong file fstab ở mỗi máy cũng khác nhau chút ít. Nhưng về cơ bản, bạn nắm được định dạng chung của fstab thì không có gì khó khăn khi làm việc với các hệ thống khác. Khi lệnh mount được thực thi, hệ thống sẽ đọc thông tin trong file fstab để đưa ra cách xử lý  tương ứng. Đây là 1 ví dụ về nội dung của file /etc/fstab

Code:

/dev/hda2 / ext2 defaults 1 1

/dev/hdb1 /home ext2 defaults 1 2

/dev/cdrom /media/cdrom auto ro,noauto,user,exec 0 0

/dev/fd0 /media/floppy auto rw,noauto,user,sync 0 0

proc /proc proc defaults 0 0

/dev/hda1 swap swap pri=42 0 0


Như bạn thấy, mỗi dòng trong file fstab chứa thông tin của 1 thiết bị được hệ điều hành nhận diện. Các cột ở  mỗi hàng được phân cách bởi khoảng trắng. Thứ tự các dòng là không quan trọng. Sau đây phần giải thích  kỹ hơn ý nghĩa của từng cột:

+ Cột 1: cho biết loại thiết bị (Partition, CD/DVD-ROM, USB, ISO...)

Đồng thời cũng cho biết đường dẫn tới device file của thiết bị. Trong Linux, mọi tài nguyên phần cứng lẫn phần mềm đều được coi là file, các device file thường nằm ở thư mục /dev

+ Cột 2: đường dẫn của mount point (1 thư mục trống được tạo sẵn trong cây thư mục).

Nếu bạn không chỉ định mount point khi gõ lệnh mount thì đây là mount point mặc định cho thiết bị ở cột 1. Thư mục chứa mount point thường là /mnt hay /media , mặc dù bạn có thể mount thiết bị  vào bất cứ thư mục trống nào.

+ Cột 3: là kiểu filesystem của thiết bị.
Hiểu đơn giản thì filesystem là các quy định về:

+ cách thức cấp phát không gian lưu trữ cho file, quản lý thuộc tính của file.

+ cách tổ chức, sắp xếp dữ liệu trên thiết bị sao cho việc tìm kiếm, truy cập tới dữ liệu được mau chóng và thuận tiện.

Linux hỗ trợ nhiều kiểu filesystem, dưới đây là 1 số filesystem phổ biến:

- Ext2 và Ext3: điểm khác biệt lớn nhất giữa 2 loại filesystem này là ext3 hỗ trợ tính năng journaling, tức là khi bạn tắt máy không đúng cách (do cúp điện đột ngột, hệ thống bị treo nên phải nhấn nút reset…) thì khả năng mất mát dữ liệu ở mức thấp, đồng thời hệ điều hành sẽ không phải tốn thời gian để kiểm tra, tìm lỗi
trên filesystem trong lần khởi động kế tiếp.

- ReiserFS: cũng hỗ trợ tính năng jouraling nhưng có thêm nhiều tính năng nổi trội hơn so với ext3. Ngày nay ext3, ReiserFS được chọn là filesystem mặc định trên nhiều bản phân phối Linux.

- swap: phân vùng làm không gian bộ nhớ ảo, dùng để bổ sung thêm bộ nhớ cho hệ thống khi hệ điều hành phát hiện việc thiếu hụt bộ nhớ RAM.

- Vfat (FAT16, FAT32) và NTFS: đây là các filesystem được Windows hỗ trợ.

- nfs: dành cho các tài nguyên ở xa, được chia sẻ qua mạng sử dụng NFS.

- auto: đây không phải là 1 filesytem. Nó có nghĩa là hệ thống sẽ tự động nhận diện loại filesystem của thiết bị khi thiết bị đó được mount.

+ Cột 4: là các tùy chọn khi mount. Nếu có nhiều tùy chọn thì chúng được phân cách bởi dấu phẩy. Dưới đây là 1 số tùy chọn đáng chú ý, gõ man mount để xem thêm các tùy chọn khác.

- auto: thiết bị sẽ được mount tự động lúc khởi động máy tính.

- noauto: thiết bị không được tự động mount, nếu muốn sử dụng thiết bị thì sau khi khởi động vào hệ thống  bạn cần chạy lệnh mount.
- user: cho phép người dùng thông thường được quyền mount thiết bị.

- nouser: chỉ có người dùng root mới có quyền mount thiết bị.

- exec: cho phép chạy các file nhị phân (binary file) trên thiết bị.

- noexec: không cho phép chạy các binary file trên thiết bị.

- ro (read-only): chỉ cho phép quyền đọc trên thiết bị.

- rw (read-write): cho phép quyền đọc/ghi trên thiết bị.

- sync: thao tác nhập xuất (I/O) trên filesystem được đồng bộ hóa

- async: thao tác nhập xuất (I/O) trên filesystem diễn ra không đồng bộ

- defaults: tương đương với tập các tùy chọn rw, suid, dev, exec, auto, nouser, async

+ Cột 5 là tùy chọn cho chương trình dumpDump là tiện ích để sao lưu filesystem. Điền 0 -> dump bỏ qua việc sao lưu, 1-> thực hiện sao lưu

+ Cột 6 là tùy chọn cho chương trình fsckfsck là tiện ích để kiểm tra, tìm lỗi trên filesystem. Điền 0-> bỏ qua việc kiểm tra, 1-> thực hiện kiểm tra

Kết luận: file /etc/fstab cung cấp các chỉ dẫn cho hệ điều hành trong việc nhận diện, quản lý việc mount các thiết bị. Đồng thời việc cấu hình lại file fstab cũng giúp ích cho bạn trong việc giảm bớt thời gian mount thiết bị bằng lệnh cũng như là kiểm soát việc truy cập tới thiết bị của người dùng.

No comments:

Post a Comment