Tải bản đầy đủ (.docx) (26 trang)

Hệ thống tệp tin trong hệ điều hành Linux

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (438.01 KB, 26 trang )

Hệ thống tệp tin trong linux

ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN

BÀI TIỂU LUẬN
ĐỀ TÀI: NGHIÊN CỨU VỀ HỆ THỐNG TỆP TIN TRONG LINUX

MÔN: NGUYÊN LÝ HỆ ĐIÊU HÀNH

GIẢNG VIÊN: Nguyễn Thanh Hải
LỚP: 20211IT6067002
THÀNH VIÊN:
1.
2.
3.
4.
5.

Nguyễn Minh Khuê
Trần Thị Khánh Linh
Nguyễn Văn Vũ
Nguyễn Việt Hùng
Ngô Thế Tài

1


Hệ thống tệp tin trong linux

NGUYÊN LÝ CỦA VIỆC QUẢN LÝ HỆ THỐNG


TỆP TIN TRONG LINUX

LINUX LÀ MỘT HỌ CÁC HỆ ĐIỀU HÀNH TỰ
DO NGUỒN MỞ (OPEN SOURCE) TƯƠNG TỰ
UNIX VÀ DỰA TRÊN LINUX KERNEL, MỘT
HẠT NHÂN HỆ ĐIỀU HÀNH ĐƯỢC PHÁT
HÀNH LẦN ĐẦU TIÊN VÀO NGÀY 17 THÁNG 9
NĂM 1991, BỞI LINUS TORVALDS. ĐÂY LÀ
MỘT HỆ ĐIỀU HÀNH SỬ DỤNG CẢ GIAO DIỆN (GUI) VÀ DÒNG
LỆNH (COMMAND LINE) NHƯNG MẠNH MẼ VÀ ỔN ĐỊNH HƠN
CẢ CHÍNH LÀ CÁC DỊNG LỆNH.
MỘT BẢN PHÂN PHỐI LINUX (THƯỜNG ĐƯỢC GỌI TẮT LÀ
DISTRO) LÀ MỘT HỆ ĐIỀU HÀNH ĐƯỢC TẠO DỰNG TỪ TẬP HỢP
NHIỀU PHẦN MỀM DỰA TRÊN HẠT NHÂN LINUX VÀ THƯỜNG
CÓ MỘT HỆ THỐNG QUẢN LÝ GÓI TIN. CÁC BẢN PHÂN PHỐI
LINUX PHỔ BIẾN NHƯ: DEBIAN LINUX, UBUNTU, RED HAT
ENTERPRISE LINUX (RHEL) VÀ FEDORA, KALI LINUX, ARCH
LINUX,...
NHIỆM VỤ CỦA LINUX LÀ CHO PHÉP GIAO TIẾP GIỮA PHẦN
CỨNG VÀ PHẦN MỀM MÁY TÍNH, XỬ LÝ TIẾP NHẬN THƠNG TIN
ĐẦU VÀO VÀ TRẢ KẾT QUẢ RA MÀN HÌNH, ĐÂY CHÍNH LÀ
CHỨC NĂNG CƠ BẢN NHẤT CỦA MỘT HỆ ĐIỀU HÀNH.

2


Hệ thống tệp tin trong linux

MỤC LỤC
1.


Cơ bản về Hệ thống tệp tin................................................................................................................................................. 3
1.1 Tệp tin (File)............................................................................................................................................................................ 3
Đặc điểm của tệp tin:............................................................................................................................................................ 4
1.2 Hệ tệp tin (File system)...................................................................................................................................................... 5

2.

Hệ thống Tệp tin trên Linux................................................................................................................................................ 5
2.1. Cấu trúc Tệp tin trên Linux:............................................................................................................................................. 5
2.2. Danh sách một số Thư mục tiêu biểu trong hệ điều hành Linux:....................................................................7
2.3. Các định dạng File trong Linux..................................................................................................................................... 10
2.3.1 Hệ thống tệp Ext........................................................................................................................................................ 11
2.3.2. Hệ thống tệp Ext2..................................................................................................................................................... 12
2.3.3. Ghi nhật ký hệ thống tệp - Journaling File Systems....................................................................................13
2.3.4. Hệ thống tệp nhật ký Linux mở rộng (The Extended Linux journaling filesystems)....................15
2.3.5. Hệ thống tệp Ext3..................................................................................................................................................... 16
2.3.6. Hệ thống tệp Ext4..................................................................................................................................................... 17
2.3.7. Reiser File System...................................................................................................................................................... 18
2.3.8. Hệ thống tệp nhật ký (JFS)................................................................................................................................... 19
2.3.9. Hệ thống tệp XFS...................................................................................................................................................... 19
2.4. Các thành phần của hệ thống tập tin:....................................................................................................................... 22
2.5.

Mount............................................................................................................................................................................... 23

1. C Ơ B Ả N V Ề H Ệ TH Ố NG T Ệ P TIN
1.1 T Ệ P TIN (FILE)
Thông tin lưu trữ trên nhiều phương tiện/ thiết bị lưu trữ khác nhau (ví
dụ như đĩa từ, băng từ, đĩa quang,…) dung lượng lớn, cho phép lưu trữ lâu dài

và được tập hợp một cách có tổ chức theo đơn vị lưu trữ thông tin ghi trên thiết
bị lưu trữ được gọi là Tệp tin (File).

3


Hệ thống tệp tin trong linux

Như vậy, thực chất Tệp tin là đơn vị logic để hệ điều hành quản lý thơng
tin trên đĩa hoặc có thể hiểu tệp tin là đơn vị lưu trữ của hệ điều hành trên bộ
nhớ ngồi. (Thuộc tính gồm: Tên, người sở hữu, thuộc tính trạng thái, kích
thước, ngày giờ, thuộc tính bảo vệ,...)
● Thư mục (Directory): là một dạng tệp tin đặc biệt có cơng dụng như một
ngăn chứa, thường được sử dụng để chứa các tệp tin và thư mục khác.
● Đường dẫn (Path): là một dãy các tên thư mục được ngăn cách bởi ký tự “/”
để xác định được vị trí của tài nguyên trên hệ thống.
● Hệ thống Tệp tin (File system): là một cơ sở dữ liệu các tệp tin và thư mục,
được đính kèm vào thư mục gốc hoặc thư mục bất kỳ của hệ thống file khác
đã được đính kèm trước đó. Mỗi phân vùng là một hệ thống file. Đĩa CD
hoặc USB cũng là một hệ thống tệp tin. Mỗi hệ điều hành có cách tổ chức
lưu trữ dữ liệu riêng, nó cho phép người dùng truy cập nhanh chóng và an
tồn khi cần thiết.

Đ Ặ C ĐI Ể M C Ủ A T Ệ P TIN:

+ Một tệp tin thường được lưu trữ ở bộ nhớ ngoài (đĩa cứng, đĩa mềm,
các thiết bị lưu trữ dữ liệu kỹ thuật số khác…).
+ Nội dung tệp tin có thể là rỗng và tệp tin này cịn gọi là tệp tin rỗng
hay tệp tin trống.
+ Độ dài của tệp tin thường tùy thuộc vào kiến trúc phần cứng cũng như

khả năng phần mềm.

4


Hệ thống tệp tin trong linux

+ Đơn vị độ lớn nhỏ nhất của tệp tin là byte.
+ Mỗi tệp tin có một tên duy nhất trong cùng một thư mục trong hệ
thống.
+ Tên tệp tin thường bao gồm 2 phần: phần tên và phần mở rộng (khơng
nhất thiết phải có) ngăn cách nhau bởi dấu “.” .
1.2 H Ệ T Ệ P TIN (FILE SYSTEM)
- Để quản lý dữ liệu trên các phương tiện lưu trữ ngồi một cách có hiệu
quả, hệ điều hành cần phải tổ chức các file theo một nguyên tắc nhất định.
- Như vậy, Hệ File “là được dùng để chỉ các phương pháp và cấu trúc dữ
liệu mà một hệ điều hành sử dụng để theo dõi các tập tin trên ổ đĩa hoặc
các phân vùng. Hệ thống tập tin cũng kiểm soát cách lưu trữ và truy xuất
dữ
liệu”
- Khơng có hệ thống tập tin, thông tin được lưu trong các phương tiện lưu
trữ sẽ là một khối dữ liệu lớn mà khơng có cách nào để biết nơi một phần
thông tin dừng lại và phần tiếp theo bắt đầu.
● Mặc dù các hệ File có thể được tổ chức theo các nguyên tắc khác nhau
nhưng cần phải đảm bảo các yêu cầu chung như sau:
➔ Hệ file phải được tổ chức sao cho dễ tìm kiếm, dễ lưu trữ, cập nhật,
tiết kiệm khơng gian nhớ
➔ Phải đảm bảo tính độc lập của hệ file với hệ thống và các thiết bị
ngoại vi.
➔ Hệ File phải đảm bảo tính an tồn dữ liệu khi có sự cố chương

trình hoặc kỹ thuật
➔ Hệ File phải đảm bảo tính an tồn trong vấn đề truy nhập thơng tin
của người sử dụng

2. H Ệ TH Ố NG T Ệ P TIN TRÊN LINUX
5


Hệ thống tệp tin trong linux

2.1. C Ấ U TRÚC T Ệ P TIN TRÊN LINUX:
Một hệ thống tệp tin là một tập hợp logic của các tệp tin trên một vùng
phân hoạch (partition) hoặc một đĩa. Một vùng phân hoạch là một nơi chứa
thơng tin và có thể tổ hợp thành một đĩa cứng nếu muốn.
Không giống như trên Windows, trên Linux khơng có khái niệm ổ đĩa
logic là C hay D. Hệ điều hành Linux khi được cài đặt thì nó sẽ coi tất cả đều là
các tệp tin (file) thậm chí cả các thiết bị như ổ đĩa và chỉ sử dụng trên đúng ổ
đĩa được cài đặt đó. Từ đó nó sẽ phân chia thành nhiều thư mục nhỏ khác. Nói
theo cách khác thì Linux có khả năng hỗ trợ nhiều loại file hệ thống nhất hiện
nay với cơng nghệ được tích hợp vào bên trong bộ kernel.
Hệ thống tệp tin (file system) có thể được tìm thấy ở trên ổ đĩa cứng, ổ
đĩa mềm, đĩa CD và các phương tiện lưu trữ cho phép truy cập ngẫu nhiên. Nó
quản lý tất cả trên một “Hệ thống tệp tin” duy nhất mặc dù các tệp tin này có thể
nằm ở nhiều phân vùng ổ đĩa vật lý khác nhau, bắt đầu ở gốc là một thư mục
“root” và đây là thư mục ở mức cao nhất. Tất cả các thư mục khác đều được đặt
sau thư mục gốc, gọi là “Cây thư mục”

Một hệ thống tệp tin là một tập hợp của các tệp tin và thư mục mà có các đặc
tính:
6



Hệ thống tệp tin trong linux

+ Thư mục gốc “root” (/) : chứa các tệp tin và thư mục khác.
+ Mỗi tệp tin và thư mục được xác định duy nhất bởi tên của nó, thư
mục mà trong đó nó cư trú, và một sự nhận diện duy nhất, được gọi
theo cách đặc trưng là inode.
+ Theo quy ước, thư mục gốc có số inode là 2 và thư mục lost +
found có số inode là 3. Số inode 0 và 1 khơng được sử dụng. Các
số inode có thể được gửi bởi trình xác định trong chức năng -i của
lệnh ls.
+ Có đặc tính khác nữa là tự chứa. Khơng có sự phụ thuộc giữa một
hệ thống tệp tin này với một hệ thống tệp tin khác.

2.2. DANH SÁCH M Ộ T S Ố TH Ư M ỤC TIÊU BI ỂU TRONG H Ệ ĐI ỀU
HÀNH LINUX:

Thư

Mô tả

mục
/

Là thư mục chính (thư mục cao cấp nhất ) mà chỉ chứa các thư mục
cần thiết ở cấp cao nhất trong cấu trúc tệp tin.
( Khác với ‘/root’- là thư mục home của root user )

7



Hệ thống tệp tin trong linux

/bin

Thư mục này chứa các chương trình thực thi và các chương trình
khởi động của hệ thống.
(Chương trình của người dùng)

/dev

Chứa các tập tin thiết bị hoặc các file đặc biệt. (Các file thiết bị)

/etc

Chứa các thiết lập của hệ thống, các tệp cấu hình của Linux
(Các file cấu hình)

/lib

Chứa các thư viện hỗ trợ các file thực thi trong /bin và /sbin và đôi
khi các tệp liên quan đến Kernel. Chúng thường bắt đầu bằng ld*
hoặc lib *.so.*.
(Thư viện hệ thống)

/boot

Chứa các tệp tin để khởi động hệ thống ví dụ như initrd, vmlinux.
grub,...

(Các file khởi động)

/home

Chứa thư mục chính cho người sử dụng và các tài khoản khác.
(Thư mục người dùng)

/mnt

Sử dụng để gắn kết (mount) các hệ thống tệp tin tạm thời, như
cdroom và đĩa mềm ….
(Thư mục để mount)

/proc

Chứa tất cả các tiến trình được đánh dấu như một tệp tin bởi số tiến

8


Hệ thống tệp tin trong linux

trình hoặc thơng tin khác mà là động lực của hệ thống.
(Thông tin về các tiến trình)
/tmp

Giữ các tệp tin tạm thời được sử dụng giữa quá trình khởi động hệ
thống.
( Các file tạm)


/usr

Chứa các ứng dụng, thư viện, tài liệu và mã nguồn các chương trình
chạy ở level 2 của hệ thống.
(Chương trình của người dùng ).

/var

Một thư mục đặc thù, chứa các file có sự thay đổi về kích thước
trong q trình hoạt động của hệ điều hành cũng như của ứng dụng.
(File về biến của chương trình)
ví dụ thơng tin về log file : /var/log , các gói cơ sở dữ liệu : /var/lib…

/sbin

Chứa các tệp tin (có thể chạy) nhị phân, là chương trình của admin,
thường dành cho quản lý hệ thống. Ví dụ như các tiện ích fdisk và
ifconfig, iptables,...

/root

Thư mục nhà của người dùng có quyền cao nhất (root), người ngoài
thường bị cấm truy cập.

/opt

Thư mục chứa các phần mềm cài thêm mà không nằm trong phần cài
đặt mặc định được thêm vào từ các nhà cung cấp độc lập. Các ứng
dụng sẽ được cài ở /opt hoặc một thư mục con của /opt .


9


Hệ thống tệp tin trong linux

/srv

dữ liệu được sử dụng bởi các máy chủ lưu trữ trên hệ thống như
/srv/svs

/kernel Chứa các tệp kernel.

Một số thư mục tiêu biểu trên hệ điều hành Linux

10


Hệ thống tệp tin trong linux

2.3. CÁC Đ Ị NH D Ạ NG FILE TRONG LINUX
Có nhiều kiểu file hệ thống trong Linux, mỗi kiểu sẽ được áp dụng với
từng mục đích riêng nhưng khơng có nghĩa rằng khơng thể được sử dụng trong
trường hợp khác. Tùy theo nhu cầu và mục đích người sử dụng, người dùng sẽ
đưa ra phương án phù hợp nhất.
Hệ thống Linux ban đầu sử dụng một hệ thống tệp đơn giản bắt chước
chức năng của hệ thống tệp Unix. Trong hướng dẫn này, chúng ta sẽ thảo luận
về hệ thống tệp cơ bản được sử dụng trong Linux.

2.3.1 H Ệ TH Ố NG T Ệ P EXT
Hệ thống tệp gốc được giới thiệu cùng với hệ điều hành Linux được gọi

là hệ thống tệp mở rộng (The Extended file system) (hay chỉ viết tắt là Ext). Nó
cung cấp một hệ thống tệp giống Unix cơ bản cho Linux, sử dụng các thư mục
ảo để xử lý các thiết bị vật lý và lưu trữ dữ liệu trong các khối có độ dài cố định
trên các thiết bị vật lý.
Hệ thống tệp Ext sử dụng một hệ thống gọi là inodes để theo dõi thông tin
về các tệp được lưu trữ trong thư mục ảo. Hệ thống inodes tạo một bảng riêng
biệt trên mỗi thiết bị vật lý, được gọi là bảng inode, để lưu trữ thông tin tệp. Mỗi
tệp được lưu trữ trong thư mục ảo có một mục nhập trong bảng inode. Phần mở
rộng của tên đến từ dữ liệu bổ sung mà nó theo dõi trên mỗi tệp, bao gồm:
● Tên tập tin
● Kích thước tệp
● Chủ sở hữu của tệp
● Nhóm tệp thuộc về

11


Hệ thống tệp tin trong linux

● Quyền truy cập cho tệp
● Con trỏ đến từng khối đĩa chứa dữ liệu từ tệp

Linux tham chiếu đến mỗi inode trong bảng inode bằng cách sử dụng một
số duy nhất (được gọi là số inode), được gán bởi hệ thống tệp khi tệp dữ liệu
được tạo. Hệ thống tệp sử dụng số inode để xác định tệp thay vì phải sử dụng
tên và đường dẫn tệp đầy đủ.

❖ Một vấn đề phổ biến với hệ thống tệp Ext là khi tệp được ghi vào thiết
bị vật lý, các khối được sử dụng để lưu trữ dữ liệu có xu hướng nằm rải
rác khắp thiết bị (được gọi là phân mảnh). Sự phân mảnh của các khối

dữ liệu có thể làm giảm hiệu suất của hệ thống tệp, vì mất nhiều thời
gian hơn để tìm kiếm thiết bị lưu trữ để truy cập tất cả các khối cho một
tệp cụ thể
2.3.2. H Ệ TH Ố NG T Ệ P EXT2
❖ Là bản nâng cấp của hệ thống Ext, Ext2 có sự mở rộng và kế thừa các
thuộc tính cơ bản của hệ thống tệp ban đầu nhưng vẫn giữ nguyên cấu
trúc. (Hệ thống tệp Ext2 mở rộng định dạng bảng inode để theo dõi
thông tin bổ sung về từng tệp trên hệ thống ).
❖ Bảng inode Ext2 thêm các giá trị thời gian được tạo, sửa đổi và truy cập
lần cuối cho các tệp để giúp quản trị viên hệ thống theo dõi quyền truy
cập tệp trên hệ thống.
❖ Kích thước tệp được tăng tối đa 16GB-2TB để giúp chứa các tệp lớn
thường thấy trong máy chủ cơ sở dữ liệu.

12


Hệ thống tệp tin trong linux

❖ Ngoài việc mở rộng bảng inode, hệ thống tệp Ext2 cũng thay đổi cách
thức lưu trữ tệp trong các khối dữ liệu.
❖ Hệ thống tệp Ext2 giúp giảm phân mảnh bằng cách phân bổ các khối
đĩa theo nhóm khi bạn lưu tệp. Bằng cách nhóm các khối dữ liệu cho
một tệp, hệ thống tệp khơng phải tìm kiếm các khối dữ liệu trên khắp
thiết bị vật lý để đọc tệp. Ext2 nổi vật với tốc độ đọc và khả năng sử
dụng CPU, đồng thời hiệu suất truy cập tệp tuyệt vời, nhất là với các tệp
vừa và nhỏ, vì vậy Ext2 chủ yếu hỗ trợ cho việc đọc dữ liệu là chính.
Ext2 khơng sử dụng Journal, nên sẽ có ít dữ liệu được ghi vào ổ đĩa
hơn.(Sử dụng phù hợp cho thiết bị lưu trữ bên ngoài dựa trên Flash như
ổ USB Flash, thẻ SD,...)

❖ Mặc dù được sử dụng trên Linux nhiều năm, nhưng Ext2 vẫn còn những
hạn chế: Ext2 dễ bị hỏng nghiêm trọng nếu như hệ thống bị sập hoặc
mất điện trong lúc dữ liệu đang được ghi vào đĩa.
( Bảng inode có thể gây ra sự cố có thể gây tử vong cho hệ thống. Mỗi
khi hệ thống tệp lưu trữ hoặc cập nhật tệp, nó phải sửa đổi bảng inode với
thông tin mới. Vấn đề là đây không phải lúc nào cũng là một hành động
linh hoạt. Nếu điều gì đó xảy ra với hệ thống máy tính giữa tệp được lưu
trữ và bảng inode đang được cập nhật, cả hai sẽ trở nên không đồng bộ.
Ngay cả khi dữ liệu tệp được lưu trữ tốt trên thiết bị vật lý, nếu mục nhập
bảng inode khơng được hồn thành, hệ thống tệp Ext2 thậm chí sẽ khơng
biết rằng tệp đó tồn tại!)
2.3.3. GHI NH Ậ T KÝ H Ệ TH Ố NG T Ệ P - JOURNALING FILE SYSTEMS
◆ Tất cả các tệp hệ thống ngày nay đều phải sử dụng Journaling File
systems (JFS) theo nhiều dạng khác nhau trên nền tảng máy tính với hệ

13


Hệ thống tệp tin trong linux

điều hành Linux. Journaling cung cấp cho hệ điều hành này một mức độ
an toàn mới. Thay vì việc ghi dữ liệu trực tiếp vào thiết bị lưu trữ và sau
đó cập nhật bảng inode thì journaling ghi các thay đổi tệp vào một tệp
tạm thời (được gọi là journal) trước tiên, rồi được đẩy vào trong lớp quản
lý dữ liệu, tiếp theo journal sẽ ghi file đó vào phân vùng ổ cứng khi đã
sẵn sàng. Sau khi dữ liệu được ghi thành công vào thiết bị lưu trữ và bảng
inode, mục nhật ký sẽ bị xóa khỏi journal, được đẩy ngược ra bên ngồi
và hồn tất q trình.

◆ Nếu hệ thống gặp sự cố hoặc mất điện trước khi dữ liệu có thể được ghi

vào thiết bị lưu trữ, hệ thống tệp nhật ký chỉ đọc qua tệp nhật ký và xử lý
mọi dữ liệu chưa được hồn thiện cịn sót lại. Có ba phương pháp ghi
nhật ký khác nhau thường được sử dụng trong Linux, mỗi phương pháp
có mức độ bảo vệ khác nhau. Chúng được hiển thị bên dưới trong bảng.
◆ Các phương pháp của Hệ thống ghi nhật ký:

Phương pháp

Mô tả

14


Hệ thống tệp tin trong linux

Chế độ dữ liệu Cả dữ liệu inode và dữ liệu tệp đều được ghi nhật ký
(Data mode)

lại. Nguy cơ mất dữ liệu thấp nhưng hiệu suất kém.

Chế độ có thứ tự Chỉ dữ liệu inode được ghi vào nhật ký, nhưng
khơng bị xóa cho đến khi dữ liệu tệp được ghi thành
(Ordered mode)

công. Thỏa hiệp tốt giữa hiệu suất và an toàn.

Chế độ ghi lại Chỉ dữ liệu inode được ghi vào nhật ký, khơng có
quyền kiểm sốt khi dữ liệu tệp được ghi. Nguy cơ
(Writeback mode)


mất dữ liệu cao hơn, nhưng vẫn tốt hơn là không sử
dụng ghi nhật ký.

❖ Hạn chế:
➢ Phương pháp ghi nhật ký chế độ dữ liệu (Data mode) cho
đến nay là an toàn nhất để bảo vệ dữ liệu, nhưng nó cũng là
phương pháp chậm nhất.
➢ Tất cả dữ liệu được ghi vào thiết bị lưu trữ phải được ghi hai
lần, một lần vào nhật ký, sau đó lại vào thiết bị lưu trữ thực
tế. Điều này có thể gây ra hiệu suất kém, đặc biệt là đối với
các hệ thống ghi nhiều dữ liệu.
2.3.4. H Ệ TH Ố NG T Ệ P NH Ậ T KÝ LINUX M Ở R Ộ NG
(THE EXTENDED LINUX JOURNALING FILESYSTEMS)
Nhóm phát triển hệ thống tệp Ext và Ext2 cũng tạo ra các phiên
bản ghi nhật ký của hệ thống tệp như một phần của dự án Linux. Các hệ
thống tệp nhật ký này tương thích với hệ thống tệp Ext2 và dễ dàng
15


Hệ thống tệp tin trong linux

chuyển đổi qua lại giữa chúng. Hiện có hai hệ thống tệp nhật ký riêng biệt
dựa trên hệ thống tệp Ext2.

2.3.5. H Ệ TH Ố NG T Ệ P EXT3
❖ Hệ thống tệp Ext3 đã được thêm vào nhân Linux vào năm 2001 và cho đến
gần đây là hệ thống tệp mặc định được hầu hết các bản phân phối Linux sử
dụng. Dựa trên cơ sở của Ext2, Ext3 sử dụng cấu trúc bảng inode giống
như hệ thống tệp Ext2, nhưng thêm tệp nhật ký (journal) để ghi dữ liệu
được ghi vào thiết bị lưu trữ, giúp thao tác dữ liệu được an toàn hơn mà

không cần sao lưu và khôi phục dữ liệu. Điều này nhằm cải thiện độ tin
cậy, loại bỏ nhu cầu kiểm tra hệ thống file sau khi tắt máy đột ngột.
❖ Kích thước tệp tối đa : 16GB-2TB
❖ Theo mặc định, hệ thống tệp Ext3 sử dụng phương pháp ghi nhật ký theo
chế độ có thứ tự (Ordered mode) như đã đề cập ở trên, chỉ ghi thông tin
inode vào tệp nhật ký, nhưng khơng xóa nó cho đến khi các khối dữ liệu
được ghi thành công vào thiết bị lưu trữ. Bạn có thể thay đổi phương pháp
ghi nhật ký được sử dụng trong hệ thống tệp Ext3 thành chế độ dữ liệu
(Data mode) hoặc chế độ ghi lại (Writeback mode) bằng một tùy chọn dòng
lệnh đơn giản khi tạo hệ thống tệp.
❖ Mặc dù hệ thống tệp Ext3 đã thêm tính năng ghi nhật ký cơ bản vào hệ
thống tệp Linux, nhưng nó vẫn cịn thiếu một số thứ, Không phù hợp để
làm file hệ thống dành cho máy chủ vì khơng hỗ trợ tính năng disk
16


Hệ thống tệp tin trong linux

snapshot, hơn thế nữa, file khơi phục sẽ rất khó để xóa sau này. Ví dụ: hệ
thống tệp Ext3 không cung cấp bất kỳ khôi phục nào từ việc vơ tình xóa
tệp, khơng có sẵn tính năng nén dữ liệu tích hợp (mặc dù có một bản vá có
thể được cài đặt riêng cung cấp tính năng này) và hệ thống tệp Ext3 thì
khơng khơng hỗ trợ mã hóa tệp. Vì những lý do đó, các nhà phát triển trong
dự án Linux chọn tiếp tục cải thiện hệ thống tệp Ext3.
2.3.6. H Ệ TH Ố NG T Ệ P EXT4
❖ Ext4 được phát triển dựa hết file hệ thống Ext3, có thêm tùy chọn “tắt tính
năng ghi nhật ký”. Hệ thống tệp Ext4 chính thức được hỗ trợ trong nhân
Linux vào năm 2008 và hiện là hệ thống tệp mặc định được sử dụng trong
hầu hết các bản phân phối Linux phổ biến, chẳng hạn như Fedora và
Ubuntu. Có khả năng tương thích: Chuyển đổi từ Ext3 lên Ext4 dễ dàng và

không mất dữ liệu, hỗ trợ được tất cả các distro. Tốc độ hoạt động của Ext4
nhanh hơn so với 2 phiên bản tiền nhiệm trước đó là Ext2 và Ext3 , phù
hợp để hoạt động trên server nhưng khơng bằng Ext3.
❖ Kích thước tệp tối đa : 16GB-16T
❖ Có các tính năng khác như : Subdirectory, Multy Block Allocation,
Delayed Allocation,Fast FSCK,... Ngoài ra, để hỗ trợ nén và mã hóa, hệ
thống tập tin Ext4 cịn hỗ trợ một tính năng gọi là Extents. Phần mở rộng
phân bổ không gian trên thiết bị lưu trữ theo khối và chỉ lưu trữ vị trí khối
bắt đầu trong bảng inode. Điều này giúp tiết kiệm dung lượng trong bảng
inode bằng cách không phải liệt kê tất cả các khối dữ liệu được sử dụng để
lưu trữ dữ liệu từ tệp.
❖ Hệ thống tệp Ext4 giảm hiện tượng phân mảnh dữ liệu trong ổ cứng, đồng
thời hỗ trợ các file và phân vùng có dung lượng lớn. Ví dụ: bạn biết sẽ tăng
kích thước, với hệ thống tệp Ext4, bạn có thể phân bổ tất cả các khối dự
17


Hệ thống tệp tin trong linux

kiến cho tệp, không chỉ các khối tồn tại trên thực tế. Hệ thống tệp Ext4 điền
vào các khối dữ liệu dành riêng bằng các số 0 và không biết phân bổ chúng
cho bất kỳ

2.3.7. REISER FILE SYSTEM
Là một trong những bước tiến lớn nhất của file hệ thống Linux
được công bố năm 2001 với nhiều tính năng mới mà file hệ thống Ext
khó có thể đạt được. Hệ thống tệp ReiserFS chỉ hỗ trợ chế độ ghi nhật ký
ghi ngược, chỉ ghi dữ liệu bảng inode vào tệp nhật ký. Bởi vì nó chỉ ghi
dữ liệu bảng inode vào tạp chí, hệ thống tệp ReiserFS là một trong những
hệ thống tệp nhật ký nhanh nhất trong Linux.

Hai tính năng thú vị được tích hợp vào hệ thống tệp ReiserFS là
bạn có thể thay đổi kích thước hệ thống tệp hiện có trong khi nó vẫn đang
hoạt động và nó sử dụng một kỹ thuật gọi là đóng gói, nhồi dữ liệu từ một
tệp vào không gian trống trong khối dữ liệu từ tệp khác. Tính năng thay
đổi kích thước hệ thống tệp đang hoạt động là rất tốt nếu bạn phải mở
rộng hệ thống tệp đã được tạo để chứa nhiều dữ liệu hơn.
Năm 2004 được thay thế bởi Reiser4 với nhiều cải tiến nhưng do
quá trình nghiên cứu, phát triển khá chậm nên vẫn không hỗ trợ đầy đủ hệ
thống kernel của Linux. Phù hợp với database và server email.

18


Hệ thống tệp tin trong linux

2.3.8. H Ệ TH Ố NG T Ệ P NH Ậ T KÝ (JFS)
Có thể là một trong những hệ thống tệp nhật ký lâu đời nhất, Hệ thống tệp
nhật ký (JFS) được IBM phát triển vào năm 1990 cho hương vị AIX của
Unix. Tuy nhiên, phải đến phiên bản thứ hai, nó mới được chuyển sang
mơi trường Linux.
● “Lưu ý - Tên chính thức của IBM của phiên bản thứ hai của hệ thống tệp
JFS là JFS2, nhưng hầu hết các hệ thống Linux chỉ gọi nó là JFS.”
Hệ thống tệp JFS sử dụng phương pháp ghi nhật ký theo thứ tự
(Ordered mode), chỉ lưu trữ dữ liệu bảng inode trong nhật ký, nhưng
không xóa nó cho đến khi dữ liệu tệp thực được ghi vào thiết bị lưu trữ.
Phương pháp này là sự cân bằng giữa tốc độ của ReiserFS và tính tồn
vẹn của phương pháp ghi nhật ký chế độ dữ liệu.
Hệ thống tệp JFS sử dụng phân bổ tệp dựa trên mức độ, phân bổ
một nhóm các khối cho mỗi tệp được ghi vào thiết bị lưu trữ. Phương
pháp này cung cấp ít phân mảnh hơn trên thiết bị lưu trữ. Bên ngoài các

sản phẩm IBM Linux cung cấp, hệ thống tệp JFS khơng được sử dụng
phổ biến, nhưng bạn có thể gặp phải nó trong hành trình Linux của mình.
2.3.9. H Ệ TH Ố NG T Ệ P XFS
Hệ thống tệp nhật ký XFS là một hệ thống tệp khác ban đầu được
tạo cho hệ thống Unix thương mại đã xâm nhập vào thế giới Linux.
Silicon Graphics Incorporated (SGI) ban đầu tạo ra XFS vào năm 1994
cho hệ thống IRIX Unix thương mại của mình. Nó được phát hành lên
mơi trường Linux để sử dụng phổ biến vào năm 2002.

19


Hệ thống tệp tin trong linux

Hệ thống tệp XFS sử dụng chế độ ghi nhật ký viết lại (Writeback
mode), mang lại hiệu suất cao, ví dụ: Nếu bạn muốn dành dung lượng
trên thiết bị lưu trữ cho một tệp mà nhưng gây ra một số rủi ro vì dữ liệu
thực tế không được lưu trữ trong tệp nhật ký. Hệ thống tệp XFS cũng cho
phép thay đổi kích thước trực tuyến của hệ thống tệp, tương tự như hệ
thống tệp ReiserFS, ngoại trừ hệ thống tệp XFS chỉ có thể được mở rộng
và khơng được thu nhỏ.
Ngồi ra cịn có các định dạng phân vùng khác mà Linux có thể đọc và
quản lý được như: MSDOS, VFAT, NFS, Iso9660, Smbfs, Hpfs, Sysv,
NTFS,...

Kiểu

Mô tả

Swap


Hệ thống tệp tin dùng làm vùng đệm cho bộ nhớ chính

Msdos

Có khả năng tương thích với các hệ thống tệp tin FAT của MS-DOS
(gồm OS/2 và Windows NT )

Umsdos Mở rộng driver hệ thống tập tin msdos trong Linux để nhận được
tên tệp tin dài, chủ sở hữu, quyền hạn, liên kết và các tệp tin thiết
bị.
Vfat

Đây là phần mở rộng của hệ thống tệp tin FAT được gọi là FAT32.
Nó hỗ trợ kích thước ổ đĩa lớn hơn FAT.

Iso9660 Là hệ thống tệp tin CD-ROM tiêu chuẩn, phần mở rộng Rock
Ridge phổ biến cho tiêu chuẩn CD-ROM cho phép tên tệp dài hơn

20


Hệ thống tệp tin trong linux

được hỗ trợ tự động. (có thể đọc tên file Unicode)
NFS

Là một hệ thống tệp tin mạng cho phép chia sẻ một hệ thống tệp tin
giữa nhiều máy tính để cho phép dễ dàng truy cập vào các tệp tin từ
chúng. (cho phép truy cập từ xa trên mạng)


Smbfs

Là một hệ thống tệp tin mạng cho phép chia sẻ một hệ thống tệp tin
với một máy tính MS Windows. Nó tương thích với các giao thức
chia sẻ tệp tin Windows.

Hpfs

Là hệ thống tệp tin OS/2

Sysv

Là hệ thống tệp tin System V/386, Coherent và Xenix .

NTFS

Là hệ thống tệp tin tiên tiến nhất của Microsoft cung cấp khả năng
truy cập và ổn định tệp nhanh hơn các hệ thống tệp tin của
Microsoft trước đây.

Romfs

Một hệ thống tệp tin chỉ đọc, chủ yếu sử dụng cho RAM

Ramfs

Một hệ thống tệp tin khác được giữ trong RAM

2.4. CÁC THÀNH PH Ầ N C ỦA H Ệ TH Ố NG T ẬP TIN:

● Superblock
● Inode

21


Hệ thống tệp tin trong linux

● Storageblock
➔ Super Block: là một cấu trúc được tạo tại vị trí bắt đầu hệ thống tập tin.
Nó lưu trữ thơng tin về hệ thống tập tin như: Thông tin về block-size, free
block, thời gian gắn kết(mount) cuối cùng của tập tin
➔ Inode (256 byte): Lưu những thông tin về những tập tin và thư mục được
tạo ra trong hệ thống tập tin. Nhưng chúng không lưu tên tập tin và thư
mục thực sự. Mỗi tập tin tạo ra sẽ được phân bổ một inode lưu thông tin
sau:
◆ Loại tập tin và quyền hạn truy cập tập tin
◆ Người sở hữu tập tin.
◆ Kích thước của tập tin và số hard link đến tập tin.
◆ Ngày và thời gian chỉnh sửa tập tin lần cuối cùng.
◆ Vị trí lưu nội dung tập tin trong hệ thống tập tin.
➔ Storageblock: Là vùng lưu dữ liệu thực sự của tập tin và thư mục. Nó
chia thành những Data Block. Dữ liệu lưu trữ vào đĩa trong các data
block. Mỗi block thường chứa 1024 byte. Ngay khi tập tin chỉ có 1 ký tự
thì cũng phải cấp phát 1 block để lưu nó. 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ữ dữ liệu. Nó bao gồm cả thư
mục và các thiết bị lưu trữ.
○ Một tập tin dữ liệu, hay một thư mục đều được xem là tập tin. Khái

niệm tập tin còn mở rộng dùng cho các thiết bị như máy in, đĩa cứng

22


Hệ thống tệp tin trong linux

… ngay cả bộ nhớ chính cũng được coi như là một tập tin,các tập tin
trong linux được chia ra làm 3 loại chính:
■ Tập tin chứa dữ liệu bình thường
■ Thư mục
■ Tập tin thiết bị
○ Tập tin dữ liệu: Đây là tập tin theo định nghĩa truyền thống, nó là dữ
liệu lưu trữ trên các thiết bị lưu trữ như đĩa cứng, CD-ROM … Bạn có
thể đưa bất cứ dữ liệu nào vào tập tin này như đoạn source chương
trình, tập tin văn bản hay tập tin thực thi dạng mã máy, các lệnh của
Linux cũng như tất cả các tập tin được tạo ra bởi người dùng.
○ Tập tin thư mục: Thư mục không chứa dữ liệu, mà chỉ chứa các thông
tin của những tập tin và thư mục con trong nó. Thư mục chứa hai
trường của một tập tin là tên tập tin và inode number.
○ Tập tin thiết bị: Chứa các file device để đại diện các hardware, chứa
đựng các thông tin tài nguyên hệ thống (vd: /dev; /proc)

2.5. MOUNT
Để truy cập hệ thống tệp trong Linux, trước tiên bạn cần phải gắn kết
(mount) nó. Mount hệ thống tệp có nghĩa là làm cho hệ thống tệp cụ thể có thể
truy cập được tại một điểm nhất định trong cây thư mục Linux. Khi mount hệ
thống tệp, không quan trọng nếu hệ thống tệp là phân vùng đĩa cứng, CD-ROM,
đĩa mềm hoặc thiết bị lưu trữ USB. Bạn chỉ cần biết tên thiết bị được liên kết
với thiết bị lưu trữ cụ thể và thư mục bạn muốn gắn nó vào. Khả năng gắn một

thiết bị lưu trữ mới vào bất kỳ điểm nào trong thư mục là rất thuận lợi. Ví dụ,
giả sử rằng bạn có một trang web được lưu trữ trong /usr/local/website. Trang
web đã trở nên rất phổ biến và bạn sắp hết dung lượng trên ổ cứng 36 GB. Bạn
chỉ cần ra ngoài và mua một ổ cứng 73 GB mới, cài đặt nó vào máy tính, và sau
đó gắn kết tồn bộ ổ đĩa đó dưới dạng /usr/local/ . Giờ đây, điểm gắn kết
23


Hệ thống tệp tin trong linux

/usr/local của bạn có tổng dung lượng ổ cứng là 73 GB và bạn có thể giải phóng
ổ cứng cũ bằng cách sao chép mọi thứ từ /usr/local sang ổ mới. Như bạn có thể
thấy, việc thêm nhiều dung lượng ổ cứng vào máy tính, trong khi vẫn giữ
nguyên cấu trúc thư mục chính xác, giờ đây rất dễ dàng.

Xem danh sách các hệ thống tệp được mount
Để xác định hệ thống tệp nào hiện đang được sử dụng, nhập lệnh:
$ mount
Khi bạn gõ lệnh này tại dấu nhắc lệnh, lệnh này sẽ hiển thị tất cả các thiết
bị được gắn kết, loại hệ thống tệp mà nó được gắn kết và điểm gắn kết. Điểm
gắn kết là thư mục cục bộ được gán cho hệ thống tệp trong quá trình gắn kết.

Cách gắn kết hệ thống tập tin
Trước khi bạn có thể gắn hệ thống tệp vào một thư mục, bạn phải đăng
nhập bằng quyền root (một số hệ thống tệp có thể được mount bởi người dùng
tiêu chuẩn) và thư mục bạn muốn gắn hệ thống tệp trước tiên phải tồn tại. Ngoài
ra trong một số trường hợp, bạn phải đăng nhập với tư cách người dùng root để
tạo thư mục gắn kết cụ thể. Nếu thư mục tồn tại và bất kỳ người dùng nào có thể
mount thiết bị cụ thể đó, thì khơng cần thiết phải đăng nhập với quyền root. Khi
gắn một hệ thống tệp hoặc thiết bị cụ thể, bạn cần biết tệp thiết bị đặc biệt được

liên kết với nó. Tệp thiết bị là một tệp đặc biệt trong hệ điều hành Linux được
sử dụng để cho phép các chương trình và người dùng giao tiếp trực tiếp với các
phân vùng và thiết bị khác nhau trên máy tính của bạn. Các tệp thiết bị này được
tìm thấy trong thư mục /dev.
Để gắn thiết bị vào một thư mục cụ thể, thư mục đó phải tồn tại. Nhiều bản phân
phối Linux sẽ chứa thư mục /mnt, hoặc thậm chí là thư mục /mnt/floppy, được
sử dụng để gắn kết các thiết bị khác nhau. Nếu thư mục mà bạn muốn gắn thiết
bị tồn tại, thì bạn đã hồn tất. Nếu khơng, bạn cần tạo nó như thế này:
$ mkdir /mnt/đĩa mềm

Lệnh này bây giờ sẽ tạo một thư mục có tên /mnt/floppy. Bước tiếp theo
sẽ là gắn kết hệ thống tập tin vào thư mục hoặc điểm gắn kết đó.

24


Hệ thống tệp tin trong linux

$ mount -t msdos /dev/fd0/mnt/floppy
Bây giờ bạn đã gắn kết một hệ thống tệp msdos, được biểu thị bằng tùy chọn -t
(loại). Thiết bị được nhận dạng bởi /mnt/floppy point. Bây giờ bạn có thể truy
cập các đĩa được định dạng MS-DOS như cách bạn làm với bất kỳ thư mục nào
khác.

Để gắn đĩa CD-ROM:
$ mount -t iso9660 /dev/cdrom/mnt/cdrom
Một lần nữa, đây là một phương pháp tương tự như trên để mount đĩa
CD-ROM.
Các hệ thống tệp khác nhau cũng có thể được gắn kết theo cách tương tự:
$ mount -t vfat /dev/hda1/win

Bất kỳ hệ thống tệp nào chưa được gắn kết có thể được nhìn thấy thơng
qua lệnh df. Vì vậy, bằng cách sử dụng lệnh đó, bạn biết những gì bạn phải làm
việc với.
Lưu ý: Tùy chọn -t nên được sử dụng để hệ điều hành biết loại hệ thống
tệp cụ thể mà bạn muốn gắn thiết bị vào. Nếu bạn bỏ tùy chọn -t ra khỏi lệnh,
mount nó sẽ cố gắng xác định đúng loại hệ thống tệp mà nó sẽ gắn thiết bị vào.

Cách ngắt kết nối hệ thống tệp
Khi bạn sử dụng xong một hệ thống tệp cụ thể, bạn nên ngắt kết nối.
Lệnh để ngắt kết nối hệ thống tệp là lệnh umount.
Khi ngắt kết nối hệ thống tệp, bạn chỉ cần nhập umount, sau đó là điểm gắn kết.
Ví dụ:
$ umount /mnt/đĩa mềm
$ umount /mnt/cdrom
Lưu ý: Nếu bạn 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 tệ hơn làm hỏng luôn
thiết bị!

25


×