Khi một tập tin hoặc thư mục bị "xóa", số inode của nó sẽ bị xóa khỏi thư mục chứa tập tin. Bạn có thể xem danh sách các nút mà một thư mục đã cho chứa bằng cách sử dụngtree
lệnh.
Thí dụ
$ tree -a -L 1 --inodes .
.
|-- [9571121] dir1
|-- [9571204] dir2
|-- [9571205] dir3
|-- [9571206] dir4
|-- [9571208] dir5
|-- [9571090] file1
|-- [9571091] file2
|-- [9571092] file3
|-- [9571093] file4
`-- [9571120] file5
5 directories, 5 files
Liên kết
Điều quan trọng là phải hiểu làm thế nào các liên kết cứng hoạt động. Hướng dẫn này có tiêu đề: Giới thiệu về Inodes có các chi tiết tuyệt vời nếu bạn chỉ mới bắt đầu cố gắng hiểu cơ bản về cách thức hoạt động của các nút.
đoạn trích
Số inode là duy nhất, nhưng bạn có thể nhận thấy rằng một số tên tệp và danh sách số inode hiển thị một số tệp có cùng số. Sự trùng lặp được gây ra bởi các liên kết cứng. Liên kết cứng được thực hiện khi một tập tin được sao chép trong nhiều thư mục. Cùng một tệp tồn tại trong các thư mục khác nhau trên cùng một đơn vị lưu trữ. Danh sách thư mục hiển thị hai tệp có cùng số liên kết chúng với cùng một vật lý trên đơn vị lưu trữ te. Liên kết cứng cho phép cùng một tệp "tồn tại" trong nhiều thư mục, nhưng chỉ tồn tại một tệp vật lý. Không gian sau đó được lưu trên đơn vị lưu trữ. Ví dụ: nếu một tệp một megabyte được đặt trong hai thư mục khác nhau, không gian được sử dụng trên bộ lưu trữ là một megabyte, không phải hai megabyte.
Xóa
Hướng dẫn tương tự cũng có điều này để nói về những gì xảy ra khi một nút bị xóa.
Xóa các tệp khiến kích thước và các mục nhập khối trực tiếp / gián tiếp bằng 0 và không gian vật lý trên đơn vị lưu trữ được đặt là không sử dụng. Để phục hồi tệp, siêu dữ liệu được khôi phục từ Tạp chí nếu nó được sử dụng (xem bài viết Tạp chí ). Khi siêu dữ liệu được khôi phục, tệp sẽ có thể truy cập một lần nữa trừ khi dữ liệu vật lý đã được ghi đè lên đơn vị lưu trữ.
Mức độ
Bạn cũng có thể muốn cải thiện phạm vi và cách chúng hoạt động. Một lần nữa từ trang web linux.org, một tốt hướng dẫn, với tựa đề: Extents sẽ giúp bạn có được những điều cơ bản xuống.
Bạn có thể sử dụng lệnh filefrag
để xác định số lượng tệp / thư mục đã cho đang sử dụng.
Ví dụ
$ filefrag dir1
dir1: 1 extent found
$ filefrag ~/VirtualBox\ VMs/CentOS6.3/CentOS6.3.vdi
/home/saml/VirtualBox VMs/CentOS6.3/CentOS6.3.vdi: 5 extents found
Bạn có thể nhận được đầu ra chi tiết hơn bằng cách sử dụng công -v
tắc:
$ filefrag -v dir1
Filesystem type is: ef53
File size of dir1 is 4096 (1 block of 4096 bytes)
ext: logical_offset: physical_offset: length: expected: flags:
0: 0.. 0: 38282243.. 38282243: 1: eof
dir1: 1 extent found
LƯU Ý: Lưu ý rằng một thư mục luôn tiêu thụ ở mức tối thiểu 4K byte.
Cung cấp một tập tin kích thước
Chúng tôi có thể lấy một trong các tệp mẫu của mình và ghi 1 MB dữ liệu vào đó như sau:
$ dd if=/dev/zero of=file1 bs=1k count=1k
1024+0 records in
1024+0 records out
1048576 bytes (1.0 MB) copied, 0.00628147 s, 167 MB/s
$ ll | grep file1
-rw-rw-r--. 1 saml saml 1048576 Dec 9 20:03 file1
Nếu chúng tôi phân tích tệp này bằng cách sử dụng filefrag
:
$ filefrag -v file1
Filesystem type is: ef53
File size of file1 is 1048576 (256 blocks of 4096 bytes)
ext: logical_offset: physical_offset: length: expected: flags:
0: 0.. 255: 35033088.. 35033343: 256: eof
file1: 1 extent found
Xóa và tạo lại một tập tin nhanh chóng
Một thử nghiệm thú vị bạn có thể làm là tạo một tệp, chẳng hạn như file1
ở trên, sau đó xóa nó và sau đó tạo lại nó. Xem những gì xảy ra. Ngay sau khi xóa tệp, tôi chạy lại dd ...
lệnh và file1
hiển thị như thế này với filefrag
lệnh:
$ filefrag -v file1
Filesystem type is: ef53
File size of file1 is 1048576 (256 blocks of 4096 bytes)
ext: logical_offset: physical_offset: length: expected: flags:
0: 0.. 255: 0.. 255: 256: unknown,delalloc,eof
file1: 1 extent found
Sau một chút thời gian (vài giây đến vài phút trôi qua):
$ filefrag -v file1
Filesystem type is: ef53
File size of file1 is 1048576 (256 blocks of 4096 bytes)
ext: logical_offset: physical_offset: length: expected: flags:
0: 0.. 255: 38340864.. 38341119: 256: eof
file1: 1 extent found
Các tập tin cuối cùng xuất hiện. Tôi không hoàn toàn chắc chắn những gì đang diễn ra ở đây, nhưng có vẻ như phải mất một thời gian để trạng thái của tệp được giải quyết giữa tạp chí và đĩa. Các stat
lệnh đang chạy hiển thị tệp có inode nên nó ở đó, nhưng dữ liệu filefrag
sử dụng chưa được giải quyết nên chúng tôi ở trạng thái limbo.