Tìm tệp nào bị ảnh hưởng bởi các khối xấu trên hệ thống tệp ext4


13

Tôi có một hệ thống tập tin ext4 gần đây đã phát triển một số thành phần xấu. Chạy fsck.ext4 -ctìm và nhớ các khối xấu. Làm cách nào tôi có thể tìm thấy tệp nào (nếu có) bao gồm các khối xấu này để tôi có thể khôi phục chúng từ bản sao lưu?

linux  ext4 

Trong khi tôi đang tương tác sửa nó bằng fsck, nó đã hiển thị những tập tin nào có vấn đề; nhưng, nếu có quá nhiều, tốt hơn là những gì @Nethox đã trả lời.
Sức mạnh Bảo Bình

Câu trả lời:


11

Với sự kết hợp của dumpe2fsdebugfs, được bao gồm trong e2fsprogsgói cùngfsck.ext* .
Bạn phải sử dụng đầu ra của một lệnh làm đối số của lệnh tiếp theo.
Các công cụ này tự động phát hiện kích thước khối hệ thống tập tin, vì vậy nó phù hợp và an toàn hơn so với badblocksgọi trực tiếp .

In các khối xấu đã đăng ký của hệ thống tập tin:

# dumpe2fs -b DEVNAME

In các nút sử dụng danh sách khối đã cho:

# debugfs -R "icheck BLOCK ..." DEVNAME

In tên đường dẫn đến danh sách inode đã cho:

# debugfs -R "ncheck INODE ..." DEVNAME

debugfscũng có một vỏ tương tác và -f cmd_filetùy chọn, nhưng chúng không mạnh mẽ hay hữu ích cho trường hợp này.
Tùy chọn -R cho phép nhiều tập lệnh tự động như thế này:

#!/bin/sh
# Finds files affected by bad blocks on ext* filesystems.
# Valid only for ext* filesystems with bad blocks registered with
# fsck -c [-c] [-k] or -l|-L options.
# Can be extremely slow on damaged storage (not just a corrupt filesystem).

DEVNAME="$1"
[ -b "$DEVNAME" ] || exit 1

BADBLOCKS="$(dumpe2fs -b "$DEVNAME" | tr '\n' ' ')"
[ -n "$BADBLOCKS" ] || exit 0

INODES="$(debugfs -R "icheck $BADBLOCKS" "$DEVNAME" | awk -F'\t' '
    NR > 1 { bad_inodes[$2]++; }
    END {
        for (inode in bad_inodes) {
            if (inode == "<block not found>") {
                printf("%d unallocated bad blocks\n", bad_inodes[inode]) > "/dev/stderr";
                continue;
            }
            printf inode OFS;
        }
    }
')"
[ -n "$INODES" ] || exit 0

debugfs -R "ncheck -c $INODES" "$DEVNAME"

chỉ để chỉ ra rằng gỡ lỗi, trên một hệ thống tệp rất lớn, có thể mất nhiều thời gian trước khi hiển thị một cái gì đó
Sức mạnh của Bảo Bình
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.