Tôi đã không may phải sao chép một hộp Windows XP / 7 khởi động kép để thay thế ổ cứng của nó bằng một cái nhỏ hơn. Tôi gặp khó khăn lớn khi khởi động nó và muốn hiểu chuyện gì đang xảy ra và liệu tôi có thể làm gì tốt hơn không.
Bối cảnh: máy có ổ đĩa 750Gb với 3 phân vùng trên đó:
- Windows XP
- Windows 7
- Dữ liệu
Việc cài đặt ban đầu được thực hiện theo cách không có phân vùng phục hồi Windows 7 riêng biệt. Tôi hy vọng thực tế này đơn giản hóa mọi thứ phần nào.
Tôi đang thay thế nó bằng một ổ đĩa 80Gb. Các phân vùng đã được thu nhỏ từ bên trong Windows 7 để chúng vừa với đĩa nhỏ hơn.
Tôi đã sử dụng GParted
(từ PartedMagic
Linux LiveCD) để sao chép các phân vùng trên. Tôi đánh dấu phân vùng Windows XP là phân vùng hoạt động (giống như trên đĩa gốc).
Tôi không thể sử dụng CloneZilla
hoặc thực hiện toàn bộ bản sao đĩa do quá trình chuyển từ đĩa lớn hơn sang đĩa nhỏ hơn.
Sau khi sao chép các phân vùng, tôi đã sao chép thủ công bộ tải khởi động (chú ý không sao chép bảng phân vùng):
$ dd if=/dev/sda of=/dev/sdb bs=446 count=1
Tôi đã gỡ bỏ đĩa gốc, đặt đĩa mới để nó được kết nối vật lý giống như bản gốc (IDE channel 1 master) và thử khởi động. Điều này đã trình bày thành công menu khởi động nhưng không thành công khi chọn một trong hai tùy chọn (có hai: một cho XP và một cho Win7).
Tôi đã thực hiện một số nghiên cứu hợp lý cho phép tôi nhận ra dữ liệu cấu hình khởi động Windows 7 không chứa mọi thứ cần thiết. Tôi đã so sánh đầu ra BCD từ các đĩa gốc và đĩa mới và lưu ý rằng các mục thiết bị trên đĩa sau là unknown
. Vì vậy, tôi tự thay đổi chúng để phù hợp với bản gốc - như thế này:
$ bcdedit /set {ntldr} device partition=C:
$ bcdedit /set {default} device partition=D:
$ bcdedit /set {default} osdevice partition=D:
và khởi động lại. Lần này tôi có thể khởi động cả XP và Win7. Tôi cần phải thử nghiệm nhiều hơn vì dường như có sự khác biệt khác giữa hai BCD, nhưng thực hiện các thay đổi trên ít nhất là cho phép khởi động.
Vì vậy, câu hỏi của tôi là thực sự hỏi tại sao BCD trên một phân vùng nhân bản sẽ xuất hiện khác với bản gốc, và đủ để ngăn chặn việc khởi động?
Và tiếp theo đó là hỏi tôi có nên làm theo cách này không?
bcdboot
cung cấp một cách dễ dàng hơn để tạo lại một mục khởi động, nhưng tôi không chắc nó sẽ phù hợp trong kịch bản khởi động kép XP / W7.