Tại sao các thư mục / home, / usr, / var, v.v ... đều có cùng số inode (2)?


31

Tôi thấy rằng trong thư mục gốc của tôi, có một số thư mục có cùng số inode:

$ ls -aid */ .*/

2 home/ 2 tmp/ 2 usr/ 2 var/ 2 ./ 2 ../ 1 sys/ 1 proc/

Tôi chỉ biết rằng tên của các thư mục được giữ trong thư mục mẹ và dữ liệu của chúng được giữ trong nút của các thư mục.

Tôi đang bối rối ở đây.

Đây là những gì tôi nghĩ khi tôi theo dõi tên đường dẫn / home / user1.

  • Đầu tiên tôi vào inode 2 là thư mục gốc chứa danh sách thư mục.
  • Sau đó, tôi tìm thấy tên nhà kết hợp với inode 2.
  • Vì vậy, tôi quay trở lại đĩa để tìm inode 2?
  • Và tôi có được tên user1 ở đây?

Câu trả lời:


39

Chúng nằm trên các thiết bị khác nhau.

Nếu chúng ta nhìn vào đầu ra của stat, chúng ta cũng có thể thấy thiết bị mà tập tin đang bật:

# stat / | grep Inode
Device: 801h/2049d      Inode: 2           Links: 24
# stat /opt | grep Inode
Device: 803h/2051d      Inode: 2           Links: 5

Vì vậy, hai cái đó là trên các thiết bị / hệ thống tập tin riêng biệt. Số inode chỉ là duy nhất trong một hệ thống tập tin nên không có gì bất thường ở đây. Trên ext2 / 3/4 inode 2 cũng luôn là thư mục gốc , vì vậy chúng tôi biết chúng là gốc của các hệ thống tệp tương ứng của chúng.

Sự kết hợp của số thiết bị + inode có thể là duy nhất trên toàn bộ hệ thống. (Có những hệ thống tập tin không có inodes theo nghĩa truyền thống, nhưng tôi nghĩ rằng chúng vẫn phải giả mạo một số loại định danh duy nhất ở vị trí của chúng.)

Các số thiết bị ở đó dường như giống với các số được hiển thị trên các nút của thiết bị, do đó /dev/sda1giữ hệ thống tệp ở /trên:

# ls -l /dev/sda1
brw-rw---- 1 root disk 8, 1 Sep 21 10:45 /dev/sda1

Cảm ơn bạn, bây giờ tôi nhận được stat, hữu ích cho tôi, tôi sẽ học cách sử dụng nó.
youxiao

1
Đối với bản ghi, tất cả các hệ thống tệp có một số tương đương, ngay cả khi chúng tự động phân bổ các nút. Ví dụ: trên BTRFS (phân bổ inode động, trái ngược với các bảng inode tĩnh của ext2 / 3/4), giá trị inode cụ thể được sử dụng như thế này là 256 (vì mọi thứ thấp hơn được dành cho các mục đặc biệt trong cây siêu dữ liệu) .
Austin Hemmelgarn

1
@AustinHemmelgarn, một số hệ thống tập tin như FAT hoặc ISO9660 không có inodes theo bất kỳ ý nghĩa nào của từ này. Trình điều khiển hệ thống tập tin thực hiện một số thao tác để làm cho nó trông giống với phần còn lại của hệ thống mà chúng làm.
Đánh dấu

@Mark: "ý nghĩa duy nhất của từ" theo tiêu chuẩn xác định nó là "số sê-ri tệp [duy nhất trong thiết bị]". Khăng khăng nghĩ về các nút như một cấu trúc dữ liệu trên đĩa cụ thể là ngược với suy nghĩ của các ttys như các kiểu máy cơ.
R ..

1
@R .., tôi cho rằng theo định nghĩa đó, hệ thống tệp FAT có các nút, nhưng "số sê-ri tệp" cho một tệp đã cho trên hệ thống tệp FAT không ổn định trên các giá trị gắn kết hoặc thậm chí theo thời gian trên một giá trị gắn kết làm cho cấu trúc inode được tổng hợp bị đuổi khỏi bộ đệm, tệp sẽ nhận được một số mới vào lần tiếp theo khi có thứ gì đó yêu cầu dữ liệu inode của nó.
Đánh dấu

24

Số inode của bất kỳ tệp đã cho nào là duy nhất cho hệ thống tệp, nhưng không nhất thiết là duy nhất cho tất cả các hệ thống tệp được gắn trên một máy chủ nhất định. Khi bạn có nhiều hệ thống tập tin, bạn sẽ thấy các số inode trùng lặp giữa các hệ thống tập tin, điều này là bình thường.

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.