Chữ ký đĩa là gì? Sửa lỗi xung đột chữ ký đĩa

Một chữ ký đĩa (disk signature) là một số duy nhất, xác định của một ổ đĩa cứng hoặc thiết bị lưu trữ dữ liệu, được lưu trữ như là một phần của Master Boot Record (MBR)Chữ ký đĩa được sử dụng bởi hệ điều hành, giúp hệ điều hành phân biệt giữa các thiết bị lưu trữ trên máy tính của bạn.

Bạn có thể thấy rằng cụm từ chữ ký đĩa đôi khi còn được sử dụng dưới nhiều cách gọi khác nữa, ví dụ như nhận dạng đĩa (disk identity), mã định danh duy nhất (unique identifier), hay chữ ký HDD (HDD signature).

Cách tìm thấy chữ ký đĩa của thiết bị

Trong Windows, có một danh sách chứa tất cả các chữ ký đĩa đã từng được ghi lại trên một máy tính cá nhân kể từ khi cài đặt Windows, được lưu trữ trong hive HKEY_LOCAL_MACHINE trong Windows Registry, tại vị trí cụ thể như sau:

HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices

Chữ ký đĩa bao gồm 8 chữ số alpha từ 0 đến 9 và các kí tự từ A đến F. Sau đây là ví dụ về giá trị thập lục phân của đĩa được tìm thấy ở vị trí đăng ký ở trên, với 4 byte đầu tiên (8 chữ số) chính là chữ ký đĩa:

44 4d 49 4f 3a 49 44 3a b8 58 b2 a2 ca 03 b4 4c b5 1d a0 22 53 a7 31 f5

Nguyên nhân dẫn tới xung đột chữ ký đĩa

Tuy rằng hiếm khi xảy ra nhưng hiện tượng xung đột chữ ký đĩa trong Windows không phải là không có. Xung đột chữ ký đĩa xảy ra khi hai thiết bị lưu trữ có cùng một chữ ký đĩa giống nhau.

Có lẽ lý do phổ biến nhất mà bạn sẽ gặp phải trong một vụ xung đột chữ ký đĩa là khi một ổ đĩa được nhân bản theo từng sector, tạo thành những bản sao giống hệt nhau và sau đó được gắn kết hoặc sử dụng cùng với bản gốc.

Một kịch bản tương tự có thể xảy ra khi phần mềm sao lưu hoặc các công cụ ảo hóa tạo một ổ cứng ảo từ một ổ cứng vật lý. Việc sử dụng cả hai ổ cứng này cùng một lúc có thể dẫn đến lỗi xung đột chữ ký đĩa vì đơn giản chúng là các bản sao giống hệt nhau.

Xác định lỗi chữ ký đĩa trong Windows

Trong các phiên bản cũ của Windows, như Windows Vista và Windows XP, khi chữ ký của các đĩa được xác định là xung đột chữ ký đó sẽ tự động thay đổi khi được kết nối, vì Windows sẽ không cho phép hai đĩa hoạt động cùng một lúc nếu chúng có chữ ký đĩa giống hệt nhau.

Tương tự, Windows cũng sẽ không chấp nhận hai chữ ký đĩa giống nhau trong Windows 10, Windows 8Windows 7. Tuy nhiên, trong các phiên bản Windows này, ổ đĩa thứ hai (ổ đĩa tạo ra xung đột chữ ký) sẽ được để ở chế độ ngoại tuyến và sẽ không được gắn kết để sử dụng cho đến khi xung đột được giải quyết.

Lỗi xung đột chữ ký đĩa trong các phiên bản Windows mới hơn này có thể xuất hiện dưới dạng một trong những thông báo như sau:

“This disk is offline because it has a signature collision with another disk that is online"

​"This disk is offline because it has a signature collision".

"The boot selection failed because a required device is inaccessible"

Cách sửa lỗi chữ ký đĩa trong Windows

Việc sửa lỗi xung đột chữ ký đĩa đối với các ổ cứng chỉ lưu trữ dữ liệu và không có hệ điều hành Windows được cài đặt trên đó (ví dụ như ổ đĩa sao lưu) rất dễ dàng. Chúng ta có thể chuyển ổ đĩa cứng trở lại trạng thái trực tuyến từ trong Disk Management, cho phép chữ ký đĩa mới được tạo ra.

Nếu ổ đĩa cứng có xung đột chữ ký đĩa là ổ đang được sử dụng để chạy Windows thì việc sửa lỗi có thể sẽ khó khăn hơn một chút.

Cần phải nhắc lại là Windows yêu cầu chữ ký đĩa là duy nhất, vì vậy khi bạn đính kèm một đĩa có chữ ký giống với một chữ ký đã được đính kèm trên một đĩa khác đang chạy, Windows sẽ giữ đĩa ở chế độ “ngoại tuyến” và không đọc bảng phân vùng hoặc gắn kết ổ đĩa của nó. Ảnh chụp màn hình này cho thấy cách tiện ích quản trị Windows Disk Management xử lý một đĩa ngoại tuyến được tạo ra.

Windows Disk Management

Nếu bạn nhấp chuột phải vào đĩa, tiện ích sẽ cung cấp lệnh "Online". Lệnh này sẽ ra lệnh cho Windows phân tích bảng phân vùng của đĩa và gắn kết ổ đĩa của nó.

Lệnh "Online

Khi bạn chọn tùy chọn menu Online, Windows tạo chữ ký đĩa ngẫu nhiên mới và gán nó vào đĩa bằng cách ghi nó vào MBR mà không có bất kì cảnh báo nào. Sau đó nó sẽ có thể xử lý MBR và gắn kết các ổ đĩa hiện tại, nhưng khi Windows cập nhật chữ ký đĩa, các mục BCD trở nên đơn độc, được liên kết với chữ ký đĩa trước đó, chứ không phải chữ ký mới. Boot loader sẽ không thể định vị được đĩa được chỉ định và khởi động các tệp, báo cáo lỗi như sau:

Báo cáo lỗi

Khôi phục một chữ ký đĩa

Một cách để sửa lỗi xung đột chữ ký đĩa là xác định chữ ký đĩa mới mà Windows gán cho đĩa, nạp BCD hive của đĩa và tự chỉnh sửa tất cả giá trị registry lưu trữ chữ ký đĩa cũ. Tuy nhiên, cách này khá mất thời gian và dễ bị lỗi,. Trong một số trường hợp, bạn có thể sử dụng lệnh Bcdedit để chỉ định các phần tử vào chữ ký đĩa mới, nhưng phương thức đó không hoạt động trên các VHD được gắn kèm và do đó, không đáng tin cậy. Tin tốt là vẫn có một cách dễ dàng hơn. Thay vì cập nhật BCD, bạn có thể cung cấp lại cho đĩa chữ ký đĩa ban đầu của nó.

Trước tiên, bạn phải xác định được chữ ký đĩa ban đầu (sẽ dễ dàng hơn nếu bạn biết một chút về BCD). Đính kèm đĩa bạn muốn sửa sang hệ thống Windows đang chạy. Nó sẽ được chuyển sang trực tuyến và Windows sẽ gán ký tự ổ đĩa cho các thành phần trên đĩa bởi vì không có xung đột chữ ký đĩa. Tải BCD ra khỏi đĩa bằng cách khởi động Regedit, chọn HKEY_LOCAL_MACHINE và chọn mục Load Hive trong menu File:

menu File

Điều hướng đến thư mục \Boot bị ẩn của đĩa trong hộp thoại file nằm ở thư mục gốc của một trong các ổ đĩa và chọn tệp có tên “BCD”. Nếu đĩa có nhiều ổ đĩa, hãy tìm thư mục Boot bằng cách chỉ cần nhập x:\boot\bcd, thay thế "x:" bằng từng chữ cái của ổ đĩa. Khi bạn tìm thấy BCD, hãy chọn tên cho key mà nó tải, chọn key đó và tìm kiếm “Windows Boot Manager”. Bạn sẽ tìm thấy kết quả phù hợp dưới key có tên 12000004, như sau:

Chọn key có tên là 11000001

Chọn key có tên là 11000001 và lưu ý chữ ký đĩa bốn byte nằm ở offset 0x38 (hãy nhớ đảo ngược thứ tự của các byte).

Với chữ ký đĩa đã có trong tay, bây giờ bạn mở command prompt với quyền quản trị và chạy lệnh tiện ích quản lý đĩa Diskpart. Nhập “select disk 2”, thay thế “2” bằng ID mà tiện ích Disk Management hiển thị cho đĩa. Bây giờ bạn sẽ sẵn sàng cho bước cuối cùng, đặt chữ ký đĩa thành giá trị ban đầu của nó bằng lệnh “uniqueid disk id = e9eb3aa5”, thay thế ID bằng ID bạn đã thấy trong BCD:

ID bạn đã thấy trong BCD

Khi bạn thực hiện lệnh này, Windows sẽ ngay lập tức buộc đĩa trở về ngoại tuyến để tránh xung đột chữ ký. Tránh đưa đĩa trở lại trực tuyến. Bây giờ bạn có thể tháo đĩa, và bởi vì chữ ký đĩa lại khớp với BCD, các cài đặt Windows trên đĩa sẽ được khởi động thành công.

Thay thế hoặc sửa Master Boot Record, cài đặt hệ điều hành mới, hoặc sử dụng công cụ phân vùng đĩa đều có thể ghi đè lên một chữ ký đĩa, nhưng điều này chỉ phổ biến trong các hệ thống và công cụ cũ, bởi vì hầu hết các hệ điều hành và các chương trình phân vùng hiện đại đều sẽ giữ chữ ký hiện tại mà nó tìm thấy.

Chúc các bạn thành công!

Xem thêm:

Thứ Bảy, 13/10/2018 23:55
31 👨 122