Điểm gắn kết nào tồn tại trên một hệ thống Linux điển hình?


32

Tôi có 2 câu hỏi.

  1. Trong quá trình cài đặt Linux, chúng tôi chỉ định không gian bộ nhớ cho 2 điểm gắn kết - root và trao đổi. Có bất kỳ điểm gắn kết khác được tạo mà không có thông báo người dùng?
  2. Câu lệnh này có đúng không: "việc gắn kết chỉ vào hình ảnh khi xử lý các phân vùng khác nhau. Tức là, bạn không thể gắn kết, giả sử, / Proc trừ khi đó là một phân vùng khác"?

1
+1 cho tiêu đề câu hỏi! Nếu tất cả những người mới hỏi rất hồn nhiên ...
Caleb

Haha, chính xác là suy nghĩ của tôi quá! +1.
boehj

2
@ John: Không nên hỏi hai câu hỏi trong một. Vì hiện tại có câu trả lời bao gồm cả hai câu hỏi, tôi đoán chúng ta sẽ để nó trượt, nhưng xin vui lòng đặt câu hỏi riêng biệt vào lần tới. Khó khăn của bạn khi tìm một tiêu đề hay (không, tiêu đề của bạn không phải là một bản tóm tắt hay cho câu hỏi của bạn) là do cố gắng kết hợp nhiều câu hỏi thành một.
Gilles 'SO- ngừng trở nên xấu xa'

Câu trả lời:


47

Có những quan niệm sai lầm đằng sau câu hỏi của bạn.

  1. Hoán đổi không được gắn kết.
  2. Gắn kết không giới hạn phân vùng.

Phân vùng

Một phân vùng là một slice¹ không gian đĩa đó là dành cho một mục đích cụ thể. Dưới đây là một số mục đích phổ biến cho các phân vùng.

  • Một hệ thống tệp , tức là các tệp được tổ chức dưới dạng cây thư mục và được lưu trữ ở định dạng như ext2, ext3, FFS, FAT, NTFS, chặn
  • Hoán đổi không gian, tức là không gian đĩa được sử dụng để phân trang (và lưu trữ hình ảnh ngủ đông ).
  • Truy cập ứng dụng trực tiếp. Một số cơ sở dữ liệu lưu trữ dữ liệu của họ trực tiếp trên một phân vùng thay vì trên hệ thống tệp để đạt được một chút hiệu suất. (Hệ thống tập tin là một loại cơ sở dữ liệu nào đó.)
  • Một container cho các phân vùng khác. Ví dụ: phân vùng mở rộng PC hoặc lát đĩa chứa phân vùng BSD hoặc ổ đĩa vật lý LVM (chứa khối lượng logic cuối cùng có thể được coi là phân vùng),

Hệ thống tập tin

Hệ thống tập tin trình bày thông tin trong một cấu trúc phân cấp. Dưới đây là một số loại hệ thống tập tin phổ biến:

  • Các hệ thống tập tin được hỗ trợ bằng đĩa, chẳng hạn như ext2, ext3, FFS, FAT, NTFS, '
    • Việc sao lưu không cần phải trực tiếp trên một phân vùng đĩa, như đã thấy ở trên. Ví dụ, đây có thể là một khối logic LVM hoặc gắn kết vòng lặp .
  • Các hệ thống tập tin hỗ trợ bộ nhớ, chẳng hạn như tmpfs của Solaris và Linux .
  • Các hệ thống tập tin trình bày thông tin từ kernel, chẳng hạn như procsysfstrên Linux.
  • Các hệ thống tập tin mạng, như NFS , Samba , Hoài
  • Các hệ thống tệp được hỗ trợ bởi ứng dụng, trong đó FUSE có một bộ sưu tập lớn . Các hệ thống tệp được hỗ trợ bởi ứng dụng có thể làm bất cứ điều gì: làm cho máy chủ FTP xuất hiện dưới dạng hệ thống tệp, cung cấp giao diện thay thế cho hệ thống tệp trong đó tên tệp không phân biệt chữ hoa chữ thường hoặc được chuyển đổi sang mã hóa khác, hiển thị nội dung lưu trữ như thể chúng là thư mục,

Gắn kết

Unix trình bày các tập tin theo một hệ thống phân cấp duy nhất, thường được gọi là hệ thống tập tin hệ thống tập tin (nhưng trong câu trả lời này, tôi sẽ không sử dụng từ tập tin hệ thống tập tin, theo nghĩa này để tránh nhầm lẫn). Các hệ thống tệp riêng lẻ phải được ghép vào hệ thống phân cấp đó để truy cập chúng.

Bạn tạo một hệ thống tập tin có thể truy cập bằng cách gắn nó. Gắn kết liên kết thư mục gốc của hệ thống tệp bạn đang gắn với một thư mục hiện có trong hệ thống phân cấp tệp. Một thư mục có liên kết như vậy được gọi là điểm gắn kết.

  • Ví dụ, hệ thống tập tin gốc được gắn vào lúc khởi động (trước khi kernel bắt đầu bất kỳ process² nào) vào /thư mục.
  • Hệ thống tập tin Proc mà một số biến thể unix như Solaris và Linux tiết lộ thông tin về các quy trình được gắn vào /proc, để /proc/42/environchỉ định tệp /42/environtrên hệ thống tập tin Proc, (ít nhất là trên Linux) chứa chế độ xem chỉ đọc về môi trường của quá trình số 42.
  • Nếu bạn có một hệ thống tệp riêng biệt, ví dụ như vậy /home, thì /home/john/myfile.txtchỉ định tệp có đường dẫn /john/myfile.txttừ gốc của hệ thống tệp gia đình.

Trong Linux, có thể truy cập cùng một hệ thống tệp thông qua nhiều đường dẫn, nhờ vào các liên kết gắn kết .

Một hệ thống tệp Linux điển hình có nhiều hệ thống tệp được gắn kết. (Đây là một ví dụ; các bản phân phối, phiên bản và thiết lập khác nhau sẽ dẫn đến các hệ thống tệp khác nhau được gắn kết.)

  • /: hệ thống tập tin gốc, được gắn trước khi kernel tải tiến trình đầu tiên. Bộ tải khởi động cho kernel biết nên sử dụng hệ thống tập tin gốc (thường là phân vùng đĩa nhưng có thể là một thứ khác như xuất NFS).
  • /proc: Proc filessytem, ​​với thông tin về tiến trình và nhân.
  • /sys: hệ thống tập tin sysfs , với thông tin về các thiết bị phần cứng.
  • /dev: một hệ thống tệp trong bộ nhớ trong đó các tệp thiết bị được udev tạo tự động dựa trên phần cứng có sẵn.
  • /dev/pts: một hệ thống tệp mục đích đặc biệt chứa các tệp thiết bị để chạy trình giả lập thiết bị đầu cuối .
  • /dev/shm: một hệ thống tập tin trong bộ nhớ được sử dụng cho các mục đích nội bộ của thư viện tiêu chuẩn của hệ thống.
  • Tùy thuộc vào thành phần hệ thống nào bạn đang chạy, bạn có thể thấy các hệ thống tệp có mục đích đặc biệt khác, chẳng hạn như binfmt_misc(được sử dụng bởi hệ thống con định dạng tệp thực thi nước ngoài ), fusectl(được sử dụng bởi FUSE ),nfsd (được sử dụng bởi máy chủ NFS kernel),
  • Bất kỳ hệ thống tập tin được đề cập rõ ràng trong /etc/fstab(và không được đánh dấu noauto) được gắn kết như là một phần của quá trình khởi động.
  • Bất kỳ hệ thống tệp nào được tự động gắn bởi HAL (hoặc chức năng tương đương) sau khi chèn thiết bị di động, chẳng hạn như khóa USB.
  • Bất kỳ hệ thống tập tin được gắn kết rõ ràng với mountlệnh.

¹ Thức nói đây.
² Ban đầu và như vậy là vượt quá phạm vi của câu trả lời này.
³ này là không giống như Windows, trong đó có một hệ thống phân cấp riêng biệt cho mỗi hệ thống tập tin, ví dụ c:hay \\hostname\sharename.


5
+10 Gilles bạn có thời gian ở đâu? Nhận xét duy nhất của tôi là tôi phải cung cấp cho mọi người một chút chậm chạp về vấn đề hoán đổi vì thật khó hiểu khi phân vùng trao đổi của tôi được liệt kê /etc/fstabkhi không được gắn kết.
Caleb

chắc chắn là một câu hỏi ngớ ngẩn ... nhưng không thể dừng bản thân mình. Bạn đã nói "Gắn kết liên kết một thư mục với thư mục gốc của hệ thống tập tin." Vậy thư mục "/" nằm ở đâu?
Giăng

2
@ John: Không phải là một câu hỏi ngớ ngẩn chút nào, dòng chữ “hệ thống tập tin” và “gốc” có hai nghĩa khác nhau ở đây: có hệ thống tập tin cá nhân (mỗi thư mục gốc của họ), và có hệ thống phân cấp toàn bộ thư mục (với gốc của nó, là /thư mục) . Tôi đã điều chỉnh lại phần này trong câu trả lời của mình, hy vọng nó sẽ rõ ràng hơn bây giờ.
Gilles 'SO- ngừng trở nên xấu xa'

Câu trả lời đó rất hữu ích - đó là bách khoa toàn thư. Tôi cũng muốn tôi có thể làm +10 ở đây. Câu trả lời tuyệt vời.
boehj

13
  1. Mỗi bản phân phối linux có cách sắp xếp phân vùng mặc định riêng; một số trong số họ sử dụng hàng tá phân vùng, một số chỉ là một. 3 và 4 là các sắp xếp khá phổ biến (/ boot, /, hoán đổi và / home). Một số bố cục cũ hơn thường có / var trên một phân vùng riêng và các hệ thống cực đoan có mọi thứ trong / var / * và / opt / * trên các phân vùng riêng biệt! Khái quát nhất tốt nhất tôi có thể trả lời cho câu hỏi của bạn là không có gì trong thế giới unix được thực hiện mà không có thông báo hoặc khả năng thay đổi của người dùng !
  2. Bạn có thể gắn kết những thứ không phải là phân vùng. Ví dụ / Proc thường không phải là một phân vùng, nó là một hệ thống tệp giả được cung cấp bởi kernel cho phép bạn đọc và ghi dữ liệu về các tiến trình đang chạy như thể chúng là các tệp. Bạn cũng có thể gắn kết các tệp (như ISO) như thể chúng là các ổ đĩa sử dụng thiết bị loopback, liên kết các thư mục gắn kết với các vị trí khác và thực hiện nhiều thủ thuật ninja khác.

1
Tất cả các phân vùng được tự động gắn vào khởi động đều ở trong /etc/fstab. Nếu bạn thêm một phân vùng ở đó, nó sẽ ở đó trong lần khởi động tiếp theo.
LawrenceC
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.