Một hệ thống file mà chưa được mountthì không thể truy cập được các file và thư mục trong đó.. Các hệ thống file sử dụng trong Linux Các định dạng chính xác mà các tệp được lưu trữ là
Trang 1ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
- -KHOA CÔNG NGHỆ THÔNG TIN
BÀI TẬP LỚN MÔN HỌC:NGUYÊN LÝ HỆ ĐIỀU HÀNH
Đề tài: Nghiên cứu tìm hiểu về hệ thống tệp tin
trong HĐH LINUX
Giáo viên: Ths Nguyễn Tuấn Tú
Nhóm số : 10
Lớp: IT6025.3– K14
Hà Nội, 2021
Trang 2ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
- -
KHOA CÔNG NGHỆ THÔNG TIN
BÀI TẬP LỚN MÔN: NGUYÊN LÝ HỆ ĐIỀU HÀNH
Đề tài: Nghiên cứu tìm hiểu về hệ thống tệp tin
trong HĐH LINUX
Giảng viên hướng dẫn: ThS.Nguyễn Tuấn Tú
Nhóm thực hiện: Nhóm 10
Sinh viên thực hiện :
Hà Nội,2021
Trang 3MỤC LỤC
Trang
LỜI NÓI ĐẦU 4
Chương I: TỔNG QUAN VỀ LINUX 5
1.1.Giới thiệu về Linux 5
1.1.1 Khái niệm 5
1.1.2.Các bản phân phối của Linux 5
Chương II: QUẢN LÍ HỆ THỐNG FILE TRÊN LINUX 6
2.1 Cơ bản về file và thư mục 6
2.1.1 Khái niệm 6
2.1.2 Tên file trên Linux 7
2.2 Các hệ thống file sử dụng trong Linux 7
2.3.Gắn kết hệ thống file 9
2.3.1.Giới thiệu 10
2.3.2.Cách mount thiết bị 10
2.3.3.Về mount point 11
2.3.4.Cách unmount thiết bị 11
2.3.5.Lỗi khi thực hiện mount thiết bị 12
2.4 Một số lệnh quản lý 12
2.4.1.Tạo thư mục 12
2.4.2.Chuyển thư mục 12
2.4.3.Copy files 12
2.4.4 Move và rename file 13
Trang 42.4.5 Xóa files và thư mục 13
2.5 Quyền hạn đối với File 13
2.5.1.Sơ lược về quyền 13
2.5.2.Thay đổi quyền 14
2.5.3 Quyền mặc định 16
KẾT LUẬN 17
Trang 5LỜI MỞ ĐẦU
Hệ điều hành là một chương trình quản lý phần cứu máy tính Nó cung cấp nền tảng cho các chương trình ứng dụng và đóng vai trò trung gian giao tiếp giữa người dùng máy tính và phần cứng của máy tính đó Nó giúp máy tính dễ sử dụng hơn, thuận lợi và hiệu quả hơn
Tài nguyên máy tính mà điển hình là hệ cơ sở dữ liệu (Database System) có ảnh hưởng rất nhiều tới tính hiệu quả của việc sử dụng máy tính Mà trong đó hệ thống các file là hệ thống chủ yếu Bởi vậy quản lí hệ thống file như thế nào có ảnh hưởng lớn và trực tiếp tới hiệu quả sử dụng máy tính Việc quản lí hệ thống file được xây dựng và tổ chức tùy thuộc vào từng hệ điều hành
- Sau đây nhóm chúng em xin được trình bày về vấn đề: Quản lý hệ thống file trong hệ điều hành Linux
- Các tài liệu tham khảo:
• Running Linux của nhà xuất bản O’REILLY
• Giáo trình nguyên lý hệ điều hànhcủa nhà xuất bản Hà Nội
• The Linux Device File – System tác giả Rechard Gooch
• Giáo trình nguyên lý hệ điều hành – Trường Đại học Công Nghiệp Hà Nội,
Khoa Công Nghệ Thông Tin
• Và một số trang web trực tiếp khác
Trang 6Chương I: TỔNG QUAN VỀ LINUX 1.1 Giới thiệu về Linux
1.1.1 Khái niệm
a) UNIX là gì?
UNIX là một hệ điều hành và được coi là một hệ điều hành hoàn chỉnh vì mọi thứ đến từ một nguồn hoặc nhà cung cấp duy nhất
b) Linux là gì?
Linux là một bản sao của UNIX được viết bởi Linus Torvalds vào năm 1991 Ông viết lại toàn bộ code dựa trên ý tưởng của UNIX
Một cách chính xác, “Linux” chỉ là nhân của hệ điều hành, nhưng tên này được sử dụng rộng rãi để miêu tả tổng thể một hệ điều hành tên là GNU/Linux Hệ điều hành này được tạo ra bởi việc đóng gói nhân Linux cùng với các thư viện và bộ công cụ GNU Linux có nhiều bản phân phối, mỗi bản phân phối sẽ đi với 1 bộ GUI (Graphical User Interface)
1.1.2 Các bản phân phối của Linux
Hiện tại Linux có nhiều bản phân phối khác nhau, một phần bởi vì tính chất
“mã nguồn mở” của Linux
Bảng 1.1: Một số bản Linux phổ biến
Tên bản phân phối Phiên bản mới
nhất
Trang web
Trang 7Chương II: QUẢN LÍ HỆ THỐNG FILE TRÊN LINUX
2.1 Cơ bản về file và thư mục
2.1.1 Khái niệm :
Hệ thống file là một cơ sở dữ liệu các file và thư mục, được đính kèm vào thư mục gốc hoặc một thư mục bất kỳ của một hệ thống file khác đã được đính
kèm trước đó Việc đính kèm một hệ thống file được gọi là mount Mỗi phân vùng
là một hệ thống file Đĩa CD hay USB cũng là một hệ thống file Linux quản lý tất
cả các phân vùng và hệ thống file khác dưới dạng cây thư mục, có gốc là thư mục
/ Một hệ thống file mà chưa được mountthì không thể truy cập được các file và thư mục trong đó Không giống như trên Windows, trên Linux không có khái niệm ổ
đĩa logic là C hay D Tất cả điều được "treo" lên một cái cây (đặt sau thư mục gốc), gọi là "cây thư mục" Mọi thư mục khác điều là con, cháu của gốc (/)
Một số thư mục tiêu biểu như:
- /: Thư mục root, lưu ý phân biệt với thư mục home của user root (/root)!
- /bin, /sbin: Chứa các lệnh hệ thống
- /boot: Chứa kernel cùng các files hổ trợ cho kernel (System.map, initrd, )
- /dev: Chứa các device files
- /etc: Chức các file thông tin, cấu hình hệ thống
- /home: Thư mục nhà mặc định cho các users
- /mnt hoặc /media: Chứa các mount-point cho những thiết bị removeable
- /lib: Chứa thư viện
- /usr: Tương tự như thư mục Program Files tại Windows
- /proc: Thư mục ảo, chứa thông tin đang sử dụng của Kernel
- /var: Chứa log files và spool files
Với hệ thống Linux, hệ thống file nằm ở các thiết bị như ổ đĩa cứng, ổ đĩa mềm, hay đĩa CD (được định dạng để lưu trữ tệp) Hệ thống file 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
Trang 8Hình 2.1 : Sơ đồ mô tả cây thư mục.
2.1.2 Tên file trên Linux:
- Tên file trong Linux có thể dài tới 256 ký tự, bao gồm các chữ cái, chữ số, dấu gạch nối, gạch chân, dấu chấm Nếu trong tên file có dấu chấm “.” Thì xâu con của tên file từ dấu chấm cuối cùngđược gọi là phần mở rộng của tên fie
- Linux chỉ lấy 32 hay 64 ký tựđầu tiên trong tên file (tuỳ theo phiên bản Linux) vì thế nếu 2 file chỉ khác nhau ở ký tự cuối cùng, thì trong Linuxđó là 2 file
có thể trùng tên
- Tên files và thư mục có thể chứa khoảng trắng và 1 số ký tự đặc biệt Một điểm cần lưu ý là Linux phân biệt chữ hoa/thường
2.2 Các hệ thống file sử dụng trong Linux
Các định dạng chính xác mà các tệp được lưu trữ là không quan trọng, hệ thống cung cấp một giao diện chung cho tất cả các kiểu hệ thống file mà nó nhận
ra Trong Linux, các kiểu hệ thống file bao gồm ext2, ext2fs, mà chúng ta có thể sử dụng để lưu trữ tệp tin của Linux (ext3 cũng đang dần phổ biến); hệ thống VFAT
Trang 9cho phép truy cập file nằm tại phân vùng Windows 95/98/ME và đĩa mềm trên
Linux; và vài kiểu hệ thống file khác, bao gồm các hệ thống file ISO 9660 được sử
dụng cho CD-ROM
Mỗi kiểu hệ thống file có định dạng cơ bản khác nhau cho việc lưu trữ dữ
liệu Tuy nhiên, khi truy cập bất kì hệ thống file trong Linux, hệ thống sẽ hiển thị
các dữ liệu như các tệp được sắp xếp thành một hệ thống các thư mục, cùng với tên người sở hữu và nhóm nhận dạng (ID), và các đặc tính khác mà chúng ta quen thuộc
Trên thực tế, thông tin về quyền sở hữu files, quyền hạn truy cập, chỉ được cung cấp bởi các kiểu hệ thống files mà được sử dụng để lưu trữ các tệp tin Linux Đối với các kiểu hệ thống file không lưu trữ thông tin này, các trình điểu khiển nhân Kernel được sử dụng để truy cập các hệ thống tệp tin “làm giả” thông tin
Bảng 2.2: Liệt kê các kiểu filesystem được hỗ trở bởi nhân Linux phiên bản 2.4.10
Các kiểu hệ thống file của Linux
Hệ thống file Kiểu Mô tả
Extended file
system
ext Đinh dạng file hệ thống đầu tiên được thiết
kế dành riêng cho linux Second Extended
filesystem
ext2 Là hệ thống file được kế thừa từ các thuộc
tính của hệ thống file cũ
Third Extended
filesystem
ext3 Là ext2 đi kèm với journaling Có tính tương
thích ngược với ext2 Fourth extended
file system
ext4 Là định dạng phổ biến nhất hiện nay Ext4 có
thể giảm bớt hiện tượng phân mảnh Thích hợp với ổ SSD hơn ext3, tốc độ nhanh hơn các phiên bản ext trước đó
Minix filesystem Minix Hệ thống file gốc của Minix, ít khi được sử
dụng ROM filesystem Romfs Một hệ thống file chỉ đọc, chủ yếu sử dụng
cho bộ nhớ RAM CRAM filesystem Cramfs Một hệ thống file nén và chỉ đọc, thường
được sử dụng trên PDA Network file
system
NFS Cho phép truy cập tệp từ xa trên mạng
UMSDOS
filesystem
Umsdos Cài đặt Linux trên một phân vùng MS-DOS
DOS-FAT
filesystem
Msdos Truy cập file của MS-DOS VFAT filesystem Vfat Truy cập file của Windows 95/98
NT filesystem Ntfs Truy cập file của Windows NT
Trang 10HPFS Hpfs Hệ thống file OS/2
/proc filesystem Proc Cung cấp thông tin tiến trình cho ps
Device filesystem Devfs Một cách đại diện cho các tệp trong thư mục
/dev ISO 9660
filesystem
iso9660 Sử dụng bởi đa số đĩa CD
Joliet filesystem iso9660 Mở rộng của hệ thống file ISO 9660, có thể
đọc tên file Unicode UDF filesystem Udf Hệ thống file cho CD-ROM mới nhất
System V
filesystem
Sysv Truy cập file từ những biến thể của System V
Coherent
filesystem
coherent Truy cập file từ Coherent
UFS filesystem Ufs Truy cập tệp từ hệ thống file UFS, như trên
SunOS, BSD hay Tru64 Unix BFS filesystem Bfs Truy cập file trên SCO Unixware
EFS filesystem Efs Truy cập file trên những phiên bản Irix cũ
ADFS filesystem Adfs Truy cập file từ phân vùng Acorn
AFFS filesystem Affs Truy cập file từ phân vùng hệ thống file
chuẩn của hệ điều hành Amiga
Mỗi loại tệp tin hệ thống có thuộc tính riêng và giới hạn của nó
Khi định dạng lại phân vùng trên Linux, chúng ta sẽ thấy nhiều lựa chọn cho loại file system Ext4 là định dạng mặc định của đa số các bản phân phối của Linux hiện nay vì một số đặc điểm của nó Nó là một phiên bản nâng cấp của ext3 Tuy
nó không phải là hệ thống tệp tin tiên tiến nhất nhưng nó ổn định và chắc chắn hơn các hệ thống tệp tin khác
Trong tương lai, các bản phân phối của Linux sẽ dần chuyển sang BtrFS BtrFS đang có nhiều vượt trội và có thể thấy được sự phát triển của nó Tuy nhiên bạn không nên dùng định dạng tệp tin này vì nó còn đang tiềm ẩn nhiều nguy cơ như bị hỏng dữ liệu và 1 số vấn đề liên quan đến tốc độ
2.3 Gắn kết hệ thống file
Không giống như trong Windows, để có thể truy cập dữ liệu được lưu trữ trong USB, đĩa CD/DVD, file ISO, phân vùng ổ cứng, các tài nguyên được chia sẻ qua mạng (gọi chung là thiết bị)… trong Linux thì trước hết các thiết bị này được gắn kết (mount) vào 1 thư mục trống (gọi là mount point) đã tồn tại sẵn trong cây thư mục Và khi muốn tháo gỡ thiết bị đang hoạt động khỏi hệ thống thì phải ngắt
Trang 11kết nối (unmount) giữa thiết bị với mount point trước 2 công
cụ: mount và umount giúp thực hiện công việc gắn kết và tháo gỡ trên
2.3.1 Giới thiệu
Ngày nay, có thể lưu trữ dữ liệu trong nhiều thiết bị lưu trữ vật lý khác nhau như: CD/DVD, ổ cứng, USB, thẻ nhớ… Trong đó mỗi thiết bị có các filesystem khác nhau như:
– FAT16, FAT32, NTFS: thường gặp trong Windows
– EXT2, EXT3, EXT4:thường gặp trong Linux
– iso9660: định dạng của đĩa CD/DVD hoặc file ISO
…
Hiểu đơn giản thì filesystem là các quy chuẩn về: cách thức cấp phát không gian lưu trữ cho file, quản lý thuộc tính của file; cách tổ chức, sắp xếp dữ liệu trên thiết bị sao cho việc tìm kiếm, truy cập tới dữ liệu được mau chóng và thuận tiện…
Việc truy cập tới các filesystem trong Windows rất dễ dàng, nhưng có thể khi chuyển sang sử dụng Linux khi không thể truy cập vào các thiết bị Rất có thể
đó là do chúng ta chưa thực hiện việc mount cho các thiết bị này Tức là, thiết bị phải được gắn vào 1 thư mục trống bất kỳ có sẵn trên cây thư mục trước khi có thể truy cập tới nó Thư mục trống mà gắn với thiết bị kể trên được gọi là mount point Sau khi mount thiết bị, chúng ta có thể truy cập tới dữ liệu trong thiết bị bằng cách truy cập vào mount point Cần thực hiện thao thác unmount để hủy gắn kết thiết bị với hệ thống khi không còn cần truy cập tới thiết bị nữa
2.3.2 Cách mount thiết bị
Linux có khả năng tự nhận biết được các filesystem đang được kết nối với
hệ thống Tuy nhiên, để có thể sử dụng được các filesystem này, bắt buộc phải làm một công việc gọi là mount
Có thể sử dụng lệnh mount để mount filesystem, hoặc có thể mount tự động thông qua file cấu hình /etc/fstab
Các tham số của lệnh mount và file /etc/fstab là tương tự, 1 số điểm cần lưu ý khi mount là:
Những thiết bị không có mặt trong file /etc/fstab thì chỉ có root mới có thể mount được
Người dùng bình thường chỉ có thể mount được những thiết bị có trong file /etc/fstab và thiết bị này phải có tùy chọn user được bật lên
Khi mount, cần chỉ định thiết bị cần mount và vị trí của mount point
Ví dụ để mount ổ CD sử dụng lệnh:
$ mount /dev/cdrom /media/cdrom
Trong đó, /dev/cdrom là đường dẫn tới ổ CD-ROM cần mount
và /media/cdrom là mount point
Trang 12Bây giờ, khi chúng ta truy cập tới thư mục /media/cdrom thì chúng ta mới thực sự truy cập được nội dung trong đĩa CD
2.3.3 Về mount point
Thông thường mount point được tạo ở trong thư mục /mnt (đối với các phân vùng trên ổ cứng IDE hoặc SCSI) hoặc /media (đối với các thiết bị lưu trữ di động như ổ CD/DVD/USB)
Tên thư mục làm mount point là không quan trọng VD: /mnt/uit-usb, /media/ my-cd,… đều được chấp nhận Mặc dù vậy nhiều bản phân phối Linux có các thư mục làm mount point mặc định như với ổ CD-ROM là /mnt/cdrom, còn ổ đĩa mềm là /mnt/floppy…
Trong trường hợp có sẵn các mount point mặc định này thì trong lệnh mount chúng ta chỉ cần cung cấp 1 trong 2 thông tin: đường dẫn tới thiết bị cần mount hoặc mount point mặc định của thiết bị đó
Ví dụ 2 lệnh sau tương đương với lệnh $ mount /dev/cdrom mnt/cdrom
$ mount /dev/cdrom
$ mount /mnt/cdrom
Các mount point mặc định cho các thiết bị được cấu hình trong file /etc/fstab
2.3.4 Cách unmount thiết bị
Sử dụng lệnh umount (chú ý: không phải unmount) để ngắt kết nối thiết bị khỏi hệ thống Ví dụ để gỡ bỏ ổ CD-ROM chúng ta gõ lệnh:
$ umount /mnt/cdrom hoặc $ umount /dev/cdrom
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ị!
Để xem chi tiêt cách sử dụng lệnh mount chúng ta có thể gõ lệnh:
$ man mount
Điều quan trọng cần lưu ý là phương tiện di động, bao gồm đĩa mềm và đĩa
CD, không nên bỏ ra khỏi ổ đĩa hoặc đổi chỗ cho ổ đĩa khác trong khi gắn kết Điều này làm cho thông tin của hệ thống trên thiết bị không đồng bộ với những gì thực sự ở đó và có thể dẫn đến những rắc rối Khi muốn chuyển đổi đĩa
mềm hoặc đĩa CD-ROM, ngắt gắn kết nó trước, sử dụng lệnh umount, cho đĩa mới
vào, và sau đó gắn kết nối thiết bị đó Tất nhiên, với một đĩa CD hoặc đĩa mềm được bảo vệ chống ghi, không có cách nào các thiết bị có thể tự nó ra khỏi đồng
bộ, nhưng chúng ta có thể gặp các vấn đề khác
Ví dụ, một số ổ đĩa CD-ROM không cho phép đẩy ra đĩa cho đến khi nó được ngắt gắn kết
Đọc và ghi vào hệ thống file trên đĩa mềm được đưa vào vùng đệm Điều này có nghĩa rằng khi chúng ta đọc hoặc ghi dữ liệu vào đĩa mềm, có thể không có