cp nie można skopiować z błędami „cp: błąd odczytu„ pliku ”: błąd wejścia / wyjścia” i „cp: nie można rozszerzyć„ pliku ”: błąd wejścia / wyjścia


10

Jestem użytkownikiem Oracle Virtualbox na Ubuntu. I kiedyś kopiowałem pliki vdi jako rodzaj kopii zapasowej. Wcześniej robiłem to (kopiowanie pliku vdi, a następnie kopiowanie go z powrotem) wiele razy bez żadnego problemu.

Ale dzisiaj wystąpił ten błąd

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

Poszukałem trochę tego, ale po poradach na temat podobnych problemów nie zrozumiałem niczego niestety. Czy ktoś mógłby zasugerować, jak rozwiązać ten problem?

Wynik z dmesgjest (i nic z tego nie rozumiem)

[ 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

Każda pomoc jest mile widziana, z góry dziękuję


Może dysk, na którym znajduje się plik vdi, jeśli jest pełny? Spróbujdf -h
Volker Siegel,

Och, czekaj - robisz to wszystko w wirtualnej skrzynce, czy na zewnątrz?
Volker Siegel,

@VolkerSiegel Robię to na zewnątrz, w systemie hosta. Partycja, na której przechowywana jest kopia i na której próbuję zrobić kopię, ma 280 GB dostępnej pamięci, więc jest to więcej niż wystarczające, ponieważ powiedziałem, że tę operację wykonałem już wiele razy. Przypuszczam, że może to być błąd dysku twardego
użytkownik907860,

Jaki jest system plików na tej partycji / dev / sda? ( mount | grep /dev/sda)
Volker Siegel,

@ VolkerSiegel dane wyjściowe to/dev/sda5 on /home type ext4 (rw)
użytkownik907860

Odpowiedzi:


7

Jeśli nie jest to „dysk” wewnątrz wirtualnej skrzynki, ale prawdziwy dysk fizyczny, na którym przechowywane są obrazy VM, wygląda to dość źle.

Wystąpiły błędy odczytu na / dev / sda.
Istnieje automatyczna obsługa polegająca na oznaczeniu bloku dysku na zawsze jako zły blok i zamiast tego użyj innego.
Aby to zadziałało, dysk twardy musi odczytywać dane jeszcze raz , być może próbując kilkaset odczytów.
Ale dysk zrezygnował z tego:

„Dodaj. Sense: nieodkryty błąd odczytu - automatyczne przeniesienie nie powiodło się”

Na dysku są naprawdę złe błędy - po prostu nie jest jeszcze jasne, czy są one tylko w jednej lokalizacji, czy się rozprzestrzeniają i czy z czasem rosną.

Dysk twardy może wkrótce ulec awarii,
np. „Just now” .
Lub w przyszłym tygodniu, albo wcale.

Jeśli e2fscktest wypadnie dobrze, nadal nie można go użyć do niczego ważnego.

Jak tylko e2fsckpotwierdzi, że wystąpiły średnie błędy, najlepiej po prostu je wymienić.

W przeciwnym razie wykonaj kopie zapasowe tak szybko, jak to możliwe,
uruchom płytę CD na żywo (lub znajdź sposób na odmontowanie / niezamontowanie/home )
i sprawdź , czy nie występują uszkodzone bloki, np.

sudo e2fsck -c -v /dev/sdXN

Weź pod uwagę, że na większym mechanicznym dysku twardym sprawdzenie uszkodzonych bloków może zająć dużo czasu , między godzinami, a może dniem lub dwoma. Dzieje się tak po części dlatego, że program musi sprawdzać każdy blok dysku osobno, a także rozwiązywać osobno problemy. Ale także, jeśli dysk odczytuje błędy podczas odczytu, jest wiele prób na wielu poziomach, zanim e2fscknawet dowie się, że jest problem. Dla każdego bloku dysku.

Właściwe może być po prostu uruchomienie e2fsckw trybie automatycznej naprawy i pozostawienie komputera na chwilę w spokoju:

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

Zobacz ubuntuforums: Random zamrożenie i "odzyskanej Błąd odczytu" w / var / log / messages dla szczegółów.


Nie rozumiem, co masz na myśli przez „prawdziwy dysk fizyczny”. To nie jest prawdziwy dysk, to plik, który jest wirtualnym napędem
Virtualbox

Ok, kilka pytań do potwierdzenia, mogę się mylić: plik win_7.vdijest obrazem vm, prawda? I to jest poza vms, prawda? Mam na myśli, że plik win_7.vdiznajduje się na prawdziwym dysku - prawda? Dane dmesgwyjściowe pochodzą spoza maszyny wirtualnej, prawda? W takim przypadku błędy w dmesgdzienniku znajdują się na prawdziwym dysku twardym / dev / sda.
Volker Siegel,

tak, „dobrze” na wszystkie pytania
użytkownik907860,

Dobrze - ale źle dla dysku ... czy możesz go po prostu wymienić? Może się to bardzo szybko nie powieść, jak „właśnie teraz”. Lub w przyszłym tygodniu, albo wcale. Jeśli e2fscktest wypadnie dobrze, nadal nie można go użyć do niczego ważnego.
Volker Siegel,

ok, dziękuję, teraz jestem w pracy, więc sprawdzę dziś odpowiedź, jak najszybciej
user907860

6

Dla mnie ten błąd występuje podczas próby skopiowania obrazów dysku o łącznej wielkości 128 GB. cppróbował załadować całość do pamięci, aby przepisać ją z powrotem, a to oczywiście nie zadziała, więc trzeba to zrobić w kawałkach. Najlepszym sposobem, w jaki znalazłem fragment pliku, jest wymuszenie go przez ssh.

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

Musisz użyć user@localhost; pominięcie go przywróci cpzachowanie podobne do tego .


2

Sektory dysku twardego uległy uszkodzeniu. DRDY ERR - Błąd sprawdzania gotowości urządzenia. UNC - nie można naprawić.

Z różnych przyczyn, takich jak nagłe wyłączenie podczas ekstensywnego zapisu, wysoka temperatura, wykonywane operacje zapisu w trybie odczytu i jakość dysku twardego odgrywa w tym przypadku główną rolę.

Gdy sektor zostanie uszkodzony i jeśli jądro spróbuje uzyskać dostęp do tych sektorów, pojawi się ten błąd.

Możesz użyć podsiodełek, aby tymczasowo naprawić ten błąd. Ale nie będzie naprawiać tego problemu na zawsze, może wystąpić ponownie kilka razy później.

Jeśli masz szczęście, to nie powtórzy się przez kilka dni.

Lepiej wykonaj kopię zapasową danych na nowym dysku twardym i wymień dysk twardy.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.