Không thể đọc thư mục Số (tên).


1

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.xmlSystem.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?



Cảm ơn vì lời khuyên này. Vâng tôi đã thử 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.
TallFurryMan

Một điều nữa có thể được thử là 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.
TallFurryMan

Câu trả lời:


1

Một câu trả lời tạm thời cho câu hỏi của riêng tôi. Tôi đã sử dụng khóa USB trực tiếp với RescueCD và gắn phân vùng bằng ntfs-3g:

% ntfs-3g /dev/sda1 /mnt/windows
% rm /mnt/windows/Program\ Files\ \(x86\)/Reference\ Assemblies/Microsoft/Framework/.NETPortable/v4.0/S$'\177'steõ.Neº.xml

Hai tệp được liệt kê như thế này và đã bị xóa mà không có vấn đề rõ ràng, nhiệm vụ không thể thực hiện được trong Windows:

-rwxrwxrwx 2 root root    0 Dec  3  2018 S?steõ.Neº.xml
-rwxrwxrwx 2 root root  161 Jul  2  1983 S9stem.Nef.Requests.xml

Sau đó, tôi đã sử dụng rất cơ bản find /mnt/windows -iregex '.*[^a-zA-Z0-9_.() {}#]+', cho phép tôi tìm một tệp lạ khác, nằm trong khu vực nhạy cảm hơn một chút, nhưng có kích thước null (tên thông thường là comctl32.dll, thư viện Điều khiển chung):

-rwxrwxrwx 1 root root 0 Sep  6  2021 ./windows/winsxs/x86_microsoft.windows.common-controls_6595b64144ccf1df_5.82.7601.17514_none_ec83dffa859149af/cñmcte32.dll

Tôi đang đăng bài này như một tiến bộ trong nỗ lực dọn dẹp hệ thống tập tin. Tôi chưa bao giờ sử dụng ntfs-3g trước đây và điều này khá dễ chịu. Cho dù nó ổn định, thời gian sẽ trả lời :)

Cập nhật: có một tập tin "bị hỏng" cuối cùng trong c:\windows\ehome. Thư mục này là phần còn lại từ Media Center, được gỡ cài đặt bằng bản nâng cấp lên Windows 10. Đây là yếu tố cuối cùng ngăn cản việc nâng cấp Windows 10 thành công tại FIRST_PASS / MIGRATE_DATA. Như tôi nhận ra sau đó, đây là một thất bại khá đơn giản trong khi sao lưu thư mục Windows lên đến Windows.old. Tôi đã thấy mã lỗi rõ ràng hơn ...

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.