Mục lụcHệ thống tệp tin trên Linux1. Các thành phần của hệ thống tệp tin 2. Các tùy chọn trong File system 3. Tổ chức tệp tin trên Linux 4. Các thành phần trên tệp tin Linux 5. Kiểm tra dung lượng đĩa6. Quyền truy xuất File, thư mục
Mục lục Hệ thống tệp tin Linux Các thành phần hệ thống tệp tin Các tùy chọn File system Tổ chức tệp tin Linux Các thành phần tệp tin Linux Kiểm tra dung lượng đĩa Quyền truy xuất File, thư mục TÀI LIỆU THAM KHẢO HỆ ĐIỀU HÀNH UNIX – LINUX (2004)-NXB GIÁO DỤC LINUX LPI-101 ISE ĐẠI HỌC HÀ NỘI RUNNING LINUX (o’reilly) GIÁO TRÌNH NGUYÊN LÝ HỆ ĐIỀU HÀNH- ĐẠI HỌC CÔNG NGHIỆP HN THE LINUX DEVICE FILE- SYSTEM ( rechard gooch) OPERATING SYSTEM CONCEPTS THÀNH VIÊN VÀ PHÂN CÔNG NHIỆM VỤ THÀNH VIÊN NHIỆM VỤ Bàn Đức Thăng Tìm hiểu nghiên cứu về: Tổ chức tệp tin Phùng Văn Tin Linux thành phần tệp tin Linux Tìm hiểu nghiên cứu về: Kiểm tra dung lượng đĩa quyền truy xuất File, thư mục Lê Đăng Quang Tìm hiểu nghiên cứu về: Các thành phần hệ thống tệp tin tùy chọn File system HỆ THỐNG TỆP TIN TRÊN LINUX Tổng quan: Mỗi hệ điều hành có cách tổ chức lưu trữ liệu riêng Ở mức vật lý, đĩa định dạng từ thành phần sector, track, cylinder Ở mức logic, hệ thống sử dụng cấu trúc riêng, dùng mục hay phân cấp để xác định liệu từ mức logic tới mức vật lý Cách tổ chức gọi hệ thống tập tin (file system) Một hệ thống tập tin thiết bị mà định dạng để lưu trữ tập tin thư mục Hệ thống tập tin Linux bao gồm: đĩa mềm, CD-ROM, partition đĩa cứng Những hệ thống tập tin thường tạo trình cài đặt hệ điều hành Nhưng bạn thay đổi cấu trúc hệ thống tập tin thêm thiết bị hay chỉnh sửa partition tồn Như vậy, việc biết hiểu cấu trúc hệ thống tập tin Linux thật quan trọng Linux có khả hỗ trợ nhiều loại file hệ thống với cơng nghệ tích hợp vào bên kernel Các thành phần hệ thống tệp tin + Superblock + Inode + Storageblock + Loại tập tin Super Block: cấu trúc tạo vị trí bắt đầu hệ thống tập tin Nó lưu trữ thông tin hệ thống tập tin như: Thông tin block-size, free block, thời gian gắn kết(mount) cuối tập tin Inode (256 byte): Lưu thông tin tập tin thư mục tạo hệ thống tập tin Nhưng chúng không lưu tên tập tin thư mục thực Mỗi tập tin tạo phân bổ inode lưu thông tin sau: + Loại tập tin quyền hạn truy cập tập tin + Người sở hữu tập tin + Kích thước tập tin số hard link đến tập tin + Ngày thời gian chỉnh sửa tập tin lần cuối + Vị trí lưu nội dung tập tin hệ thống tập tin Storageblock: Là vùng lưu liệu thực tập tin thư mục Nó chia thành Data Block Dữ liệu lưu trữ vào đĩa data block Mỗi block thường chứa 1024 byte Ngay tập tin có ký tự phải cấp phát block để lưu Khơng có ký tự kết thúc tập tin Loại tập tin Trong linux, tập tin dùng cho việc lưu trữ liệu Nó bao gồm thư mục thiết bị lưu trữ Một tập tin liệu, hay thư mục xem tập tin Khái niệm tập tin mở rộng dùng cho thiết bị máy in, đĩa cứng, nhớ coi tập tin,các tập tin linux chia làm loại chính: + Tập tin chứa liệu bình thường + Thư mục + Tập tin thiết bị Tập tin liệu: Đây tập tin theo định nghĩa truyền thống, liệu lưu trữ thiết bị lưu trữ đĩa cứng, CD-ROM, … Bạn đưa liệu vào tập tin đoạn source chương trình, tập tin văn hay tập tin thực thi dạng mã máy, lệnh Linux tất tập tin tạo người dùng Tập tin thư mục: Thư mục không chứa liệu, mà chứa thông tin tập tin thư mục Thư mục chứa hai trường tập tin tên tập tin inode number Tập tin thiết bị: Chứa file device để đại diện hardware, chứa đựng thông tin tài nguyên hệ thống (vd: /dev; /proc) Các tùy chọn File System: Có nhiều dạng file hệ thống Linux, loại áp dụng với mục đích riêng biệt Điều khơng có nghĩa file hệ thống áp dụng trường hợp khác, mà tùy theo nhu cầu mục đích người sử dụng, đưa phương án phù hợp - Ext - Extended file system: định dạng file hệ thống thiết kế dành riêng cho Linux Có tổng cộng phiên phiên lại có tính bật Phiên Ext phần nâng cấp từ file hệ thống Minix sử dụng thời điểm đó, lại khơng đáp ứng nhiều tính phổ biến ngày Và thời điểm này, khơng nên sử dụng Ext có nhiều hạn chế, khơng cịn hỗ trợ nhiều distribution - Ext2 - The Second Extended File System: thực chất file hệ thống journaling, phát triển để kế thừa thuộc tính file hệ thống cũ, đồng thời hỗ trợ dung lượng ổ cứng lên tới TB Ext2 không sử dụng journal có liệu ghi vào ổ đĩa Do lượng yêu cầu viết xóa liệu thấp, phù hợp với thiết bị lưu trữ bên thẻ nhớ, ổ USB Còn ổ SSD ngày tăng tuổi thọ vòng đời khả hỗ trợ đa dạng hơn, chúng hồn tồn không sử dụng file hệ thống không theo chuẩn journaling - Ext3 Ext2 kèm với journaling Mục đích Ext3 tương thích ngược với Ext2, ổ đĩa, phân vùng dễ dàng chuyển đổi chế độ mà không cần phải format trước Tuy nhiên, vấn đề tồn giới hạn Ext2 nguyên Ext3, ưu điểm Ext3 hoạt động nhanh, ổn định nhiều Không thực phù hợp để làm file hệ thống dành cho máy chủ khơng hỗ trợ tính tạo disk snapshot file khơi phục khó để xóa bỏ sau - Ext4: giống Ext3, lưu giữ ưu điểm tính tương thích ngược với phiên trước Như vậy, dễ dàng kết hợp phân vùng định dạng Ext2, Ext3 Ext4 ổ đĩa Ubuntu để tăng hiệu suất hoạt động Trên thực tế, Ext4 giảm bớt tượng phân mảnh liệu ổ cứng, hỗ trợ file phân vùng có dung lượng lớn Thích hợp với ổ SSD so với Ext3, tốc độ hoạt động nhanh so với phiên Ext trước đó, phù hợp để hoạt động server, lại không Ext3 - BtrFS – thường phát âm Butter Better FS, giai đoạn phát triển Oracle có nhiều tính giống với ReiserFS Đại diện cho B-Tree File System, hỗ trợ tính pool ổ cứng, tạo lưu trữ snapshot, nén liệu mức độ cao, chống phân mảnh liệu nhanh chóng thiết kế riêng biệt dành cho doanh nghiệp có quy mơ lớn Mặc dù BtrFS không hoạt động ổn định số tảng distro định, cuối thay mặc định Ext4 cung cấp chế độ chuyển đổi định dạng nhanh chóng từ Ext3/4 Do vậy, BtrFS phù hợp để hoạt động với server dựa vào hiệu suất làm việc cao, khả tạo snapshot nhanh chóng hỗ trợ nhiều tính đa dạng khác Bên cạnh đó, Oracle cố gắng phát triển tảng công nghệ nhằm thay cho NFS CIFS gọi CRFS với nhiều cải tiến đáng kể mặt hiệu suất tính hỗ trợ Những kiểm tra thực tế BtrFS đứng sau Ext4 áp dụng với thiết bị sử dụng nhớ Flash SSD, server database - ReiserFS: coi bước tiến lớn file hệ thống Linux, lần đầu công bố vào năm 2001 với nhiều tính mà file hệ thống Ext khó đạt Nhưng đến năm 2004, ReiserFS thay Reiser4 với nhiều cải tiến Tuy nhiên, trình nghiên cứu, phát triển Reiser4 “chậm chạp” không hỗ trợ đầy đủ hệ thống kernel Linux Đạt hiệu suất hoạt động cao file nhỏ file log, phù hợp với database server email - XFS phát triển Silicon Graphics từ năm 1994 để hoạt động với hệ điều hành riêng biệt họ, sau chuyển sang Linux năm 2001 Khá tương đồng với Ext4 số mặt đó, chẳng hạn hạn chế tình trạng phân mảnh liệu, khơng cho phép snapshot tự động kết hợp với nhau, hỗ trợ nhiều file dung lượng lớn, thay đổi kích thước file liệu shrink – chia nhỏ phân vùng XFS Với đặc điểm XFS phù hợp với việc áp dụng vào mơ hình server media khả truyền tải file video tốt Tuy nhiên, nhiều phiên distributor yêu cầu phân vùng /boot riêng biệt, hiệu suất hoạt động với file dung lượng nhỏ không so với định dạng file hệ thống khác, khơng thể áp dụng với mơ hình database, email vài loại server có nhiều file log Nếu dùng với máy tính cá nhân, lựa chọn tốt nên so sánh với Ext, hiệu suất hoạt động khơng khả thi, ngồi khơng có trội hiệu năng, quản lý so với Ext3/4 - JFS IBM phát triển lần năm 1990, sau chuyển sang Linux Điểm mạnh dễ nhận thấy JFS tiêu tốn tài nguyên hệ thống, đạt hiệu suất hoạt động tốt với nhiều file dung lượng lớn nhỏ khác Các phân vùng JFS thay đổi kích thước lại khơng thể shrink ReiserFS XFS, nhiên lại có tốc độ kiểm tra ổ đĩa nhanh so với phiên Ext - ZFS giai đoạn phát triển Oracle với nhiều tính tương tự Btrfs ReiserFS Mới xuất năm gần có tin đồn Apple dùng làm file hệ thống mặc định Phụ thuộc vào thỏa thuận điều khoản sử dụng, Sun CDDL ZFS khơng tương thích với hệ thống nhân kernel Linux, nhiên hỗ trợ toàn Linux’s Filesystem in Userspace – FUSE để sử dụng ZFS Người sử dụng gặp khó khăn cài đặt hệ điều hành Linux có u cầu FUSE khơng hỗ trợ distributor - Swap coi thực khơng phải dạng file hệ thống, chế hoạt động khác biệt, sử dụng dạng nhớ ảo khơng có cấu trúc file hệ thống cụ thể Không thể kết hợp đọc liệu được, lại dùng kernel để ghi thay đổi vào ổ cứng Thơng thường, sử dụng hệ thống thiếu hụt nhớ RAM chuyển trạng thái máy tính chế độ Hibernate Journaling gì? Điểm trước tiên cần tìm hiểu Journaling trước nghiên cứu kỹ vấn đề Điều bạn cần nhớ journaling tất loại file hệ thống ngày phải sử dụng journaling theo nhiều dạng khác tảng laptop desktop với Linux Journaling sử dụng ghi liệu lên ổ cứng đóng vai trị đục lỗ để ghi thơng tin vào phân vùng Đồng thời, khắc phục vấn đề xảy ổ cứng gặp lỗi q trình này, khơng có journal hệ điều hành khơng thể biết file liệu có ghi đầy đủ tới ổ cứng hay chưa Chúng ta hiểu nơm na sau: trước tiên file ghi vào journal, đẩy vào bên lớp quản lý liệu, sau journal ghi file vào phân vùng ổ cứng sẵn sàng Và thành công, file xóa bỏ khỏi journal, đẩy ngược bên ngồi q trình hồn tất Nếu xảy lỗi thực file hệ thống kiểm tra lại journal tất thao tác chưa hoàn tất, đồng thời ghi nhớ lại vị trí xảy lỗi Tuy nhiên, nhược điểm việc sử dụng journaling phải “đánh đổi” hiệu suất việc ghi liệu với tính ổn định Bên cạnh đó, cịn có nhiều cơng đoạn khác để ghi liệu vào ổ cứng với journal trình khơng Thay vào có file metadata, inode vị trí file ghi lại trước thực ghi vào ổ cứng Tổ chức tập tin Linux Nếu người dùng sử dụng quen môi trường Window, chuyển sang mơi trường Linux phân vân khó hiểu cấu trúc file system Ở phân biệt hiểu vai trò thư mục cấp độ cao linux Mỗi hệ thống file có cấu trúc giống dựng ngược Gốc đặt bên Như đề cập trên, phân vùng tạo có mount point Công việc thường thi hành trình cài đặt Để hiểu kỹ vấn đề này, quan sát kiến trúc phân cấp hệ thống file Linux đây: Hình 2.1.Tổ chức tệp tin Linux Trong hình trên, gốc kiến trúc phân cấp thư mục gốc “/” Nó gần tương tự “C:\” DOS ngoại trừ việc “C:\” phân vùng đĩa cứng đầu tiên, thư mục gốc “/” Linux ánh xạ phân vùng Các thư mục sở thư mục cấp nằm thư mục gốc “/” Chúng tạo gói thường có tên filesystem Tiến trình khởi động ánh xạ thư mục gốc nhằm giúp đỡ tất thao tác kiểm tra phân vùng, nạp module cho nhân…vv ánh xạ thư mục gốc xong chương trình như: fsck, insmod hay mount sử dụng Để đảm bảo cho q trình khởi động diễn xác, thư mục /dev, /bin, /sbin, /etc /lib bắt buộc phải thư mục “/” ánh xạ phân vùng khác Các thành phần tệp tin Linux 4.1/Root -Mỗi file thư mục root directory -Chỉ có user root có quyền thư mục cấp bên -Còn /Root home directory user root 4.2/bin –User Binary -Chứa file thực thi dạng binary -các lệnh sử dụng thông thường linux sử dụng single-user mode đặ cấu trúc -các câu lệnh sử dụng tất user hệ thống đặt Ví dụ số lệnh ps, ls, ping, grep, cp 4.3/sbin – System Binaries -Giống /bin, bên / sbin chứa đựng file thực thi dạng binary Các lệnh bên /sbin thường sử dụng system administrator dùng cho mục đích trì quản trị hệ thống -Một số lệnh ví dụ iptablas, reboot, ifconfig… 4.4/ect – Configuration Files -Thơng thường /ect chứa file cấu hình cho chương trình hoạt động -Ở /ect thường chứa scripts dùng để start, stop, kiểm tra status cho chương trình -Ví dụ /ect/ resolv.conf (cấu hình dns-server), hay /ect/network dùng để quản lý dịch vụ network 4.5 /dev – Device Files - chứa file device để đại diện hardware - Ví dụ /dev/tty1 hay /dev/sda 4.6 /proc – process information -Chứa đựng thông tin trình xử lý hệ thống - Đây pseudo filesystem chứa đựng thông tin process chạy - Đây virtual filesystem chứa đựng thông tin tài nguyên hệ thống ví dụ: /proc/cpuinfo cung cấp cho ta thơng số kỹ thuật CPU 4.7 /var – Variable files - Chứa đựng file có thay đổi q trình hoạt động hệ điều hành -ví dụ system log đặt vị trí +system log file/var/log +database file /var/lib +email /var/mail +các pint queue /var/spool +lock file /var/lock +các filetamj thời cần cho trình reboot /var/tmp 4.8 /tmp – Temporary Files -Thư mục chứa file tạo hệ thống user -Các file bên thư mục xóa hệ thống reboot 4.9 /usr – User Programs -chứa file binary, library, tài liệu ,source-code cho chương trình -/usr/bin chứa file binary cho chương trình user Nếu user trình thực thi lệnh ban đầu tìm kiếm /bin, nhưu khơng có tiếp tục nhìn vào /usr/bin Ví dụ số lệnh at Awk, cc… -/usr/bin chứa file binary cho system administrator Nếu ta khơng tìm thấy file system binary bên /sbin ta tìm /usr/sbin Ví dụ số lệnh cron, sshd, useradd, userdel -/usr/lib chứa file libraries cho /usr/bin /usr/sbin 4.10 /home –Home Directories -Home diretory chứa đựng thông tin cá nhân user - Ví dụ /home/athena, /home/student 4.11 /boot –Boot Loader Files -Chứa đựng boot loader files cần cho trình boot tùy theo phiên kernel - Các file Kernel intird, vmlinux, grup đặt bên duwois /boot Ví dụ initr.dimg-2.6.32-24-genneric, vmlinuz-2.6.32-24-generic 4.12 /lib – System Libraries - Ví dụ initrd.img-2.6.32-24-generic, vmlinuz-2.6.32-24-geberic -Chứa file liblary hỗ trợ file thực liblary nằm bên /bin /sbin -Tên file liblary thường Id* or lib*.so* Ví dụ Id-2.11.1.so, libncusecs.so.5.7 4.13 /opt – Optional add – on Application -opt đại diện chi optional -Chứa đựng chương trình thêm vào hãng khác 4.14 /mnt – Mount Directory -Chứa thư mục dùng để system admin thực trình mount 4.15 /media – Removable Directory -Chứa thư mục dùng để mount cho thiết bị removable Ví dụ CDROM, Floppy… 4.16 /src – Service Data - srv đại diện cho server, liên quan đến liệu Ví dụ /src/cvs chứa đựng CVS Kiểm tra dung lượng đĩa Sử dụng mount df Cả hai lệnh hoạt động mức thiết bị Hai lệnh mount umount dùng để quản trị hệ thống file gán kết file /etc/mtab Nếu sử dụng mount không tham số, tất hệ thống file gắn kết hệ thống liệt kê hình Kết giống file /etc/mtab Ngồi ra, nhân lưu giữ thơng tin hệ thống file kết nối /proc/mount Để xem thêm thông tin điểm kết nối sử dụng lệnh df Lệnh cho phép hiển thị thêm dung lượng đĩa sử dụng dung lượng cịn trống Đơn vị kích thước để hiển thị 1K Tiện ích sử dụng để hiển thị không gian đĩa sử dụng mức thư mục Vì vậy, du khơng thể hiển thị khoảng trống thừa đĩa 6 Quyền truy xuất File, Thư mục Thay đổi quyền truy xuất chủ sở hữu Quyền truy xuất file, thư mục chủ sở hữu định nghĩa để quy định cách thức truy cập liệu hệ thống Để thay đổi quyền truy cập, sử dụng lệnh chmod Có ba nhóm đối tượng tác động quyền truy cập là: u g o Người dùng sở hữu Nhóm người dùng sở hữu Không thuộc hai đối tượng Tùy chọn hay dùng với chmod, chown chgrp –R cho phép thay đổi thư mục, file bên thư mục định Ngoài cách sử dụng ký tự đại diện cho quyền: read=r, write=w, execute=x, chmod cho phép sử dụng số hệ bát phân để thay đổi quyền theo bảng sau: read write execute user rwx 4+2+1=7 group r-x 4+1=5 other rw4+2=6 Quyền truy xuất chuẩn Các hệ thống UNIX tạo file thư mục với quyền truy xuất chuẩn sau: Files Directories umask 666 -rw-rw-rw- 777 -rwxrwxrwx Là khái niệm thiết lập để định quyền truy xuất mặc định cho file thư mục tạo người dùng umask mặt nạ gồm số hệ bát phân Khi đó, quyền truy xuất mặc định file thư mục người dùng tính theo cơng thức sau: Final Permissions = Standard Permissions (logical AND) (NOT)Umask Quyền truy cập SUID Là quyền truy cập thiết lập root cho phép người dùng bình thường thi hành lệnh root Quyền thiết lập với tên s (nằm vị trí x nhóm u) gán số hệ bát phân 4000 Quyền truy cập SGID Là quyền truy cập cho phép người dùng thuộc nhóm sở hữu thi hành lệnh mà khơng cần dùng newgrp để chuyển nhóm Quyền thiết lập với tên s (nằm vị trí x nhóm g) gán số hệ bát phân 2000 Bit đánh dấu (The sticky bit) Quyền thiết lập với tên t (nằm vị trí x nhóm o) gán số hệ bát phân 1000 Quyền thiết lập để: Cho phép file thi hành nạp vào nhớ nhanh Cho phép thư mục cấm người dùng xóa file ... trị hệ thống file gán kết file /etc/mtab Nếu sử dụng mount không tham số, tất hệ thống file gắn kết hệ thống liệt kê hình Kết giống file /etc/mtab Ngoài ra, nhân lưu giữ thông tin hệ thống file. .. việc biết hiểu cấu trúc hệ thống tập tin Linux thật quan trọng Linux có khả hỗ trợ nhiều loại file hệ thống với công nghệ tích hợp vào bên kernel Các thành phần hệ thống tệp tin + Superblock + Inode... byte): Lưu thông tin tập tin thư mục tạo hệ thống tập tin Nhưng chúng không lưu tên tập tin thư mục thực Mỗi tập tin tạo phân bổ inode lưu thông tin sau: + Loại tập tin quyền hạn truy cập tập tin +