Файловая система сообщает об ошибке записи в определенный сектор даже после того, как раздел перемещен дальше

Я столкнулся со следующей проблемой: btrfs сообщает об ошибках записи для сектора 128 на устройстве / dev / sdd :

sd 6:0:0:0: [sdd] Invalid command failure
sd 6:0:0:0: [sdd] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
sd 6:0:0:0: [sdd] Sense Key : Illegal Request [current] 
sd 6:0:0:0: [sdd] Add. Sense: Invalid field in cdb
sd 6:0:0:0: [sdd] CDB: Write(10): 2a 08 00 00 00 80 00 00 08 00
end_request: critical target error, dev sdd, sector 128
BTRFS: lost page write due to I/O error on /dev/sdd
BTRFS: bdev /dev/sdd errs: wr 913238, rd 1, flush 150, corrupt 0, gen 0

Я запустил badblocks / dev / sdd , и он не вернул плохих блоков. В любом случае, я решил остаться в безопасности (в некотором смысле), создал раздел, который начинается с сектора 2048 (по умолчанию):

# fdisk -l /dev/sdd
Device     Boot Start       End   Sectors   Size Id Type
/dev/sdd1        2048 234441647 234439600 111.8G 83 Linux

, и повторно добавил диск в том btrfs. Мгновенно я снова получил ту же ошибку записи (обратите внимание, что 2176 = 2048 + 128):

sd 13:0:0:0: [sdd] Invalid command failure
sd 13:0:0:0: [sdd] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
sd 13:0:0:0: [sdd] Sense Key : Illegal Request [current] 
sd 13:0:0:0: [sdd] Add. Sense: Invalid field in cdb
sd 13:0:0:0: [sdd] CDB: Write(10): 2a 08 00 00 08 80 00 00 08 00
end_request: critical target error, dev sdd, sector 2176
BTRFS: lost page write due to I/O error on /dev/sdd1
BTRFS: bdev /dev/sdd1 errs: wr 12253, rd 0, flush 0, corrupt 0, gen 0

Может быть, оба сектора 128 и 2176 плохие? Итак, я повторно запустил badblocks / dev / sdd (опять же, он не сообщил об отсутствии плохих блоков), отодвинул раздел еще дальше:

# fdisk -l /dev/sdd
Device     Boot Start       End   Sectors   Size Id Type
/dev/sdd1        4096 234441647 234437552 111.8G 83 Linux

и заново создал том btrfs. Снова «плохой блок» в том же волшебном месте (4224 = 4096 + 128):

sd 6:0:0:0: [sdd] Invalid command failure
sd 6:0:0:0: [sdd] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
sd 6:0:0:0: [sdd] Sense Key : Illegal Request [current] 
sd 6:0:0:0: [sdd] Add. Sense: Invalid field in cdb
sd 6:0:0:0: [sdd] CDB: Write(10): 2a 08 00 00 10 80 00 00 08 00
end_request: critical target error, dev sdd, sector 4224
BTRFS: lost page write due to I/O error on /dev/sdd1
BTRFS: bdev /dev/sdd1 errs: wr 124433, rd 0, flush 0, corrupt 0, gen 0

Я не верю в совпадения, а именно, что ни один другой сектор до magic 128 и после 128 не терпит неудачу, кроме этого конкретного проблематично.

Что может быть? Для меня это похоже на ошибку в ядре.

Дополнительная информация:

dmesg:

sd 4:0:0:0: [sdb] Attached SCSI disk
scsi 6:0:0:0: Direct-Access     JMicron  Generic          0116 PQ: 0 ANSI: 6
sd 6:0:0:0: Attached scsi generic sg5 type 0
sd 6:0:0:0: [sdd] 234441648 512-byte logical blocks: (120 GB/111 GiB)
sd 6:0:0:0: [sdd] Write Protect is off
sd 6:0:0:0: [sdd] Mode Sense: 47 00 10 08
sd 6:0:0:0: [sdd] Write cache: enabled, read cache: enabled, supports DPO and FUA
sd 6:0:0:0: [sdd] Attached SCSI disk

0
12.11.2015, 01:49
0 ответов

Теги

Похожие вопросы