Tạo và gắn các hệ thống tập tin

Một phần của tài liệu Tự học sử dụng Linux. (Trang 103 - 111)

4 Làm quen với hệ thống tập tin ext3fs

4.8Tạo và gắn các hệ thống tập tin

4.8 Tạo và gắn các hệ thống tập tin

Trong những phần trước chúng ta đã đề cập ngắn gọn một số câu lệnh chính để làm việc với những hệ thống tập tin đã định dạng sẵn. Bây giờ chúng ta sẽ dừng lại ở vấn đề làm sao để tạo ra hệ thống tập tin và cách thay đổi nó.

Cây thư mục của Linux được tạo ra từ những “cành” riêng rẽ tương ứng với các ổ đĩa khác nhau. Thường nói là cây thư mục được tạo thành từ các hệ thống tập tin riêng. Nói như vậy vì trong UNIX (và Linux) không có khái niệm “định dạng đĩa” mà sử dụng khái niệm “tạo hệ thống tập tin”. Khi chúng ta có một đĩa lưu mới, ví dụ đĩa cứng, chúng ta cần tạo trên đĩa này hệ thống tập tin. Tức là mỗi đĩa được đặt tương ứng với hệ thống tập tin riêng. Để có thể sử dụng hệ thống tập tin này để ghi các tập tin, thì đầu tiên cần kết nối nó và cây thư mục chung (chúng ta sử dụng thuật ngữ “gắn”, mount). Như vậy là có thể nói gắn hệ thống tập tin hoặc gắn đĩa lưu cùng với các hệ thống tập tin có trên nó.

Còn cần phải nói thêm rằng thông thường đĩa cứng được chia thành các phân vùng, nhất là đối với những đĩa mới sản xuất gần đây có dung lượng lớn từ vài chục đến vài trăm GB. Việc tạo những phân vùng như vậy giúp thực hiện dễ dàng các thao tác như: sao lưu, xác định quyền truy cập, đồng thời tăng hiệu suất làm việc và làm giảm khả năng mất thông tin do chương trình gây ra. Vì thế tiếp theo chúng ta sẽ nói về tạo hệ thống tập tin trên một phân vùng, những đĩa không bị chia có thể coi là một phân vùng.

Còn một điểm nữa cũng cần nói đến là Linux có thể làm việc với nhiều dạng hệ thống tập tin khác nhau. Nhưng hệ thống tập tin gốc của nó là “hệ thống tập tin mở rộng” (extfs) phiên bản 2 và 3. Ngoài hai hệ thống tập tin này Linux còn có thể làm việc với các “phiên bản” khác nhau của hệ thống tập tin FAT (FAT16 và FAT32), hệ thống tập tin ISO9660 sử dụng để ghi thông tin trên CD-ROM và các hệ thống tập tin khác (kể cả NTFS15). Tức là khi tạo và gắn các hệ thống tập tin cần luôn luôn nhớ rằng dạng hệ thống tập tin trên các đĩa lưu khác nhau có thể không giống nhau.

Đầu tiên chúng ta sẽ xem xét trường hợp cần tạo hệ thống tập tin trên một phân vùng nào đó (đã có) của đĩa. Ví dụ hệ thống tập tin có dạng ext3fs. Tạo hệ thống tập tin dạng ext3fs có nghĩa là tạo trên phân vùng này của đĩa một siêu khối(superblock), một bảng các mô tả inode, và các khối dữ liệu. Thực hiện tất cả những việc này bằng lệnh mkfs16. Trong trường hợp đơn giản nhất chỉ cần chạy lệnh sau:

[root]# mkfs -t ext3 /dev/hda2

Tất nhiên là cần thay thế/dev/hda2bằng tên của phân vùng trên máy của bạn. Hãy cẩn thận khi viết tên phân vùng, nếu ghi nhầm bạn sẽ bị mất dữ liệu. Nếu bạn muốn tạo hệ thống tập tin trên đĩa mềm thì cần chạy:

[root]# mkfs -t ext3 /dev/fd0

15Sự hỗ trợ đọc đã tốt, tuy nhiên sự hỗ trợ ghi lên NTFS chưa thật hoàn hảo.

16Trên các bản phân phối Linux mới còn có thể sử dụng các câu lệnh mkfs.ext2, mkfs.ext3 và các câu lệnh tương tự. Nếu dùng chúng thì chỉ cần bỏ đi phần -t ext3 hoặc -t ext2.

Có thể nói rằng chúng ta đã “định dạng đĩa mềm”, nhưng cần biết là với hệ thống tập tin ext3fs thì bạn không đọc được đĩa mềm này trên DOS hoặc Windows (nếu không dùng chương trình hoặc driver đặc biệt). Để tạo ra những đĩa mềm có thể đọc trên DOS và Windows cần dùng tùy chọn-tvới giá trịvfathoặc những tiện ích đặc biệt khác. Nếu không đưa ra tùy chọn-tthì sẽ dùng dạng hệ thống tập tin mặc định (hiện nay là phiên bản cũ của ext – ext2fs).

Sau khi thực hiện câu lệnhmkfs, sẽ tạo ra hệ thống tập tin dạng ext3fs trong phân vùng chỉ ra. Trong hệ thống tập tin mới sẽ tự động tạo ra một thư mục với tênlostfound+. Thư mục này được chương trìnhfsckdùng trong những trường hợp khẩn cấp, vì vậy đừng xóa nó. Để bắt đầu làm việc với hệ thống tập tin mới, đầu tiên cần kết nối (gắn) nó vào cây thư mục chung bằng lệnh mount.

Phải có ít nhất hai tham số cho câu lệnh mount: thiết bị (device, tên phân vùng) vàđiểm gắn (mount point). Điểm gắn là một thư mục đã có trong cây thư mục, và dùng làm “thư mục gốc”đối vớihệ thống tập tin gắn vào (giống như nút nối giữa thân cây và cành cây). Ví dụ, câu lệnh:

[root]# mount /dev/hda10 /mnt/diaC

sẽ gắn hệ thống tập tin của phân vùng /dev/hda10 vào thư mục /mnt/diaC. Cần phải có thư mục /mnt/diaC trong cây thư mục. Nếu chưa có hãy tạo ra bằng lệnhmkdir.

Cần chú ý là sau khi gắn hệ thống tập tin vào thư mục/mnt/diaC, thì người dùng không còn truy cập được tới nội dung (bao gồm cả thông tin về chủ sở hữu cũ và quyền truy cập tới chính bản thân thư mục) của thư mục này nữa. Nội dung này sẽ chỉ “quay trở lại” khi người dùng bỏ gắn (unmount) hệ thống tập tin ra khỏi thư mục. Nội dung cũ của thư mục không bị huỷ, bị xóa, mà chỉ tạm thời bị giấu đi. Vì thế tốt nhất là dùng các thư mục rỗng đã chuẩn bị sẵn từ trước để làm “điểm gắn” (vì thế mà trong tiêu chuẩn FHS có đề cập đến thư mục /mnt, hãy xem bảng 4.1).

Dạng đơn giản nhất trong ví dụ ở trên của lệnhmount chỉ làm việc với điều kiện tất cả những tham số còn thiếu có thể tìm thấy trong tập tin /etc/fstab. Nếu không có tập tin đó (chỉ khi nào bạn cố tình hoặc vô tình xóa) hoặc trong tập tin không có những dữ liệu cần thiết, thì cần sử dụng dạng đầy đủ của lệnh

mount, như sau:

[root]# mount -t dạng_httt thiết_bị đường_dẫn

trong đódạng_htttxác định dạng hệ thống tập tin trênthiết_bị(phân vùng), cònđường_dẫnxác định điểm gắn.

Tập tin cấu hình/etc/fstabchủ yếu dùng để gắn tự động các hệ thống tập tin trong quá trình khởi động Linux. Mỗi dòng của tập tin này chứa thông tin về một hệ thống tập tin và gồm 6 vùng phân cách nhau bởi các khoảng trắng17:

ˆ Tên thiết bị (phân vùng). Có thể sử dụng tên thiết bị có trên máy (ví dụ /dev/hda10), cũng như tên của hệ thống tập tin mạng NFS (ví dụ Thin- hQuyen:/home/nhimlui – thư mục /home/nhimluitrên máy có tên Thin- hQuyen).

4.8 Tạo và gắn các hệ thống tập tin 97

ˆ Điểm gắn. Tên đầy đủ bao gồm cả đường dẫn của thư mục sẽ gắn tập tin vào.

ˆ Dạng hệ thống tập tin.

ˆ Các tuỳ chọn gắn. Theo mặc định là rw (đọc và ghi).

ˆ Mức độ dump. Vùng này được chương trình sao lưu dump sử dụng. Nếu hệ thống tập tin cần được sao lưu thì ở đây phải có số 1, nếu không – số 0. Có thể có các giá trị khác, hãy xem trang man của dump.

ˆ Thứ tự ưu tiên kiểm tra hệ thống tập tin bằng câu lệnh fsck. Hệ thống tập tin với giá trị nhỏ hơn sẽ được kiểm tra trước. Nếu bằng nhau thì sẽ kiểm tra song song (tất nhiên nếu có thể).

Hiện nay Linux hỗ trợ các hệ thống tập tin sau: minix, ext, ext2, ext3, xia, msdos, umsdos, vfat, proc, nfs, iso9660, hpfs, sysv, smb, ncpfs18. Ở chỗ dạng hệ thống tập tin trong vùng “dạng hệ thống tập tin” và sau tùy chọn-tcủa lệnh

mountcó thể đặt giá trị auto. Trong trường hợp đó câu lệnhmount thử tự xác định dạng của hệ thống tập tin đang gắn. Tuy nhiên trong một số trường hợp có thể dẫn đến lỗi, nên tốt hơn hết là chỉ ra dạng một cách chính xác. Còn có thể liệt kê một số dạng phân cách nhau bởi dấu phẩy (,). Trong câu lệnh mount còn có thể đưa ra danh sách các dạng hệ thống tập tin không cần gắn bằng cờ (flag)no. Khả năng này có ích trong trường hợp sử dụng câu lệnh mountvới tham số -a (adsbygoogle = window.adsbygoogle || []).push({});

(câu lệnhmount với tham số -asẽ gắn tất cả các hệ thống tập tin liệt kê trong tập tin/etc/fstab). Ví dụ, câu lệnh:

[root]# mount -a -t nosmb,ext

gắn tất cả các hệ thống tập tin trừ các dạngsmb(Samba19) vàext

Khi gắn hệ thống tập tin có trong/etc/fstab, thì chỉ cần đưa ra một tham số: hoặc tên của thiết bị (phân vùng) hoặc điểm gắn. Tất cả các tham số khác câu lệnhmountsẽ lấy từ tập tin/etc/fstab.

Thông thường chỉ có người dùng cao cấp root mới có khả năng gắn các hệ thống tập tin, nhưng nếu trong vùngcác tùy chọn gắncó chỉ ra tùy chọnuser, thì tất cả mọi người dùng sẽ có khả năng gắn (bỏ gắn) hệ thống tập tin đó. Ví dụ, nếu trong tập tin/etc/fstabcó dòng:

/dev/hdd /media/dvd auto noauto,user,sync 0 0

thì bất kỳ người dùng nào cũng có quyền gắn hệ thống tập tin trên đĩa DVD của mình bằng câu lệnh:

[user]$ mount /dev/hdd

hoặc:

Bảng 4.8: Những tùy chọn chính của câu lệnhmount

Tùy chọn Ý nghĩa

async Vào/ra (ghi/đọc) của hệ thống tập tin thực hiện không đồng bộ (không tức thời).

auto Có thể gắn hệ thống bằng câu lệnhmountvới tùy chọn-a.

defaults Sử dụng các tuỳ chọn theo mặc định: rw, suid, dev, exec, auto, nouser, async.

dev Các thiết bị khối và thiết bị ký tự (byte) trong hệ thống tập tin là những tập tin đặc biệt.

noauto Chỉ có thể tự gắn hệ thống tập tin. Tùy chọn-akhông tự động gắn hệ thống tập tin này.

exec Cho phép thực hiện các tập tin chương trình nằm trên hệ thống tập tin này.

remount Cho phép gắn lại hệ thống tập tin đã gắn. Thường sử dụng để thay đổi các tùy chọn gắn, đặc biệt trong trường hợp mở rộng quyền truy cập (ví dụ thêm quyền ghi cho hệ thống tập tin đã gắn chỉ đọc).

ro Gắn hệ thống tập tin chỉ để đọc. rw Gắn hệ thống tập tin để đọc và ghi.

suid Cho phép dùng “bit thay đổi ID người dùng” và “bit thay đổi ID nhóm”. sync Vào/ra (ghi/đọc) của hệ thống tập tin thực hiện đồng bộ (tức thời). user Cho phép người dùng bình thường gắn hệ thống tập tin. Đối với những

người dùng này luôn luôn gắn với các tùy chọnnoexec, nosuid, nodev.

nodev Không coi các thiết bị khối và thiết bị ký tự (byte) trong hệ thống tập tin là những tập tin đặc biệt.

nosuid Không cho phép dùng “bit thay đổi ID người dùng” và “bit thay đổi ID nhóm”.

nouser Cấm người dùng bình thường gắn hệ thống tập tin.

Trong bảng 4.8 có đưa ra thêm một vài tùy chọn có thể sử dụng trong câu lệnhmountvà trong tập tin/etc/fstab(vùngcác tùy chọn gắn).

Nếu muốn gắn một hệ thống tập tin nào đó và chỉ cho phép đọc thì cần chỉ ra tùy chọn r (read only) trên dòng tương ứng của tập tin /etc/fstab (theo mặc định sử dụngrw, tức là đọc và ghi), hoặc sử dụng câu lệnhmountvới tham số-r

Câu lệnhmountvàumounthỗ trợ bảng các hệ thống tập tin đã gắn. Bảng này nằm trên đĩa ở dạng tập tin /etc/mtab. Có thể xem trực tiếp tập tin này bằng các chương trình xem tập tin (less, morehoặc bằng câu lệnhmount(không có tham số).

Trước khi bỏ các đĩa tháo rời (đĩa mềm, flash) ra khỏi máy thì cần “tháo” (bỏ gắn) các hệ thống tập tin có trên các đĩa tháo rời này. Thao tác này được thực hiện bằng câu lệnhumount(không phảiunmount!). Tham số của câu lệnhumountlà tên thiết bị (phân vùng) hoặc điểm gắn.

Chỉ có người dùng đã gắn hệ thống tập tin và tất nhiên cả người dùng cao

18Hãy xem trang man fs để đọc mô tả ngắn gọn về những hệ thống tập tin này. (adsbygoogle = window.adsbygoogle || []).push({});

4.8 Tạo và gắn các hệ thống tập tin 99

cấp root mới có quyền bỏ gắn nó. Để bất kỳ người dùng nào cũng có thể bỏ gắn hệ thống tập tin thì trong tập tin/etc/fstabcần thay thế tùy chọnuserbằng tùy chọnusers(trong vùngcác tùy chọn gắn).

Chỉ có thể bỏ gắn hệ thống tập tin khi không có tập tin nào của nó mở ra, không tiến trình nào đang chạy từ tập tin chương trình nằm trên hệ thống tập tin này và trong hệ thống không có tiến trình nào sử dụng hệ thống tập tin này. Tức là hệ thống tập tin không được bận.

Cần nói rằng nếu so với Windows thì làm việc với các đĩa rời (đĩa mềm, CD, DVD, Zip, v.v. . . ) trên Linux có một chút phức tạp hơn. Vì đầu tiên bạn cần gắn các đĩa này (nói chính xác là hệ thống tập tin có trên đĩa) vào cây thư mục chung. Để thay một đĩa rời khác thì đầu tiên cần bỏ gắn (“tháo”) đĩa đã có ra rồi mới gắn tiếp đĩa thứ hai. Tuy trên các bản phân phối mới đã có các dịch vụ cho phép tự động gắn và tự động “tháo” các đĩa rời, nhưng bạn cũng cần biết cách làm việc với các đĩa rời nếu có vấn đề xảy ra với các dịch vụ đó. Tốt nhất hãy chuẩn bị sẵn cho mỗi đĩa rời một “điểm gắn” riêng. Ví dụ, nếu bạn có một đĩa mềm, một ổ dvd và một flash thì hãy tạo ba thư mụcfloppy, dvdvàflash trong /mntđể làm điểm gắn cho ba thiết bị của mình. Một số bản phân phối (Debian, openSUSE) sẽ tạo sẵn cho bạn những điểm gắn này.

Đây là tất cả những gì mà người dùng Linux mới (và rất mới) cần biết về hệ thống tập tin ext3fs. Xin nhắc lại là những gì đã nói ở đây chỉ dành cho hệ thống tập tin ext3fs (một số thông tin vẫn còn đúng cho phiên bản ext2fs), và mới chỉ đề cập đến “mặt trước”, mặt quay về phía người dùng của hệ thống này (chủ yếu là cấu trúc tập tin). Mặt còn lại, mặt sau (cấu trúc bên trong), chỉ được nói đến trong chương này khi cần thiết. Chúng ta sẽ xem xét kỹ hơn mặt sau này trong một vài chương sắp tới. Còn bây giờ bạn đọc sẽ chuyển sang nghiên cứu thành phần quan trọng thứ 2 trong 4 thành phần chính của Linux – hệ vỏbash.

Bash

Tốt gỗ hơn tốt nước sơn – ca dao tục ngữ Việt Nam

Trong phần này chúng ta sẽ đề cập đến vấn đề làm việc với Linux ở chế độ text, hay còn được gọi là console hoặc terminal. Những người dùng Linux mới (newbie) thường nghĩ sẽ chẳng bao giờ làm việc ở chế độ này, vì đã có giao diện đồ họa. Tuy nhiên đây là một ý kiến sai lầm, bởi vì rất nhiều công việc có thể thực hiện nhanh và thuận tiện trong chế độ này hơn là sử dụng giao diện đồ họa. Và dù sao thì chế độ text của HĐH Linux không phải là chế độ text một tiến trình của MS-DOS. Vì Linux là HĐH đa tiến trình, nên ngay trong chế độ text đã có khả năng làm việc trong vài cửa sổ. Và để soạn thảo một tập tin văn bản không nhất thiết phải chạy các trình soạn thảo lớn và chậm chạp (đặc biệt trên các máy có cấu hình phần cứng thấp) của môi trường đồ họa.

5.1 Hệ vỏ là gì?

Chúng ta thường nói “người dùng làm việc với hệ điều hành”. Điều này không hoàn toàn đúng, vì trên thực tế “liên hệ” với người dùng được thực hiện bởi một chương trình đặc biệt. Có hai dạng của chương trình đã đề cập - hệ vỏ, hay shell, để làm việc trong chế độ text (giao diện dòng lệnh) và giao diện đồ họa GUI (Graphical User Interface), thực hiện “liên hệ” với người dùng trong môi trường đồ họa. Cần nói ngay rằng, bất kỳ chương trình nào trong Linux có thể khởi động từ dòng lệnh của hệ vỏ (nếu máy chủ X đã chạy), cũng như qua giao diện đồ họa. Chạy chương trình từ dòng lệnh của hệ vỏ tương đương với việc nháy (đúp) chuột lên biểu tượng của chương trình trong GUI. Đưa các tham số cho chương trình

Một phần của tài liệu Tự học sử dụng Linux. (Trang 103 - 111)