cp не удается скопировать с ошибками «cp: ошибка чтения« file »: ошибка ввода / вывода» и «cp: не удалось расширить« file »: ошибка ввода / вывода

10

Я пользователь Oracle Virtualbox на Ubuntu. И я использовал для копирования VDI-файлов в качестве резервной копии. Ранее я делал это (копирование файла VDI, а затем копирование его обратно) много раз без каких-либо проблем.

Но сегодня я испытал эту ошибку

VirtualBox VMs/win_7$ cp ../../Bkps/win_7.vdi .
cp: error reading ‘../../Bkps/win_7.vdi’: Input/output error
cp: failed to extend ‘./win_7.vdi’: Input/output error

Я немного погуглил по этому поводу, но из советов по подобным проблемам я ничего не дал, к сожалению. Кто-нибудь может подсказать, как это решить, пожалуйста?

Выход из dmesgесть, (а я из этого ничего не понимаю)

[ 2347.982876] ata1.00: exception Emask 0x0 SAct 0x1900406f SErr 0x0 action 0x0
[ 2347.982887] ata1.00: irq_stat 0x40000008
[ 2347.982895] ata1.00: failed command: READ FPDMA QUEUED
[ 2347.982908] ata1.00: cmd 60/08:70:d0:da:f4/00:00:2e:00:00/40 tag 14 ncq 4096 in
[ 2347.982908]          res 41/40:08:d0:da:f4/00:00:2e:00:00/00 Emask 0x409 (media error) <F>
[ 2347.982915] ata1.00: status: { DRDY ERR }
[ 2347.982919] ata1.00: error: { UNC }
[ 2348.395657] ata1.00: configured for UDMA/133
[ 2348.395727] sd 0:0:0:0: [sda] Unhandled sense code
[ 2348.395733] sd 0:0:0:0: [sda]  
[ 2348.395737] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
[ 2348.395741] sd 0:0:0:0: [sda]  
[ 2348.395745] Sense Key : Medium Error [current] [descriptor]
[ 2348.395752] Descriptor sense data with sense descriptors (in hex):
[ 2348.395764]         72 03 11 04 00 00 00 0c 00 0a 80 00 00 00 00 00 
[ 2348.395770]         2e f4 da d0 
[ 2348.395772] sd 0:0:0:0: [sda]  
[ 2348.395774] Add. Sense: Unrecovered read error - auto reallocate failed
[ 2348.395775] sd 0:0:0:0: [sda] CDB: 
[ 2348.395776] Read(10): 28 00 2e f4 da d0 00 00 08 00
[ 2348.395781] end_request: I/O error, dev sda, sector 787798736
[ 2348.395792] ecryptfs_decrypt_page: Error attempting to read lower page; rc = [-5]
[ 2348.395795] ata1: EH complete
[ 2348.395797] ecryptfs_readpage: Error decrypting page; rc = [-5]
[ 2351.264987] ata1.00: exception Emask 0x0 SAct 0x7f80400 SErr 0x0 action 0x0
[ 2351.264998] ata1.00: irq_stat 0x40000008
[ 2351.265005] ata1.00: failed command: READ FPDMA QUEUED
[ 2351.265019] ata1.00: cmd 60/08:50:d0:da:f4/00:00:2e:00:00/40 tag 10 ncq 4096 in
[ 2351.265019]          res 41/40:08:d0:da:f4/00:00:2e:00:00/00 Emask 0x409 (media error) <F>
[ 2351.265025] ata1.00: status: { DRDY ERR }
[ 2351.265029] ata1.00: error: { UNC }
[ 2351.403371] ata1.00: configured for UDMA/133
[ 2351.403425] sd 0:0:0:0: [sda] Unhandled sense code
[ 2351.403426] sd 0:0:0:0: [sda]  
[ 2351.403428] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
[ 2351.403429] sd 0:0:0:0: [sda]  
[ 2351.403430] Sense Key : Medium Error [current] [descriptor]
[ 2351.403433] Descriptor sense data with sense descriptors (in hex):
[ 2351.403434]         72 03 11 04 00 00 00 0c 00 0a 80 00 00 00 00 00 
[ 2351.403439]         2e f4 da d0 
[ 2351.403442] sd 0:0:0:0: [sda]  
[ 2351.403444] Add. Sense: Unrecovered read error - auto reallocate failed
[ 2351.403445] sd 0:0:0:0: [sda] CDB: 
[ 2351.403446] Read(10): 28 00 2e f4 da d0 00 00 08 00
[ 2351.403451] end_request: I/O error, dev sda, sector 787798736
[ 2351.403463] ecryptfs_decrypt_page: Error attempting to read lower page; rc = [-5]
[ 2351.403466] ecryptfs_readpage: Error decrypting page; rc = [-5]
[ 2351.403470] ata1: EH complete

Любая помощь с благодарностью, заранее спасибо

user907860
источник
Может быть, диск с файлом vdi, если он заполнен? Попробуйтеdf -h
Volker Siegel
Ой, подождите - вы делаете все это внутри виртуальной коробки или снаружи?
Фолькер Сигел
@VolkerSiegel Я делаю это снаружи, на моей хост-системе. Раздел, где хранится копия и где я пытаюсь сделать копию, имеет доступное 280 ГБ, так что этого более чем достаточно, как я уже говорил, я проделывал эту операцию уже много раз. Я полагаю, что это может быть ошибка жесткого диска
user907860
Какова файловая система в этом разделе / ​​dev / sda? ( mount | grep /dev/sda)
Фолькер Сигел
@VolkerSiegel вывод/dev/sda5 on /home type ext4 (rw)
user907860

Ответы:

7

Если это не «диск» внутри виртуальной коробки, а реальный физический диск, на котором хранятся образы vm, это выглядит довольно плохо.

Были ошибки чтения, в / dev / sda.
Существует автоматическая обработка, помечающая дисковый блок навсегда как плохой , и вместо этого используйте другой.
Чтобы это работало, жесткий диск должен прочитать данные еще один раз , может быть, попытаться пару сотен операций чтения.
Но диск сдался на этом:

Msgstr "Добавить. Смысл: Невосстановленная ошибка чтения - сбой автоматического перераспределения"

На диске действительно плохие ошибки - просто пока не ясно, находятся ли они только в одном месте или распространяются и увеличиваются ли они со временем.

Жесткий диск может выйти из строя очень скоро,
как "только сейчас" .
Или на следующей неделе, или не совсем.

Если на e2fsckтесте все в порядке, вы все равно не сможете использовать его для чего-то важного.

Как только вы e2fsckподтвердите наличие средних ошибок, лучше всего просто заменить их.

В противном случае, сделайте резервные копии как можно скорее,
загрузите live CD или около того (или найдите способ размонтировать / не смонтировать/home )
и проверьте наличие плохих блоков, например

sudo e2fsck -c -v /dev/sdXN

Примите во внимание, что на большом механическом жестком диске проверка на наличие поврежденных блоков может занять много времени , между часами и, возможно, днем ​​или двумя. Это отчасти потому, что программе необходимо проверять каждый блок диска отдельно, а также решать проблемы отдельно. Но также, если диск выдает ошибки при чтении, есть много попыток на нескольких уровнях, прежде чем e2fsckдаже узнает, что есть проблема. Для каждого блока диска.

Может быть правильным будет просто запустить e2fsckв режиме авторемонта и на некоторое время оставить компьютер в покое:

sudo e2fsck -p -c -v /dev/sdXN

Смотрите ubuntuforums: Случайное замораживание и "Неизлеченная ошибка чтения" в / var / log / messages для деталей.

Volker Siegel
источник
Я не понял, что вы имели в виду под "настоящим физическим диском". Это не настоящий диск, это файл виртуального диска
Virtualbox
Хорошо, некоторые вопросы, чтобы подтвердить, я могу ошибаться: файл win_7.vdiявляется образом VM, верно? И это вне любого vms, верно? Я имею в виду файл win_7.vdiна реальном диске - верно? dmesgВыход из вне виртуальной машины, не так ли? В этом случае ошибки в dmesgжурнале находятся на реальном жестком диске / dev / sda.
Фолькер Сигел
да, "правильно" на все ваши вопросы
user907860
Хорошо - но плохо для диска ... вы можете просто заменить его? Это может провалиться очень скоро, как «только сейчас». Или на следующей неделе, или не совсем. Если на e2fsckтесте все в порядке, вы все равно не сможете использовать его для чего-то важного.
Фолькер Сигел
хорошо, спасибо, теперь я на работе, поэтому я проверю ваш ответ сегодня, как можно скорее
user907860
6

Для меня эта ошибка возникла при попытке скопировать образы дисков размером около 128 ГБ. cpпытался загрузить все это в память, чтобы переписать его обратно, и это, очевидно, не сработает, так что это должно быть сделано кусками. Лучший способ, которым я нашел для чанкования файла, - это принудительно запустить его через ssh.

scp user@localhost:/path/to/source /path/to/dest

Вы должны использовать user@localhost; опуская его, вы вернетесь к cpподобному поведению.

jwallace
источник
2

Секторы вашего жесткого диска повреждены. DRDY ERR - ошибка проверки готовности устройства. UNC - невозможно исправить.

В силу различных причин, таких как внезапное отключение во время интенсивной записи, выполняемые операции записи при высокой температуре, чтение и качество жесткого диска, в этом случае важную роль играет.

Если сектор поврежден, и если ядро ​​попытается получить доступ к этим секторам, вы получите эту ошибку.

Вы можете использовать seatools, чтобы временно исправить эту ошибку. Но не будет исправлять эту проблему навсегда, это может повториться через несколько раз.

Если вам повезет, то это не повторится в течение нескольких дней.

Лучше сделать резервную копию данных на новый жесткий диск и заменить жесткий диск.

user314563
источник