Tại thời điểm này không có giải pháp cho vấn đề này.
Thông thường sau một số vấn đề với bài đọc hoặc bài viết để chặn thiết bị, kernel quyết định chuyển cờ cho WHOLE DEVICE dưới dạng chỉ đọc. Sau này, bất kỳ bài viết nào tới bất kỳ phân vùng / hệ thống tập tin nào trên thiết bị này đều khiến nó chuyển thành trạng thái chỉ đọc cùng với trạng thái thiết bị, bởi vì bất kỳ bài viết nào đều không thể thực hiện được.
Ví dụ từ dmesg, đây là mô phỏng cho linux linux trên windows8 bằng VirtualBox khi defrag lấy hình ảnh thiết bị của khách:
[11903.002030] ata3.00: exception Emask 0x0 SAct 0x1 SErr 0x0 action 0x6 frozen
[11903.003179] ata3.00: failed command: READ FPDMA QUEUED
[11903.003364] ata3.00: cmd 60/08:00:a8:77:57/00:00:00:00:00/40 tag 0 ncq 4096 in
[11903.003385] res 40/00:01:00:00:00/00:00:00:00:00/00 Emask 0x4 (timeout)
[11903.004074] ata3.00: status: { DRDY }
[11903.004248] ata3: hard resetting link
[11903.325703] ata3: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
[11903.327097] ata3.00: configured for UDMA/133
[11903.328025] ata3.00: device reported invalid CHS sector 0
[11903.329664] ata3: EH complete
[11941.000472] ata3.00: exception Emask 0x0 SAct 0x1 SErr 0x0 action 0x6 frozen
[11941.000769] ata3.00: failed command: READ FPDMA QUEUED
[11941.000952] ata3.00: cmd 60/08:00:c8:77:57/00:00:00:00:00/40 tag 0 ncq 4096 in
[11941.000961] res 40/00:01:00:00:00/00:00:00:00:00/00 Emask 0x4 (timeout)
[11941.001353] ata3.00: status: { DRDY }
[11941.001504] ata3: hard resetting link
[11941.320297] ata3: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
[11941.321252] ata3.00: configured for UDMA/133
[11941.321379] ata3.00: device reported invalid CHS sector 0
[11941.321553] ata3: EH complete
[11980.001746] ata3.00: exception Emask 0x0 SAct 0x11fff SErr 0x0 action 0x6 frozen
[11980.002070] ata3.00: failed command: WRITE FPDMA QUEUED
[11980.002255] ata3.00: cmd 61/18:00:28:23:59/00:00:00:00:00/40 tag 0 ncq 12288 out
[11980.002265] res 40/00:01:00:00:00/00:00:00:00:00/00 Emask 0x4 (timeout)
-------------------
There are many other errors, like "lost write page", "Journal has aborted", "Buffer I/O error", "hard resetting link" and many others.
Sau này, kể lại nguyên nhân:
mount / -o remount,rw
mount: cannot remount block device /dev/sda1 read-write, is write-protected
bởi vì thiết bị WHOLE sda giữ rootfs sda1 là S READN SÀNG.
Theo kinh nghiệm của tôi, điều này xảy ra trong các tình huống:
- HDD thực sự bị hư. Vấn đề viết bị trả lại phụ thuộc vào điều kiện ổ cứng
- Máy chủ bị quá tải, sau đó các bản ghi HDD dành cho khách ảo của Linux đã hết thời gian
- Cáp FC hoặc thiết bị SAN (đĩa mảng trên Kênh sợi quang) bị quá tải
- Mất kết nối tạm thời qua FC hoặc FCoE. Có thể mất / hết thời gian gói FC
Ở tình huống này, thiết bị thực sự là đọc-ghi, nhưng nhân linux đánh dấu thiết bị này bên trong là chỉ đọc và được sử dụng làm chỉ đọc. Đây là chức năng kernel được tạo ra để ngăn ngừa thiệt hại, nhưng nó chỉ có thể sử dụng được ở 1. điểm.
Câu hỏi là. Làm thế nào để tự nói với kernel, thiết bị khối hdd hoạt động bình thường?
Mặc dù vậy, kernel phục vụ thiết bị ở dạng chỉ đọc, như 'CD-ROM' và không có lệnh nào khác có cơ hội hoạt động chính xác, bao gồm mount / remount -o read-write, fsck và các thiết bị khác.
Máy chủ không thể sử dụng, thực sự đủ điều kiện là thư rác từ những người muốn giúp đỡ, nhưng không hiểu về bản chất vấn đề:
- Thử đọc lại dưới dạng đọc-ghi (không thể, thiết bị là RO)
- fsck này (những gì cho? thiết bị là RO, không thể sửa chữa)
- 'Tôi không biết' (đầu tiên có ý nghĩa, nhưng không sử dụng được)
- 'Thay thế thiết bị của bạn' * (thường thì sự cố là vấn đề khác)
Có ai có bất kỳ công thức cho câu hỏi trên? Chuyển cờ cho thiết bị khối có thể ghi có thể hoàn nguyên thiết bị từ trạng thái chỉ đọc sang trạng thái đọc-ghi? Lúc này dường như không ai biết làm thế nào.
Đó là một số cách giải quyết, nhưng thường có thể bán được hoặc không sử dụng được:
- Hủy bỏ mô-đun hỗ trợ truy cập vào hdd hoặc mảng lưu trữ được chỉ định. Thật không may, thiết bị thường bị hỏng giữ rootfs hoặc trình điều khiển giữ cả thiết bị bị hỏng và thiết bị giữ rootfs
- Xóa quyền truy cập FC vào thiết bị và tham gia lại thiết bị này (fctools), không phải mọi cách có thể, không phải mọi cách đều hoạt động.
- Khởi động lại máy WHOLE. Thông thường chỉ có điều này là có thể và chúng ta luôn luôn bị ép buộc.
Tại các điểm 1. và 2. chúng tôi nói với kernel rằng chúng tôi hoàn toàn ngắt kết nối thiết bị và kết nối lại với thiết bị. Kernel nhận ra điều này khi tham gia thiết bị hoạt động đúng mới. Chúng ta có thể mô phỏng điều này bằng thiết bị USB và loại bỏ nguồn điện trong giây lát. Điểm 3. là cơ hội cuối cùng và thường hoạt động. Nhưng tại sao chúng ta nên khởi động lại tất cả? Thật không may tại tất cả các điểm chúng tôi đã mất tất cả các cập nhật tạp chí và bộ đệm bẩn.
Lưu ý, trong cùng một tình huống tôi không gặp vấn đề gì với Windows (máy tính để bàn và máy chủ).