Quản lý File System trên Linux Image Quản lý File System trên Linux

Bài viết này viết về việc quản lí File system trên hệ điều hành Linux.

1. File system trên Linux

File system được dùng để quản lý cách dữ liệu được đọc và lưu trên thiết bị.

File system cho phép người dùng truy cập nhanh chóng và an toàn khi cần thiết.

File system trên Linux

2. Các loại file system

Các loại file system trên hệ điều hành Linux:

Hệ điều hành Linux hỗ trợ một số loại file system gốc dược cung cấp bởi nhà phát triển Linux.

Ví dụ như:

  • ext3
  • ext4
  • squashfs
  • btrfs

Ngoài ra hệ điều hành Linux còn cung cấp việc triển khai các file system sử dũng trên các hệ điều hành khác.

Ví dụ như:

  • Windows ( ntfs , vfat )
  • SGI ( xfs )
  • IBM ( jfs )
  • MacOS ( hfs , hfs + )

Nhiều file system cũ cũng được hổ trợ như FAT,…

3. Phân vùng ( partitoins )

Mỗi file system trên hệ thống Linux chiếm một phân vùng của ổ đĩa. Các phân vùng này giúp cho việc tổ chức nội dung của các đĩa theo loại và sử dụng chứa dữ liệu.

Ví dụ: Trong hệ điều hành Linux các chương trình quan trọng để chạy hệ thống được giữ tại một phân vùng riêng của ổ đĩa là root hoặc / so với chương trình chứa các tệp sở hữu của người dùng thông thường của hệ thống đó /home. Ngoài ra, các tệp tạm thời được tạo và hủy trong quá trình hoạt động bình thường của Linux có thể nằm trên các phân vùng chuyên dụng.

Hình ảnh minh hoạ cho việc sử dụng tiện ích gparted, hiển thị phân vùng trên hệ thống có ba hệ điều hành trên đó: Windows 10, RHEL 7 và Ubuntu 18.04.

4. Mount point, mounting, umounting

4.1: Mount Ponit

Tất cả các phân vùng được gắn vào hệ thống thông qua một Mount Ponit. Nó sẽ xác định vị trí của một tập dữ liệu trong hệ thống tệp. Thông thường, tất cả các phân vùng được kết nối thông qua phân vùng gốc . Trên phân vùng này, được chỉ định bằng dấu gạch chéo (/), các thư mục được tạo. Các thư mục trống này sẽ là điểm bắt đầu của các phân vùng được gắn vào chúng.

Mount ponit

4.2: Mounting

Lệnh mount được sử dụng để đính kèm một file system trong cây hệ thống tập tin. Các đối số cơ bản là nút thiết bị và điểm gắn kết.

Ví dụ:

mount /dev/cdrom /home

Sẽ đính kèm file system có trong phân vùng đĩa được liên kết với thiết bị /dev/cdrom , vào cây hệ thống tập tin tại điểm gắn kết /home. Có nhiều cách khác để chỉ định phân vùng khác với thiết bị, chẳng hạn như sử dụng nhãn đĩa hoặc UUID.

4.3: Umounting

Bạn sử dụng lệnh umount để ngắt kết nối thiết bị khỏi hệ thống. Ví dụ để gỡ bỏ ổ CD-ROM bạn gõ lệnh:

umount /mnt/cdrom /home

Hoặc

umount /dev/cdrom /home

Nếu rút trực tiếp thiết bị khỏi máy tính mà không unmount trước thì có thể dữ liệu trên thiết bị sẽ bị lỗi hoặc làm hỏng thiết bị.

Lệnh umount chứ không phải unmount.Chỉ có người dùng root hoặc đăng nhập với quuyền root sử dụng sudo mới có thể chạy được lệnh này.

mount không có đối số sẽ hiển thị tất cả các hệ thống tập tin được gắn hiện tại. Lệnh df -Th (không có đĩa) hiển thị thông tin về các hệ thống tệp được gắn kết, bao gồm loại hệ thống tệp và thống kê sử dụng về không gian hiện được sử dụng và có sẵn.

5. File /etc/fstab

fstab là tập tin cấu hình chứa các thông tin về các phân vùng ổ 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. Để điều chỉnh fstab cần có quyền root và dùng chương trình xử lý văn bản để điều chỉnh.

Mô tả cấu trúc của file /etc/fstab:

Cấu trúc file /etc/fstab

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

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

  • swap: được sử dụng cho swap partition

Cột thứ 4: Các tuỳ chọn mount

  • Đây là cột quan trọng, nó quy định xem có mount tự động lúc khởi động, user có quyền mount, có cho phép thực thi các file trên đó không.

Cột thứ 5 và 6: Các tuỳ chọn cho lệnh dump và fsck

  • Dump là một tiện ích backup file system, gõ lệnh man dump để biết thêm thông tin

  • Fsck là tiện ích để kiểm tra file system xem có bị hư hỏng không.

Cột thứ 5 là thông số tuỳ chọn cho dump. Dump sẽ dựa vào con số cấu hình để biết phải làm gì, nếu nó là 0 thì dump sẽ bỏ qua, 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

6. NFS và Network File system

Một Network File systems có thể có tất cả dữ liệu của nó trên một máy hoặc có trải rộng trên nhiều nút mạng. Các Network File system khác nhau có thể sử dụng trên các máy riêng lẻ. Một Network File system có thể được coi là một nhóm hệ thống tập tin cấp thấp hơn với các loại khác.

NFS

Nhiều quản trị viên hệ thống gắn các thư mục home của người dùng từ xa trên một máy chủ để cho phép họ truy cập vào cùng một tệp và tệp cấu hình trên nhiều hệ thống máy khách. Điều này cho phép người dùng đăng nhập vào các máy tính khác nhau, nhưng vẫn có quyền truy cập vào cùng các tệp và tài nguyên.

Hệ thống tệp phổ biến nhất như vậy được đặt tên đơn giản là NFS có lịch sử rất dài và lần đầu tiên được phát triển bởi Sun microsystems. Một triển khai phổ biến khác là CIFS (còn được gọi là SAMBA), có gốc Microsof.

6.1: NFS on the Server

Khởi động NFS trên hệ thống máy chủ bằng cách gõ lệnh.

systemctl start nfs

Tệp /etc/export chức các thư mục sẳn sàng chia sẻ cho các hệ thống khác qua NFS.

6.2: NFS on the Client

Trên máy Client muốn hệ thống tệp từ xa được gắn tự động khi khởi động hệ thống, tệp /etc/fstab được sửa đổi để thực hiện việc này.

Ví dụ: một mục trong tệp /etc/fstab của máy khách có thể trông giống như sau:

servername:/projects /mnt/nfs/projects nfs defaults 0 0

Chúng ta có thể gắn hệ NFS mà không cần khởi động lại hoặc dưới dạng gắn kết một lần bằng cách trực tiếp sử dụng lệnh mount :

mount servername:/projects /mnt/nfs/projects

Lưu ý: Nếu tệp /etc/fstab không được sửa đổi, mount từ xa này sẽ không xuất hiện vào lần tiếp theo hệ thống được khởi động lại. Bạn có thể sử dụng tùy chọn nofail trong fstab trong trường hợp máy chủ NFS không hoạt động khi khởi động.