Jan 19, 2012

Tìm hiểu về cơ chế hoạt động của Fstab trong Linux

Nếu bạn là người thường xuyên sử dụng hệ điều hành Linux thì chắc hẳn sẽ có lúc cần phải thay đổi tùy chọn hoặc thiết lập của file hệ thống. Trong bài viết dưới đây, chúng tôi sẽ giới thiệu với các bạn về fstab – có thể giúp chúng ta đơn giản hóa quá trình thực hiện trên.



Vậy Fstab là gì?


Hiểu nôm na rằng đây là bảng các file system của hệ thống trong hệ điều hành. Trước kia, đây là cách chủ yếu để hệ thống kết hợp các file theo cách tự động, nhưng ngày nay chúng ta chỉ cần cắm ổ USB hoặc bất kỳ thiết bị lưu trữ bên ngoài nào với máy tính thì hệ thống sẽ hiển thị thông báo trên khay hệ thống tương tự như Windows hoặc Mac. Nhưng đôi khi trong những tình huống đặc biệt thì người dùng phải chỉ định rõ những ổ đĩa, phân vùng nào chính xác để kết nối vào hệ thống bằng lệnh mount.


Như phía trên đã đề cập tới, khi người dùng chỉ định rõ ràng thiết bị nào sau khi kết nối với máy tính thì hệ thống sẽ tự động kết hợp thành 1 phân vùng mới. Và đây cũng là lúc fstab tỏ ra hữu ích. Giả sử rằng chúng ta kết nối ổ cứng bằng chuẩn IDE hoặc SCSI, sau đó máy tính sẽ tải các file hệ thống cần thiết theo nhiều thứ tự khác nhau, và do vậy có thể gây ra nhiều xáo trộn. Fstab được cấu hình, thiết lập để tìm kiếm từng thể loại file hệ thống riêng biệt, sau đó kết hợp chúng theo trật tự thống nhất, qua đó sẽ giảm thiểu được rất nhiều tỉ lệ lỗi xảy ra.


File Fstab:


Trên thực tế, hệ thống file fstab được lưu trữ tại thư mục sau:


/etc/fstab


Ví dụ:


ví dụ


Chúng ta có thể dễ dàng thấy được sự khác biệt ở đây, và nếu muốn hiển thị thông tin về file fstab trên hệ thống của bạn thì hãy gõ lệnh sau vào Terminal:


gõ lệnh fstab


Hoặc thay thế lệnh nano bằng gedit cũng mang lại kết quả tương tự.


Tùy chọn khác:


tùy chọn fstab


Để tiếp tục, các bạn hãy xem lại bài viết tìm hiểu về phân vùng Scheme trong Linux. Tại đây, chúng ta sẽ đề cập lại 1 số khái niệm cơ bản, chẳng hạn như đối với từng loại file hệ thống khác nhau trong quá trình định dạng – Format thì sẽ được gán với thông số Universally Unique IdentifierUUID nhất định, và sẽ cố định như vậy. Thực chất, quá trình này không thể thay đổi được, và đây cũng là cách lý tưởng để lựa chọn loại file hệ thống nào nên sử dụng, đặc biệt là đối với những phân vùng quan trọng. Ví dụ: phân vùng /home nằm trên ổ cứng thứ 2 trong hệ thống, và chúng ta sẽ di chuyển tới 1 ổ cứng cắm ngoài khác thì fstab sẽ đảm nhận nhiệm vụ tìm kiếm và kết nối phân vùng đó 1 cách chuẩn xác và đảm bảo an toàn, nhằm tránh khỏi trường hợp xảy ra lỗi. Còn nếu các bạn chuyển về phương pháp cũ là sử dụng thiết bị đã được xác định trước để lựa chọn phân vùng (ví dụ /dev/sda1), ưu điểm trên sẽ mất đi bởi vì ổ cứng và phân vùng đã được đếm bởi hệ thống Controller, và qua đó gây ra sự thay đổi trong hệ điều hành.


Việc sử dụng UUID trong file fstab khá thuận lợi cho nhiều người dùng có nhu cầu đơn giản, nhưng bên cạnh đó vẫn còn một số điểm cần lưu ý về mặt kỹ thuật. Trước tiên là cách này không nên áp dụng với những thiết bị assembled hoặc là network-based, còn đối với người dùng nâng cao hoặc muốn sử dụng những thành phần như RAID thì cũng không nên dùng UUID.




Phần tiếp theo của fstab sẽ được phân cách bằng khoảng trống hoặc 1 thẻ dữ liệu, hoặc là kết hợp cả 2. Tại đây, chúng ta sẽ tìm thấy phần dữ liệu được kết hợp.




Sau đó là những thể loại file hệ thống được tìm thấy và xác định trên phân vùng, chẳng hạn như: ext2/3/4, ReiserFS, jFS... Ví dụ ảnh chụp màn hình trên chỉ ra rằng phân vùng NTFS và chúng ta đang dùng ổ cứng ntfs-3g để truy cập vào hệ thống.


Một số đặc điểm khác:


Tiếp theo là một vài điểm đặc trưng của fstab:


- auto/noauto: chỉ định rõ ràng phân vùng cụ thể có được khởi động cùng hệ thống hay không, chúng ta có thể chặn bất kỳ phân vùng nào tại phần kết hợp khi hệ thống khởi động bằng lệnh noauto.


- exec/noexec: chỉ định mỗi khi phân vùng nào đó có thể thực thi được các file nhị phân.


- ro/rw: trong đó ro là read only và rw là read write. Nếu bạn muốn thay đổi file hệ thống bằng tài khoản người dùng bình thường chứ không phải root thì sẽ phải chỉ định đối tượng rõ rằng bằng tham số rw.


- sync/async: đây là 1 tính năng khá thú vị, sync sẽ yêu cầu lệnh viết được thực hiện trên dòng lệnh, khá phù hợp với những thiết bị lưu trữ bên ngoài như ổ USB, đĩa mềm... nhưng không thực sự tốt với ổ cứng di động. Còn async sẽ cho phép các câu lệnh được thực thi qua 1 khoảng thời gian nhất định nào đó.


- nouser/user: cung cấp cho người dùng quyền kết nối hoặc bỏ kết nối của các thiết bị lưu trữ bên ngoài, điểm quan trọng cần lưu ý ở đây là user sẽ tự động bao gồm noexec, do vậy nếu bạn muốn thực thi các file nhị phân bằng tài khoản người dùng thì hãy loại trừ tùy chọn exec.


Những tùy chọn này được phân cách bằng dấu phẩy, không khoảng trống, và đặt theo bất kỳ thứ tự nào. Tuy nhiên, những thiết bị có kết nối theo thời gian tạm thời như ổ USB thì sẽ không tuân theo quy luật trên trừ khi chúng ta tự tạo đối tượng áp dụng cho chúng bằng UUID trong fstab.




Ví dụ như ảnh chụp màn hình trên, 2 ổ cứng cắm ngoài đã có quyền kết hợp được kích hoạt, truy cập, đọc và ghi...


Dumping và Fscking:


dumping


Tùy chọn tiếp theo ở đây là giá trị theo mã nhị phân: 0 là false và 1 là true đối với dumping. Theo khuyến cáo của nhiều người sử dụng thì các bạn nên thiết lập giá trị 0.


passing


Lựa chọn cuối cùng được đề cập đến ở đây là giá trị số của passing: với chức năng chính là “thông báo” với hệ thống thứ tự sắp xếp của fsck hoặc thực hiện quá trình kiểm tra file hệ thống. Nếu 1 ổ đĩa hoặc phân vùng nào có giá trị 0 thì sẽ bị bỏ qua, giống như ổ cứng NTFS đã được format trong ví dụ trên. File hệ thống root sẽ luôn có giá trị 1 và những loại file system khác sẽ được áp dụng ngay sau đó. Cơ chế này rất phù hợp với ext3/4 và ReiserFS, còn một số file khác như FAT16/32ext2 thì sẽ được thực hiện sau đó.












T.Anh (HowToGeek) - QuanTriMang