Tôi đang cố cập nhật cài đặt Windows 7 lên Windows 10, nhưng quy trình không thành công liên tục ở bước MIGRATE_DATA.
Điều tra những gì có thể ngăn chặn việc di chuyển, tôi tìm thấy hai tệp bị hỏng trên ổ đĩa khởi động (ổ SSD 100 GB ở định dạng NTFS).
Các tệp bị hỏng là vô hình dưới trình thám hiểm, nhưng được đặt trong khi tìm kiếm các thư mục lớn bằng cách sử dụng du
dưới Cygwin:
du: cannot read directory './Program Files (x86)/Reference Assemblies/Microsoft/Framework/.NETPortable/v4.0/S\177ste\344.Ne\247.xml': File exists du: cannot read directory './Program Files (x86)/Reference Assemblies/Microsoft/Framework/.NETPortable/v4.6/Profile/Profile84/S9stem.Nef.Requests.xml': File exists
Cả hai tập tin hoạt động như nhau trong nỗ lực của tôi. Các tập tin đầu tiên được liệt kê bởi ls -l
như thế này:
$ ls -l /cygdrive/c/Program\ Files\ \(x86\)/Reference\ Assemblies/Microsoft/Framework/.NETPortable/v4.0 total 6892 (...) -rwxrwx---+ 1 SYSTEM SYSTEM 362197 Mar 12 2014 System.xml drwxr-x--- 1 Unknown+User Unknown+Group 0 Dec 3 2018 S?ste?.Ne?.xml -rwxrwx---+ 1 SYSTEM SYSTEM 235088 Mar 14 2014 mscorlib.dll(...)
Trong khi hoàn thành sẽ không hoạt động với tên của nó, gõ nó với các ký tự unicode trong rm
lệnh không có hiệu lực, và chuẩn bị strace
trên lệnh nói:
46 108762 [main] rm 8608 path_conv::check: this->path(C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETPortable\v4.0\S177ste344.Ne247.xml), has_acls(1) 42 108804 [main] rm 8608 unlink: unlinking a nonexistent file 45 108849 [main] rm 8608 __set_errno: int unlink(const char*):1054 setting errno 2 42 108891 [main] rm 8608 unlink: -1 = unlink(/cygdrive/c/Program Files (x86)/Reference Assemblies/Microsoft/Framework/.NETPortable/v4.0/S177ste344.Ne247.xml), errno 2
Tôi nói "tệp" vì từ tên và vị trí của chúng, các phần tử này thực sự là tệp chứ không phải thư mục như ACL của chúng chỉ ra ( System.Net.xml
và System.Net.Requests.xml
). Rõ ràng đã có một tham nhũng tại một số điểm.
Chỉ để cho niềm vui của nó, đây là những gì nâng cao cmd
nói về tập tin (bằng tiếng Pháp nhưng bạn có ý tưởng, ngày và số lạ, cộng với việc nó bị ẩn):
C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETPortable\v4.0>dir /ah Le volume dans le lecteur C s’appelle BootSSD Le numéro de série du volume est 0EA2-18D0 Répertoire de C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETPortable\v4.0 13/05/30600 04:58 Ssteõ.Neº.xml 0 fichier(s) 0 octets 1 Rép(s) 30 887 821 312 octets libres
Vấn đề với tham nhũng này là nó ổn định: sử dụng chkdsk /f c:
không có tác dụng đối với những tập tin đó
Tôi chưa kiểm tra xem nó có phiên bản trước của các tệp này không, nhưng tôi nghi ngờ mình sẽ không thể thay thế chúng, và ngay cả khi tôi có thể, các tệp đó sẽ không bị xóa trong quá trình.
Cơ hội tốt nhất của tôi dường như tìm cách hoàn nguyên bản ghi tệp thành tệp thực tế thay vì thư mục, nhưng tôi không biết làm thế nào để làm điều đó.
Có ý kiến gì không?
sfc /scannow
như một phần của cuộc điều tra trước đây của tôi. Mặc dù đáng chú ý, nó chỉ ra rằng một số yếu tố không thể được khôi phục đúng cách trong quá khứ, hiện tại nó không tìm thấy vi phạm tính toàn vẹn. Vì vậy, đây chắc chắn là một ý tưởng tốt để chạy ngay bây giờ. Nhưng nó không chạm vào các tập tin bị hỏng.
dism /online /cleanup-image /scanhealth
. Điều này sẽ xác định vị trí và thay thế các mô-đun Windows bị hỏng, độc lập với hệ thống.
sfc
? Sử dụng công cụ Trình kiểm tra tệp hệ thống để sửa chữa các tệp hệ thống bị thiếu hoặc bị hỏng