Khắc phục 'Input/output error' trên Linux: Hướng dẫn khôi phục từng bước

intermediate🐧 Linux2026-07-27| Linux (Ubuntu, Debian, CentOS, RHEL) sử dụng hệ thống tệp ext4, xfs hoặc btrfs.

Error Message

ls: cannot access '/data': Input/output error
#linux#lưu trữ#xử lý sự cố#fsck#sysadmin

Giải mã lỗi I/O

Thấy lỗi Input/output error (thường được gọi tắt là lỗi I/O) thường là một khoảnh khắc đáng lo ngại. Đây là tín hiệu cấp thấp từ nhân Linux cho biết nó đã cố gắng đọc hoặc ghi dữ liệu vào đĩa nhưng thất bại hoàn toàn. Trong khi lỗi phân quyền có nghĩa là bạn không được phép xem tệp, thì lỗi I/O có nghĩa là hệ thống không thể tìm thấy tệp đó về mặt vật lý. Điều này thường bắt nguồn từ một trong hai nguyên nhân: lỗi logic hệ thống tệp hoặc ổ cứng đang bị hỏng vật lý.

Bạn thường sẽ gặp lỗi này khi cố gắng liệt kê các tệp hoặc di chuyển dữ liệu:

ls: cannot access '/mnt/storage': Input/output error

Bước 1: Kiểm tra nhật ký Kernel

Bước đầu tiên bạn nên làm là kiểm tra bộ đệm vòng của nhân (kernel ring buffer). Nhật ký này hoạt động như một hộp đen ghi lại chính xác thiết bị nào đang gặp sự cố. Chạy lệnh sau để xem 50 dòng hoạt động cuối cùng của hệ thống:

sudo dmesg | tail -n 50

Hãy tìm các cụm từ đáng báo động như critical medium error, Buffer I/O error, hoặc sd 2:0:0:0: [sdb] Unaligned I/O. Nếu bạn thấy các số sector cụ thể được liệt kê, chẳng hạn như error, dev sdb, sector 15728640, thì ổ đĩa vật lý của bạn có khả năng đã gặp phải lỗi phần cứng ở một vùng dữ liệu.

Bước 2: Kiểm tra tình trạng phần cứng với SMART

Đừng cố gắng sửa phần mềm nếu phần cứng đang hỏng. Sử dụng smartctl để hỏi trực tiếp ổ đĩa về tình trạng sức khỏe của nó. Nếu bạn chưa cài đặt bộ công cụ này, hãy tải nó trước:

# Cho Debian/Ubuntu
sudo apt install smartmontools -y 

# Cho CentOS/RHEL
sudo yum install smartmontools -y

Bây giờ, hãy chạy kiểm tra sức khỏe trên ổ đĩa của bạn (thay /dev/sdX bằng ID thiết bị thực tế của bạn):

sudo smartctl -H /dev/sdX

Kết quả PASSED là một dấu hiệu tốt, nhưng nó không phải là sự đảm bảo tuyệt đối. Hãy chú ý kỹ đến mục "Reallocated_Sector_Count". Nếu con số đó lớn hơn 0 và đang tăng lên, ổ đĩa của bạn sắp hỏng. Hãy sao lưu dữ liệu ngay lập tức và ngừng đọc hướng dẫn này cho đến khi các tệp của bạn được an toàn.

Bước 3: Ngắt kết nối ổ đĩa một cách an toàn

Sửa chữa một hệ thống tệp đang được gắn (mount) giống như cố gắng sửa động cơ ô tô khi đang chạy trên đường cao tốc—điều đó sẽ dẫn đến thảm họa. Bạn phải ngắt kết nối phân vùng trước khi chạy bất kỳ công cụ sửa chữa nào.

sudo umount /data

Nếu terminal thông báo rằng "target is busy" (mục tiêu đang bận), có khả năng một tiến trình đang mở tệp. Bạn có thể tìm và đóng tiến trình gây ra lỗi bằng fuser:

sudo fuser -mv /data
# Sau khi xác định được, bạn có thể đóng tiến trình bằng PID
sudo kill -9 <PID>

Bước 4: Sửa chữa hệ thống tệp

Nếu phần cứng có vẻ ổn, có lẽ siêu dữ liệu (metadata) chỉ bị xáo trộn. Công cụ fsck (File System Consistency Check) là người bạn tốt nhất của bạn lúc này. Đối với các phân vùng ext4 tiêu chuẩn, hãy sử dụng lệnh sau:

sudo fsck -y /dev/sdX1

Cờ -y giúp tiết kiệm rất nhiều thời gian. Nó tự động trả lời "yes" cho mọi yêu cầu sửa chữa, điều này rất hữu ích khi một ổ đĩa bị hỏng có hàng trăm node bị mồ côi. Lưu ý: Nếu bạn đang sử dụng XFS, hãy sử dụng xfs_repair /dev/sdX1 thay thế, vì fsck không xử lý cấu trúc XFS một cách chính xác.

Bước 5: Xử lý khóa Read-Only

Khi Linux phát hiện sự cố phần cứng, nó thường gắn lại ổ đĩa ở chế độ "Chỉ đọc" (Read-Only) để bảo vệ dữ liệu của bạn khỏi bị hỏng thêm. Sau khi hoàn tất việc sửa chữa, bạn có thể thử buộc nó trở lại trạng thái có thể ghi:

sudo mount -o remount,rw /data

Bước 6: Xác nhận khôi phục

Gắn lại ổ đĩa và xem các lỗi đã được khắc phục chưa. Kiểm tra thư mục lost+found ở gốc của phân vùng. Nếu fsck tìm thấy các đoạn tệp bị ngắt kết nối, nó sẽ cất chúng ở đó.

sudo mount /dev/sdX1 /data
ls -la /data/lost+found

Mẹo phòng ngừa

  • Kiểm tra cáp: Trong khoảng 15% trường hợp, lỗi I/O chỉ là do cáp SATA bị lỏng hoặc bảng mạch sau (backplane) bị bụi. Hãy cắm lại các kết nối trước.
  • Tự động hóa việc giám sát: Kích hoạt smartd để gửi email cho bạn ngay khi ổ đĩa bắt đầu báo cáo các sector xấu.
  • Nguồn điện rất quan trọng: Mất điện đột ngột là nguyên nhân chính gây hỏng hệ thống tệp. Luôn sử dụng UPS (Bộ lưu điện) cho máy chủ.
  • Quy tắc 3-2-1: Lỗi I/O là một lời cảnh báo. Hãy đảm bảo bạn có ba bản sao dữ liệu, trên hai loại phương tiện khác nhau, với một bản sao được lưu trữ bên ngoài (off-site).

Related Error Notes