Skip to content

Tìm hiểu Linux Filesystem#

1. Filesystem là gì#

  • Filesystem xác định cách tổ chức và quản lý dữ liệu, cho phép truy cập nhanh chóng và an toàn đến các thư mục cần thiết.
  • Các loại filesystem được Linux hỗ trợ:
    • Filesystem cơ bản: ext2, ext3, ext4, XFS, NTFS, JFS, Btrfs,..
    • Filesystem dành cho dạng lưu trữ flash: ubifs, JFFS2,...
    • Filesystem cho cơ sở dữ liệu và các mục đích đặc biệt như procfs, sysfs, debugfs, squashfs,..
  • Một phân vùng chứa một filesystem và trên Linux, filesystem còn được hiểu là hệ thống phân cấp.

2. Hệ thống phân cấp trên Linux#

Linux filesystem được tổ chức theo quy chuẩn Filesystem Hierarchy Standard (FHS), tiêu chuẩn định nghĩa mục đích của mỗi thư mục.

Chức năng của các thư mục:

  • /: Thư mục gốc, mọi thư mục khác đều nằm dưới thư mục này.
  • /bin: Chứa các chương trình cơ bản.
  • /boot: Chứa file cần thiết khi khởi động hệ điều hành.
  • /dev: Chứa các tập tin thiết bị (CDRom, HDD, SSD, ...).
  • /etc: Chứa các tập tin cấu hình hệ thống.
  • /home: Thư mục cá nhân dành cho các user.
  • /lib: Chứa các thư viện cho chương trình.
  • /mnt: Chứa các mount point.
  • /opt: Chứa phần mềm mở rộng, thường từ bên thứ 3.
  • /sbin: Chứa các chương trình của hệ thống.
  • /srv: Chứa dữ liệu từ các dịch vụ trên hệ thống.
  • /tmp: Chứa các file tạm thời.
  • /usr: Chứa tiện ích và ứng dụng của user.
  • /var: Chứa các file biến.
  • /root: Chứa file cá nhân của user root.
  • /proc: Hệ thống ảo ghi chép về kernel và tiến trình, CPU.

3. Thư mục / (root) trong Linux#

  • Mỗi file hay thư mục đều bắt đầu bằng thư mục / (root).
  • Chỉ tài khoản root có quyền ghi trong thư mục này.
  • / là thư mục gốc, trong khi /root là thư mục cá nhân của user root.

4. Thư mục binary#

File binary chứa mã nguồn hoặc mã máy có thể thực thi.

  • /bin: Chứa các binary có thể thực thi bởi tất cả user.

  • /sbin: Chứa binary để cấu hình hệ điều hành, thường yêu cầu quyền root.

  • /lib: Chứa thư viện được chia sẻ cho các binary trong /bin/sbin.

  • /opt: Chứa phần mềm tùy chọn, không có trong các repository của bản phân phối.

5. Các thư mục chứa cấu hình#

  • /boot: Chứa các file cần thiết cho quá trình khởi động hệ thống.

  • /etc: Chứa các file cấu hình của hệ thống và ứng dụng.

  • /etc/init.d: Chứa script để chạy và dừng các daemon.

  • /etc/skel/: Mẫu thư mục home của user mới tạo.

  • /etc/sysconfig/: Chứa cấu hình của RHEL.

6. Các thư mục chứa dữ liệu#

  • /home: Thư mục cá nhân của user, chứa dữ liệu và cấu hình riêng của user.

  • /root: Thư mục lưu trữ dữ liệu và hồ sơ của user root.

  • /media: Chứa các mount point cho thiết bị lưu trữ di động như USB, đĩa CD.

  • /mnt: Chứa các mount point tạm thời.

  • /tmp: Dùng để lưu trữ dữ liệu tạm thời, không nên lưu dữ liệu quan trọng.

7. Các thư mục trong RAM#

  • /dev: Chứa file thiết bị không nằm trên ổ đĩa cứng, các phần cứng như ổ đĩa được đại diện bởi file thiết bị.

  • /dev/tty và /dev/pts: Đại diện cho các terminal kết nối đến hệ thống.

  • /dev/null: Thư mục đặc biệt, mọi thứ ghi vào đây sẽ bị mất.

  • /proc: Không lưu trên ổ cứng, cung cấp thông tin kernel và các tiến trình, cập nhật liên tục.

  • /proc/kcore: Đại diện bộ nhớ RAM vật lý.

  • /sys: Lưu trữ thông tin kernel về phần cứng, sử dụng từ kernel 2.6.

8. /usr - Unix System Resource#

Chứa dữ liệu có thể chia sẻ và chỉ đọc.

  • /usr/bin: Chứa file thực thi được coi là các lệnh.

  • /usr/include: Chứa thư viện cho C.

  • /usr/lib: Chứa thư viện không sử dụng trực tiếp từ user.

  • /usr/local: Dùng để cài đặt các phần mềm local.

  • /usr/share: Chứa dữ liệu độc lập, như trang hướng dẫn trong /usr/share/man.

  • /usr/src: Chứa file nguồn của kernel.

9. /var - Dữ liệu biến#

Chứa file log, cache và spool với kích thước thay đổi.

  • /var/log: Trung tâm chứa các file log.

  • /var/log/messages: File log kiểm tra hệ thống (Ubuntu/Debian là /var/log/syslog).

  • /var/cache: Chứa cache của các ứng dụng.

  • /var/lib: Lưu trạng thái của ứng dụng.

  • /var/...: Chứa Process ID tại /var/run, file tạm khi reboot ở /var/tmp.