1.Mở đầu
Có lẽ trong chúng ta ai cũng đã từng dùng lệnh mount để mount một partition vào để làm việc, nhằm giúp cho việc mount tự động khi boot hoặc giảm nhẹ việc đánh lệnh mount quá dài để có thể mount được ổ đĩa ta đưa những thông tin cấu hình vào trong file /etc/fstab. Nhưng trong chúng ta có mấy ai hiểu hết được ý nghĩa từng column trong file này?
Chú ý: Trong bài viết đôi khi dùng lẫn lộn giữa partition và thiết bị (device), bạn có thể hiểu nó đề cập đến các phân vùng trên ổ cứng, ổ đĩa mềm, CD, USB Flash...
2.File fstab là gì và tại sao ta lại cần nó
fstab là một tập tin cấu hình chứa các thông tin về các phân vùng trên ổ cứng cũng như các thiết bị lưu trữ khác trong máy tính của bạn. Tập tin này nằm trên thư mục /etc.
/etc/fstab chứa các thông tin cần thiết để xác định xem một phân vùng hay thiết bị của bạn được mount như thế nào và mount vào đâu trong cấu trúc thư mục.Nếu như bạn không thể truy xuất các phân vùng của Windows (NTFS hoặc FAT32) từ Linux, không thể mount CD hoặc ghi file lên ổ mềm với quyền hạn user bình thường, hoặc gặp vấn đề với CD-RW của bạn, có lẽ bạn đã không cấu hình đúng file /etc/fstab rồi. Để có thể điều chỉnh fstab bạn cần có quyền root và dùng một chương trình xử lý văn bản như vi hoặc gedit để điều chỉnh.
3.Mô tả sơ lược về fstab
Đây là cấu trúc một file /etc/fstab mẫu
Trích dẫn:
----1----------2-----------3----------------4---------------5-----------------6----
LABEL=/ / ext3 defaults 1 1
LABEL=/boot /boot ext3 defaults 1 2
LABEL=swap swap swap defaults 0 0
/dev/sda8 /working vfat auto,user,exec,rw 0 0
/dev/sda9 /eLib ntfs-3g auto,user,noexec 0 0
LABEL=/ / ext3 defaults 1 1
LABEL=/boot /boot ext3 defaults 1 2
LABEL=swap swap swap defaults 0 0
/dev/sda8 /working vfat auto,user,exec,rw 0 0
/dev/sda9 /eLib ntfs-3g auto,user,noexec 0 0
4.Ý nghĩa cột thứ 1 và 2: Thiết bị cần mount và nơi mặc định để mount.
Cột thứ nhất là ổ đĩa hoặc thiết bị cần mount vd như /dev/fd0 (mặc định là ổ đĩa mềm), /dev/hda1, /dev/sda1...
Cột thứ 2 chính là nơi mount mặc định.
Hãy nhìn thử nội dung file fstab trong phần 3 dòng cuối cùng: nếu như từ dòng lệnh bạn gõ:
$mount /eLib thì nó tương đương với việc bạn phải gõ đầy đủ như sau
#mount /dev/sda9 /eLib (mặc định quyền root mới được mount) đó là chưa kể thông số về file system và các thông số phụ
#mount /dev/sda9 -t ntfs /mnt/ nếu muốn chỉ định file system
Bạn có thể sử dụng tên của partition thay vì dùng /dev/sda1... cũng được, bảng trên là một ví dụ
5.Cột thứ 3: loại file system
Đây chính là định dạng file hệ thống của thiết bị của bạn
ext2 và ext3: thường dùng cho các hệ thống Linux
reiserfs: nếu ổ đĩa bạn định dạng kiểu ReiserFS thì dùng tuỳ chọn này.
swap: được sử dụng cho swap partition
vfat, ntfs, ntfs-3g: vfat được dùng cho các ổ đĩa FAT32 trên Windows còn ntfs dành cho NTFS (chú ý một số distro như RedHat không đưa hỗ trợ ntfs vào mặc định do đó bạn cần compile lại kernel hoặc cài thêm module ntfs vào). ntfs-3g là một giải pháp cho việc read-write ntfs partition trên Linux tương đối tốt hiện nay.
auto: tự động detect, nếu không biết partition của mình định dạng kiểu gì thì hãy thử tuỳ chọn này.
6.Cột thứ 4: Các tuỳ chọn mount
Đây có lẽ là cột quan trọng nhất đây, nó quy định xem có mount tự động lúc khởi động không, user có quyền mount không, có cho phép thực thi các file trên đó không (nhiều trường hợp lỗi khi thực thi các script, exec file không được là do phần tuỳ chọn này).
- auto và noauto: Với tuỳ chọn auto, thiết bị sẽ tự động mount lúc khởi động máy tính, đây là tuỳ chọn mặc định. Nếu bạn không muốn thiết bị của mình được mount tự động hãy dùng tuỳ chọn noauto, khi đó khi nào bạn ra lệnh mount thì hệ thống mới mount cho bạn.
- user và nouser: tuỳ chọn user cho phép những user bình thường có thể mount thiết bị, ngược lại nouser chỉ cho phép root mới có quyền mount mà thôi. Tuỳ chọn nouser là mặc định, nếu bạn không thể mount CD, ổ đĩa từ windows... bạn hãy điều chỉnh lại thông số này.
- exec và noexec: exec cho phép bạn thực thi các file thực thi tồn tại trên partition đó, đây là tuỳ chọn mặc định. Tuỳ chọn noexec sẽ không cho phép bạn thực thi những file này, tuỳ chọn này thường được áp dụng đối với những phân vùng không có file thực thi hoặc không muốn cho thực thi.
- ro: mount partition ở chế độ read-only. Với chế độ này bạn chỉ có thể đọc mà không thể ghi được vào partition đó.
- rw: Mount partition ở chế độ read-write, đôi khi bạn phải đau đầu vì tuỳ chọn này do không thể ghi vào đĩa mềm mà không hiểu nguyên nhân vì sao.
- sync và async: đây là tuỳ chọn cho việc đọc và ghi lên file system. sync nghĩa là tất cả được làm đồng thời với nhau, tuỳ chọn này thường được áp dụng cho đĩa mềm. Một vd: khi bạn ra lệnh copy một file lên đĩa mềm, với tuỳ chọn sync file sẽ được chép ngay lập tức khi bạn ra lệnh, với tuỳ chọn async (không đồng thời) thì file đó chưa hẳn đã được chép lên đĩa. Nếu như bạn rút đĩa ra mà không umount thì có thể file đó không tồn tại trên đĩa mềm. async là tuỳ chọn mặc định.
- defaults: sử dụng các tuỳ chọn mặc định đó là rw, suid, dev, exec, auto, nouser, and async
Các tuỳ chọn được cách nhau bằng dấu phẩy (,)
7.Cột thứ 5 và 6: Các tuỳ chọn cho lệnh dump và fsck
Dump là gì? Đó là một tiện ích backup filesystem, gõ lệnh $man dump để biết thêm thông tin
Thế còn fsck? Đó chính là tiện ích để kiểm tra file system xem có bị hư hỏng gì không (và sửa lỗi nếu được).
Cột thứ 5 chính là thông số tuỳ chọn cho dump. Dump sẽ dựa vào con số bạn cấu hình để biết phải làm gì, nếu nó là 0 thì dump sẽ bỏ qua và không làm gì, hầu hết các trường hợp thông số này đều bằng 0!
Cột thứ 6 chính là thông số tuỳ chọn cho lệnh fsck. Nó quy định thứ tự để kiểm tra file system, nếu thông số này bằng 0 đồng nghĩa với việc fsck sẽ không kiểm tra
8. Kết luận
Với những thông số tuỳ chọn cho file /etc/fstab hy vọng bạn sẽ không còn những giây phút đau đầu mà không hiểu nguyên nhân tại sao. Hy vọng bài viết này sẽ giúp ích cho bạn trên con đường chinh phục chú chim cánh cụt dễ thương!
Mặc định Bạn Hiểu gì về fstab Trong Linux ?
Reviewed by Unknown
on
5:45 PM
Rating:
No comments: