Làm cách nào để sử dụng BCDEdit để cài đặt Windows khởi động kép?


29

Các bcdeditlệnh cần thiết để thiết lập khởi động kép giữa các cài đặt khác nhau của Windows là gì? 5

Lý lịch

Gần đây tôi đã cài đặt Windows 8 vào một ổ cứng riêng biệt 1 . Bây giờ Windows 8 đã được cài đặt, tôi muốn khởi động lại cho Windows 7.

Tôi có hai 2 ổ cứng:

Ảnh chụp màn hình trình quản lý phân vùng Windows

Vì vậy, bạn có thể thấy rằng tôi có hai đĩa của mình, với các phân vùng chứa Windows:

  • Windows 7 : \\PhysicalDisk0(phân vùng 0 3 )
  • Windows 8 : \\PhysicalDisk2(phân vùng 1)

Những gì tôi đang cố gắng tìm hiểu làm thế nào là sử dụng bcdeditđể hướng dẫn điều khởi động Windows mà có một cài đặt Windows khác ngoài đó.

Chạy bcdeditngay bây giờ, nó hiển thị cấu hình hiện tại:

C:\WINDOWS\system32>bcdedit

Windows Boot Manager
--------------------
identifier              {bootmgr}
device                  partition=\Device\HarddiskVolume2
description             Windows Boot Manager
locale                  en-US
inherit                 {globalsettings}
integrityservices       Enable
default                 {current}
resumeobject            {ce153eb7-3786-11e2-87c0-e740e123299f}
displayorder            {current}
toolsdisplayorder       {memdiag}
timeout                 30

Windows Boot Loader
-------------------
identifier              {current}
device                  partition=C:
path                    \WINDOWS\system32\winload.exe
description             Windows 8
locale                  en-US
inherit                 {bootloadersettings}
recoverysequence        {ce153eb9-3786-11e2-87c0-e740e123299f}
integrityservices       Enable
recoveryenabled         Yes
allowedinmemorysettings 0x15000075
osdevice                partition=C:
systemroot              \WINDOWS
resumeobject            {ce153eb7-3786-11e2-87c0-e740e123299f}
nx                      OptIn
bootmenupolicy          Standard
hypervisorlaunchtype    Auto

Tôi không thể tìm thấy bất kỳ tài liệu nào về sự khác biệt giữa Windows Boot ManagerWindows Boot Loader .

Tài liệu

Có một số tài liệu về Bcdedit:

Nhưng họ không giải thích làm thế nào để chỉnh sửa dữ liệu cấu hình khởi động nhị phân.

Nếu tôi phải đoán , tôi sẽ nghĩ rằng Trình quản lý khởi động Windows sẽ hướng dẫn cho BIOS chương trình nào sẽ chạy. Chương trình đó sẽ cung cấp cho người dùng một tập hợp các lựa chọn khởi động. Điều đó khiến Windows Boot Loader trở thành một lựa chọn khởi động cụ thể , đại diện cho một cài đặt cụ thể của Windows.

Nếu đó là trường hợp tôi cần tạo một mục nhập Windows Boot Loader mới .

Điều này có nghĩa là tôi có thể muốn sử dụng /createtham số:

/tạo nên

Tạo một mục khởi động mới:

bcdedit [/ lưu trữ tên tệp ] / tạo [ id ] / d mô tả [/ apptype ứng dụng | / thừa kế [ apptype ] | / kế thừa THIẾT BỊ | / thiết bị ]

Vì vậy, tôi giả sử một cú pháp của:

>bcdedit /create /d "The old Windows 7" /application osloader

Trường hợp applicationcó thể là một trong các loại sau:

Apptype     Description
BOOTSECTOR  The boot sector application
OSLOADER    The Windows boot loader
RESUME      A resume application

Thật không may, tài liệu duy nhất về osloader"Trình tải khởi động Windows" . Tôi không thấy cách phân biệt giữa Windows 8 trên một ổ cứng và Windows 7 trên một ổ cứng khác.

Tham số có thể khác khi /createbộ tải khởi động là

>bcdedit /create /D "Windows Vista" /device "The Quick Brown Fox"

Thật không may, tài liệu bị thiếu cho /device:

/ thiết bị

Không bắt buộc. Nếu id không được đặt thành định danh nổi tiếng, tùy chọn được sử dụng để chỉ định mục khởi động mới là mục nhập tùy chọn thiết bị bổ sung.

Vì tôi không được đặt idthành một định danh nổi tiếng, tôi phải đặt / thiết bị thành "tùy chọn được sử dụng để chỉ định mục khởi động mới là mục nhập tùy chọn thiết bị bổ sung" . Tôi biết tất cả những từ đó; tất cả họ đều là người Anh. Nhưng tôi không biết nó đang nói gì; những từ theo thứ tự đó có vẻ vô nghĩa.

Vì vậy, tôi hơi bị cản trở. Tôi không muốn giống như Dan Stolts từ Microsoft, người đã phá hủy các ổ đĩa cứng của anh ấy khi cố gắng sử dụng BCDEdit :

Tôi không tìm thấy nội dung nào đặc biệt hữu ích khi tôi cúp máy bằng cách chơi với BCDEdit. Bài này có thể đã được ok nếu có chi tiết hơn đặc biệt là trên / bộ lệnh OSDevice, vv Vì vậy, một khi tôi đã máy tính của tôi cố định, tôi ghi nhận các giải pháp và các thông tin là ở đây ... .

Ý tôi là, nếu một anh chàng Microsoft thậm chí không thể tìm ra cách sử dụng BCDEdit để chỉnh sửa BCD của mình, thì tôi có cơ hội nào?

Đọc thưởng

Chú thích

  • 1 Vì trình cài đặt Windows 8 sẽ làm hỏng cài đặt Windows 7 của tôi, tôi đã quyết định rút ổ cứng "chính" trong quá trình cài đặt. Đó là một lời giải thích dài dòng về lý do tại sao trình cài đặt Windows 8 không phát hiện cài đặt Windows 7 hiện có. Thông thường, trình cài đặt sẽ tự động tạo các mục yêu cầu cho khởi động kép. Không phải là lý do tôi đặt câu hỏi là quan trọng.
  • 2 Thực sự có ba ổ đĩa, nhưng ổ thứ ba chỉ là bộ nhớ lớn. Sự tồn tại của ổ cứng thứ 3 không liên quan đến câu hỏi. Tôi chỉ đề cập đến nó trong trường hợp ai đó muốn biết tại sao ảnh chụp màn hình có 3 ổ cứng khi tôi chỉ đề cập đến hai.
  • 3 Tôi tự ý bắt đầu đánh số phân vùng ở "không" ; không ngụ ý rằng các phân vùng được đánh số bắt đầu từ 0. Tôi chỉ đề cập đến các phân vùng vì tôi không thấy bất kỳ trình tải khởi động nào có thể thực hiện công việc của mình mà không biết phân vùng nào và thư mục nào, cài đặt Windows được đặt trong đó.
  • 4 Tôi đang hỏi về BCDEdit. Tôi đã thử Visual BCD Editor . Nó dường như là một trình soạn thảo BCD trực quan . Điều đó có nghĩa là đó là GUI, nhưng vẫn sử dụng thuật ngữ tương tự như BCDEdit và yêu cầu kiến ​​thức tương tự mà BCD không có tài liệu.
  • 5 Để đơn giản vì chúng tôi sẽ giả định rằng tất cả các cài đặt của Windows Tôi muốn dual-boot giữa là Windows Vista hoặc mới hơn, làm cho tất cả chúng tương thích với BCDEdit và bộ nạp khởi động nhị phân. Sự thay thế sẽ đòi hỏi đi sâu vào những điều phức tạp của cái cũ ntloader. Tôi cũng không hỏi về khả năng khởi động kép lên Linux; hoặc cách khởi động lên hình ảnh Ổ cứng ảo (vhd). Chỉ là các phiên bản Windows hiện đại trên các ổ cứng hiện có trong cùng một máy.

Câu trả lời:


16

Đây không phải là câu trả lời trực tiếp cho câu hỏi trước "Bối cảnh" mà chỉ ra một giải pháp thay thế để tạo các mục trình tải để khởi động hai (và nhiều hơn) Windows Vista và các hệ điều hành mới hơn. Xin xem thêm câu trả lời thứ hai của tôi dưới đây về nhà phê bình về thuật ngữ được sử dụng trong Visual BCD.

Không có hướng dẫn, thiết bị, đồ vật, yếu tố và blah, blah, blah.

Nền của tôi (bỏ qua nếu không quan tâm và đi đến giải pháp bên dưới):

Tôi đã thực hiện Visual BCD Editor.

Trong quá trình thực hiện, tôi đã phải đọc tất cả các nguồn có sẵn trên giao diện Nhà cung cấp Bcdedit và WMI BCD (giao diện lập trình, có thể được sử dụng với C ++, C #). Các tài liệu từ Microsoft là thực sự nghèo.

Trong BCD có các đối tượng (bộ tải, cài đặt, thành phần thiết bị). Không có tài liệu về các kết nối giữa các đối tượng mặc dù có phụ thuộc.

Có hơn 140 phần tử (!) (Thuộc tính) của các đối tượng BCD trong Windows 7. Tôi không biết ý nghĩa của một số phần tử - đơn giản là không có tài liệu.

Trong Windows 8 có các yếu tố mới - tôi đoán tổng số hiện đã lên tới 180 (!!). Không có tài liệu.

Mặt khác, có hai tiện ích rất mạnh để thao tác BCD: bcdboot và reagentc.

bcdboot - tạo / sửa lỗi trình tải mặc định cũng BCD và môi trường khởi động nói chung!

reagentc - cài đặt / hủy cài đặt môi trường phục hồi (winre.wim)

Cả hai công cụ cũng không được ghi chép tốt.

Giải pháp thay thế:

Hầu như không cần bcdedit vì chỉ sử dụng bcdboot, bạn có thể tạo bộ tải cho Windows Vista và hệ điều hành Windows mới hơn - bạn tạo trình tải cho HĐH sớm nhất, so với phiên bản mới nhất và voila bạn đã tạo môi trường khởi động cho hệ thống khởi động kép / đa:

Giả sử bạn đang ở trong Windows 8:

1. bcdboot f: \ windows (bản đồ này tới Windows 7 như trong hình được đề cập)

2. bcdboot c: \ windows (bản đồ này cho Windows 8)

Làm xong !

Quy tắc cơ sở của Microsoft cho quá trình khởi động: Môi trường khởi động (và BCD) phải luôn ở trên [đĩa đầu tiên + phân vùng hoạt động]. (trên ảnh - Đĩa 2 => Đĩa đầu tiên trong chuỗi khởi động BIOS!)

Cuối cùng nhưng không kém phần quan có là bootsect tiện ích cho văn bản MBR và PBR (thạc sĩ và partition boot record) - bây giờ chuẩn trong Windows 8 (đã có sẵn chỉ trong WinRE trước đó).

Vì vậy, chỉ sử dụng bootect và bcdboot, tất cả các thực thể khởi động cho một hệ thống khởi động kép có thể được tạo / sửa.

Tôi nghĩ rằng quá trình khởi động cho Vista và sau này được mô tả rất tốt trên nhiều trang web internet ngay cả trên Microsoft.com.

Chú thích:

Một trong những trang web tốt nhất về Windows BCD là trang web của Geoff Chappell - có nhiều thông tin chi tiết hơn trên Microsoft.com. Người dùng quan tâm có thể tìm thấy thông tin khá hữu ích ở đó và một số lưu ý quan trọng về tài liệu bcdedit.


9

Khi tôi định dạng ổ C: để cài đặt lại Windows, bản ghi khởi động chính đã bị xóa và trình cài đặt Windows 7 không thể khôi phục được. Tôi có thể sử dụng một công cụ bcdedit GUI như công cụ Chỉnh sửa Visual BCD, nhưng tại sao tôi phải cài đặt một cái gì đó khi cần có một lệnh đơn giản trong chương trình an toàn bcdedit có thể thực hiện công việc? Sau nhiều lần tìm kiếm thông qua các tập tin trợ giúp trực tuyến, tôi đã từ bỏ bcdedit và tìm thấy câu trả lời ở đây bị chôn vùi. Để tạo một mục khởi động cho phân vùng thứ hai, bạn phải sử dụng bcdboot

Giả sử bạn đang ở trong C: \ Windows:

1. bcdboot e: \ windows

2. bcdboot c: \ windows

Khi bạn khởi động lại, bạn sẽ thấy trình đơn khởi động Windows với hai mục nhập cho Windows 7. Nếu bạn chọn mục khởi động vào C: \ Windows, bạn có thể đổi tên mục nhập cho phân vùng này bằng:

mô tả bcdedit / set {current} "Windows 7 (Phân vùng 1)"

Điều này làm cho hệ điều hành khởi động khi khởi động mục mặc định trong menu khởi động:

bcdedit / mặc định {hiện tại}

Điều này đặt hệ điều hành mặc định khi khởi động mục đầu tiên trong menu khởi động

bcdedit / displayorder {default} / addfirst

Hoặc bạn có thể đặt HĐH khi khởi động mục đầu tiên trong menu khởi động:

bcdedit / disalyorder {current} / addfirst

Bây giờ khởi động lại và chọn mục thứ hai trong menu khởi động nên được gắn nhãn "Windows 7". Khi đã khởi động vào E: \ Windows đổi tên hệ điều hành đã khởi động khi khởi động:

bcdedit / bộ mô tả {current} "Windows 7 (Phân vùng 2)"

Kiểm tra xem menu khởi động có hoạt động tốt không và lưu dữ liệu bcd vào phân vùng không cài đặt HĐH trên đó:

bcdedit / xuất D: \ Saving_BCD_Sinstall \ ManagedBCD

Nếu bạn gặp rắc rối sau này, bạn có thể khôi phục menu khởi động bcd bằng:

bcdedit / nhập D: \ Saving_BCD_Sinstall \ ManagedBCD


Xe máy của tôi, bạn chỉ cần lặp lại câu trả lời của tôi một vài tháng trước. -1.
snayob

@snayob, tôi đánh giá cao câu trả lời của bạn (+1), nhưng Motorcycleboy sẽ đi sâu hơn một chút về các lệnh sau khi người ta tạo ra các bootentries. Bây giờ, một cái gì đó còn thiếu trong toàn bộ cuộc thảo luận này là những gì lệnh tương đương bcdeditdành cho bcdboot e:\windows(xem ở đây cho câu hỏi)
Davor Josipovic

Tôi không nghĩ rằng có một lệnh bcdedit tương đương cho "bcdboot e: \ windows" là bản sao bcdboot và sửa chữa toàn bộ môi trường khởi động (bootmgr + \ boot boot + sửa chữa BCD + thêm một mục nhập cho HĐH được chỉ định)
snayob

{current}không hoạt động.
Phương Đông

5

Một số lưu ý về phê bình trong câu hỏi ban đầu về việc sử dụng thuật ngữ tương tự trong Visual BCD như Microsoft sử dụng cho bcdedit.

Khái niệm BCD được phát triển bởi Microsoft. Nó đi kèm với thuật ngữ riêng của nó. Tôi không nghĩ rằng tôi có thể thay đổi nó. Tôi chỉ có thể mở rộng nó.

Microsoft đã đưa ra hai cách để truy cập / chỉnh sửa BCD:

  1. sử dụng bcdedit.exe - giao diện dòng lệnh
  2. Giao diện nhà cung cấp BCD WMI - giao diện lập trình

Cả hai giao diện đều nói về các đối tượng và thành phần BCD. Đây là một khái niệm chung được sử dụng trong lập trình / máy tính cũng như trong các lĩnh vực khác của con người. Chúng ta thậm chí có thể đi đến triết học sử dụng thuật ngữ của các đối tượng, tính chất và quan hệ để mô tả thế giới và vũ trụ.

Quyền truy cập của nhà cung cấp BCD WMI linh hoạt hơn vì nó cung cấp cho lập trình viên khả năng truy cập mọi đối tượng và thành phần trong BCD và hoạt động trên chúng một cách tự do.

Visual BCD sử dụng đầy đủ Giao diện nhà cung cấp BCD WMI và thực hiện truy cập giống như cách chúng ta thường sử dụng để truy cập vào sổ đăng ký Windows bằng regedit.exe. Ngoài ra, công cụ tự động hóa hai nhiệm vụ chính - tạo bộ tải và sửa chữa khởi động kép . Không có công cụ khác cung cấp chức năng tự động một cú nhấp chuột như vậy . Tôi muốn nói rằng đây là thuật ngữ mới và mức độ trừu tượng mới . Tôi sẽ không thay đổi cơ sở Microsoft đã tạo, tôi chỉ có thể xây dựng dựa trên nó.

Người dùng Novice chỉ cần nhấp vào một nút và một hoạt động phức tạp được thực hiện! Không có nền tảng là cần thiết! Bạn thậm chí không cần biết bạn đã cài đặt bao nhiêu phiên bản Windows - công cụ cố gắng tìm tất cả chúng và sau đó tạo trình tải cho chúng nếu trình tải tương ứng chưa có trong BCD - thuật ngữ được sử dụng - "Tạo trình tải Windows bị thiếu" - Tôi nghĩ rằng mọi người nói tiếng Anh có thể hiểu / nhấp / xác nhận thao tác như vậy hay tôi sai?

Sự phức tạp của các đối tượng và các thành phần trong BCD là tự nhiên vì khái niệm này bao gồm việc khởi động hệ điều hành Windows mới hơn và cũ hơn cũng như hệ điều hành nước ngoài như Linux, Unix, v.v. Ngoài ra, đây là khái niệm chung cho khởi động MBR và khởi động EFI trên nhiều thiết bị.

Phần phức tạp nhất của BCD là khái niệm thiết bị . Bạn có thiết bị phân vùng, thiết bị ramdisk, thiết bị tệp, thiết bị định vị - bạn phải dành thời gian để hiểu nó và tôi không nghĩ rằng đây là dành cho người dùng Windows bình thường. Diễn đàn đầy những câu hỏi về phân vùng đĩa là một chủ đề ít phức tạp hơn nhiều. Nhiều người dùng Windows thậm chí không biết về sự khác biệt giữa phân vùng chính và phân vùng logic chẳng hạn. Bạn phải biết về các phân vùng nếu bạn muốn khởi động kép / đa. Bạn phải mua đất nếu muốn xây nhà thứ hai.

Khái niệm BCD là giống nhau kể từ Vista - chỉ các yếu tố mới được xác định trong Windows 7/8.

Tôi nghĩ rằng cấu trúc đăng ký cho BCD được chọn vì Windows đã thực hiện giao diện này và nó là một giao diện giao dịch đáng tin cậy được chứng minh là hoạt động trong nhiều năm. Nếu khái niệm đăng ký Windows nói chung là một khái niệm tốt hay xấu là một chủ đề khác.

Tùy thuộc vào lập trình viên / nhà phát triển để tạo ra một giao diện thân thiện hơn với người dùng. Tôi đã bắt đầu với việc đưa ra cùng một giao diện - một GUI tương đương với bcdedit - sau đó giao diện có thể được trừu tượng hóa ở mức cao hơn dựa trên các mẫu sử dụng. Một cái nhìn có cấu trúc của BCD đã được thực hiện. Đây là lớp trừu tượng cơ sở.

Mức độ trừu tượng tiếp theo sẽ là tập trung vào các mối quan hệ giữa các đối tượng vì chủ đề này không được Microsoft đề cập. Không phải là một nhiệm vụ dễ dàng. Thuật ngữ mới đi kèm với sự trừu tượng.


Tôi hiểu BCD kết thúc một hệ thống rất mạnh mẽ, với rất nhiều tùy chọn phức tạp. Mặt khác, tôi nghĩ rằng tôi có một câu hỏi rất đơn giản, đó là rất nhiều người đã hỏi trong nhiều năm - nhưng không bao giờ có thể giải quyết được. "Tôi có Windowsở đây và một cái khác Windowsở đó. Làm thế nào để tôi khởi động giữa chúng?". Thay vì một hướng dẫn đầy đủ về tất cả các tùy chọn của BCDEdit, tôi đã hy vọng các lệnh chỉ có thể giải quyết vấn đề (có vẻ đơn giản) này. Có lẽ hầu như mọi thứ đơn giản như msconfig, ngoại trừ nó cho phép bạn duyệt qua một bản cài đặt Windows khác và nó sẽ thêm nó cho bạn.
Ian Boyd

Tôi phải nói rằng, công cụ của bạn mạnh hơn EasyBCD rất nhiều.
Milind R

3

Bạn cần một BCDEdit /setlệnh để cấu hình âm lượng khởi động. Sau đó thêm mục vào menu hệ điều hành Windows Boot Manager bằng cách gọi BCDEdit /displayorderlệnh.

bcdedit / set {ntldr} khởi động thiết bị

Nó cũng sẽ xác định phân vùng của hệ điều hành khác hoặc lệnh sau

bcdedit / set {ntldr} phân vùng thiết bị = C:

Dòng sau đây giúp mục nhập có thể khởi động bằng cách thêm nó vào menu

bcdedit / displayorder {ntldr} / addlast

Bạn có thể xác minh rằng mục nhập mới sẽ xuất hiện trên menu khởi động bằng cách chạy lệnh bcdedit /enum ACTIVEvà tìm kiếm mục nhập Windows Legacy OS Loader.

Lưu ý : /createlệnh được sử dụng để thêm hệ điều hành không phải của Microsoft vào mục nhập bộ tải khởi động.

Để biết thêm thông tin về điều này, bạn có thể đọc bài viết nguồn này


Về câu hỏi của bạn về " Sự khác biệt giữa trình tải Windows Boot và Trình quản lý khởi động "

Từ wikipedia

Quá trình khởi động Windows NT bắt đầu khi máy tính tìm thấy bộ tải khởi động Windows, một phần của hệ điều hành Windows chịu trách nhiệm tìm Microsoft Windows và khởi động nó. Trên các hệ thống IA-32 hoặc x64, bộ tải khởi động được gọi là Windows Boot Manager (BOOTMGR). Tuy nhiên, trước Windows Vista, bộ tải khởi động là NTLDR.

Xem thêm trên Technet .


Visual BCD Editor là phiên bản GUI nâng cao của tiện ích bcdedit của Windows.

Đây là công cụ GUI đầu tiên thực hiện chỉnh sửa toàn bộ kho lưu trữ dữ liệu cấu hình khởi động (BCD) của Windows 7 / Vista.

Tải xuống trang cho trình soạn thảo BCD trực quan.

Hãy thử một tùy chọn để sửa chữa trong công cụ.


Giới thiệu về Windows Boot Manager : Windows Boot Manager về cơ bản là một hệ điều hành nhỏ kiểm soát trải nghiệm khởi động của bạn và cho phép bạn chọn ứng dụng khởi động nào sẽ chạy. Có nhiều ứng dụng khởi động khác nhau (ví dụ, Windows Boot Loader) và mỗi ứng dụng làm một cái gì đó khác nhau. Ví dụ: ứng dụng Windows Boot Loader tải Windows. [...] Ví dụ: nếu bạn có hai phiên bản Win7 khác nhau được cài đặt trên các phân vùng khác nhau, bạn sẽ thấy hai mục nhập Trình tải khởi động Windows. (lấy từ đây )
Davor Josipovic 27/12/13

3

Mặc dù cũ, tôi muốn thêm vào câu trả lời, vì một số câu trả lời ở trên có chứa thông tin không chính xác. Chúng có thể hoạt động, nhưng bạn chắc chắn không cần một chương trình bên ngoài, hoặc thậm chí bcdbootđể làm điều đó. Để tham khảo thông tin chính xác như sau:

Nền BCD nhanh nếu mới

BCD là cấu hình khởi động Windows. Nó chứa nhiều phần, mỗi phần được xác định bằng một tên (được gọi là "mô tả") và một mã định danh trông hơi giống thế này: "{0743bb44-fda6-11e3-90c8-e3ee27f3aec6}".

Có một số "định danh nổi tiếng" và bcdedit sẽ sử dụng một cách hữu ích những thứ này thay vì có thể, (trừ khi bạn sử dụng tùy chọn /v (dài dòng) với /enum). Chúng trông như thế này: "{bootmgr}", "{memdiag}". Đây chỉ là tên viết tắt cho các định danh đầy đủ, nhưng dễ làm việc hơn. Bạn có thể sử dụng một trong hai.

Bạn có thể liệt kê các phần này bằng lệnh sau ("tất cả" là tùy chọn nhưng không có nó, bạn sẽ không thấy danh sách đầy đủ) : bcdedit /enum all.

Sản lượng tiêu biểu:

C:\Windows\system32>bcdedit /enum all

Windows Boot Manager
--------------------
identifier              {bootmgr}
device                  partition=\Device\HarddiskVolume1
description             Windows Boot Manager
locale                  en-US
inherit                 {globalsettings}
default                 {current}
resumeobject            {92b1a1b0-c023-11e3-b3f1-ec4d94108574}
displayorder            {current}
toolsdisplayorder       {memdiag}
timeout                 30

Windows Boot Loader
-------------------
identifier              {current}
device                  partition=C:
path                    \Windows\system32\winload.exe
description             Windows 7
locale                  en-US
inherit                 {bootloadersettings}
recoverysequence        {92b1a1b2-c023-11e3-b3f1-ec4d94108574}
recoveryenabled         Yes
osdevice                partition=C:
systemroot              \Windows
resumeobject            {92b1a1b0-c023-11e3-b3f1-ec4d94108574}
nx                      OptIn

Tương tự, để dễ dàng xác định các thiết bị, nó sẽ sử dụng định dạng như thế \Device\HarddiskVolume2, nhưng sẽ nhận ra phân vùng bằng chữ cái của nó ("C:") nếu một thiết bị được gán.

Danh sách được tạo bởi /enum allbắt đầu với phần quản lý khởi động chương trình cơ sở tùy chọn (nếu bo mạch chủ của bạn có EFI). Tên viết tắt của nó là "{fwbootmgr}" . Nó kiểm soát lựa chọn khởi động EFI ban đầu (có nên sử dụng trình quản lý khởi động Windows thông thường hoặc các thiết bị cụ thể). Nói chung, bạn có thể bỏ qua {fwbootmgr} nếu có.

Bên dưới đó là "Trình quản lý khởi động Windows" (mã định danh "{bootmgr}" ). Đây là một trong những bạn sẽ làm việc với. Nó chứa cấu hình cho menu cơ bản hoặc bất cứ thứ gì bạn nhận được khi khởi động (nếu Windows Boot Manager đang hoạt động và nó có thể tìm thấy BCD ở vị trí đầu tiên).

Bên dưới {bootmgr} là bất kỳ số lượng phần "Trình tải khởi động Windows" nào và có thể các phần khác, mỗi phần điều khiển một hành động hoặc tùy chọn khởi động.

Thiết lập khởi động kép bằng bcdedit (bạn không cần bất cứ điều gì khác)

Để khởi động kép, bạn báo cho bcdedit /copymột mục nhập Trình tải khởi động Windows tốt đã biết cho hệ điều hành đầu tiên của bạn.

  • /copy để sao chép một mục hiện có
  • {current}định danh của mục bạn muốn sao chép. Đây là một phím tắt cho các mục khởi động hiện tại. Nếu đó không phải là cái bạn muốn khởi động kép, hãy sử dụng mã định danh chính xác cho cái bạn muốn. Văn bản mô tả cho mỗi mục sẽ giúp tìm thấy cái bạn muốn.
  • /d "Description for copied entry sẽ là mô tả của mục mới

Nó sẽ tạo một bản sao của mục đó, cung cấp cho nó mô tả đã nêu và trả lời với mã định danh mới mà nó đã đưa ra bản sao:

bcdedit /copy {current} /d "Copy of my current Windows Boot Loader"

The entry was successfully copied to {5599a3fc-e4ee-11e7-a5f3-c86000d0b92a}.

Điều đó tạo ra một mục độc lập với đúng tên, bây giờ bạn cần nói cho nó biết phải làm gì. Vì hầu như không có gì thay đổi trong các HĐH gần đây, bạn chỉ cần đặt thiết bị và osdevice vào phân vùng Win7 của mình và có thể nó sẽ hoạt động. Nếu cần, hãy xem đầu ra của / enum khi bạn khởi động vào Win7 bình thường và sao chép các mục mà nó có vẻ mong đợi. Nhưng thông thường, chỉ cần tạm thời gán một chữ cái cho HĐH thứ 2 của bạn, như "Q", và sau đó lệnh là: bcdedit /set {NEW_IDENTIFIER} device partition=Q:hoặc một cái gì đó, và tương tự cho osdevice. bcdedit sẽ sắp xếp các ký tự ổ đĩa, xem bên dưới. Bạn có thể xóa ký tự ổ đĩa tạm thời khi nó được sử dụng trong bcd.

Tiếp theo, thêm nó vào danh sách các mục trong {bootmgr} bằng cách sử dụng bcdedit /displayorder {NEW_ID} /addlastvà - đặc biệt - nói với bcd để hiển thị menu khởi động bằng cách sử dụng bcdedit /set {bootmgr} displaybootmenu Yes.

Làm xong.

Lưu ý - an toàn khi sử dụng các ký tự ổ đĩa "lẻ" hoặc "sai" trong BCD và cũng an toàn nếu đầu ra của / enum cũng chứa chúng.

Để rõ ràng, bạn không cần phải lo lắng về việc thiết bị mới của bạn được xác định là Q: (hoặc bất cứ thứ gì) khi thiết bị "phải là C:". bcdedit lưu trữ ID ổ cứng, không phải chữ cái. Nó hoàn toàn chấp nhận và hiển thị Q: hữu ích. Nếu một thiết bị có một chữ cái, nó sẽ hiển thị chữ cái theo mặc định thay vì ID thiết bị, để bạn dễ dàng. Bạn có thể thấy điều này bằng cách xóa hoặc gán chữ cái từ HĐH thứ 2 trong DISKPART hoặc DISKMGMT.MSCà đầu ra của / enum sẽ ngay lập tức trở lại \ Thiết bị. Nó thực sự đã lưu ID ổ cứng chính xác và khi được sử dụng để khởi động, Windows sẽ tìm thấy thiết bị đó - thư này rất dễ dàng và không bao giờ thực sự được lưu.


Bạn đã {0743bb44-fda6-11e3-90c8-e3ee27f3aec6}đến từ đâu? Bạn đã sao chép {current} Windows Boot Loader ; những thứ khác bạn đang làm một bản sao là gì? (Không phải Trình quản lý khởi động Windows mà tôi giả sử)
Ian Boyd

Cảm ơn bạn. Tôi có thể xác nhận điều này hoạt động như phiên bản Windows 10 1903 này (bản dựng 18362). Tôi đã có một hình ảnh của phân vùng NTFS Windows 10 OS Tôi đã khôi phục vào một phân vùng trên một máy khác, tôi đã khởi động lại từ phương tiện cài đặt sang Windows Recovery và ký tên trình điều khiển bằng đĩapart. Sau đó, bcdedit / bản sao của {default} (no {current} trong WinRE) và bcdedit / bộ thiết bị và osdevice sang ổ đĩa mới. Khi khởi động lại, tôi được lựa chọn hệ điều hành để chạy và nó đã khởi động lại hình ảnh cũ. Đó là Windows 10, khả năng khởi động rất linh hoạt bất kể thay đổi hoàn toàn CTNH.
Marko Kohtala

2

Để trả lời câu hỏi cụ thể của tác giả như được nhắc lại trong các bình luận (mặc dù nó khác với câu hỏi ban đầu của anh ấy về các bcdedit.exetrình tự để thực hiện giống nhau):

Có lẽ hầu như mọi thứ đơn giản như msconfig, ngoại trừ nó cho phép bạn duyệt sang bản cài đặt Windows khác và nó sẽ thêm nó cho bạn.

EasyBCD chính xác là những gì bạn đang tìm kiếm (miễn phí cho sử dụng cá nhân). Đây là một công cụ quản lý khởi động kép trực quan cho Windows và việc thêm một mục Windows mới chỉ bằng một cú nhấp chuột, chính xác như bạn đã mô tả .

Có rất nhiều tài nguyên trên EasyBCD trực tuyến, vì vậy tôi sẽ không lặp lại mọi thứ ở đây. Về cơ bản EasyBCD kết thúc sự phức tạp bcdedit.exevà mở rộng nó bằng các mô-đun bộ nạp khởi động riêng để cho phép bạn thiết lập khởi động kép với các phiên bản khác (mới hơn hoặc cũ hơn) của Windows, cũng như Linux, BSD, v.v.

Tiết lộ đầy đủ: Tôi là tác giả chính của EasyBCD.


-1
bcdedit
bcdboot
bcdedit /create

Điều này có thể được trỏ đến một tệp như tệp .vhd nhưng được tạo dưới dạng phân vùng đĩa và được khởi tạo và đính kèm, hoặc được gắn khi đang di chuyển và khởi động lại dưới dạng HĐH. HĐH có thể được ẩn bên trong một phân vùng khác. một phân vùng khác có thể được ẩn bên trong một phân vùng khác và hệ điều hành bên trong nó. khi bạn chạy bcdeditđể được trỏ đến một tệp .vhd khác bất kể nó nằm ở đâu. Nó tải lên. Người hướng dẫn của tôi đã cho thấy điều này trong lớp nhưng không thành công hoặc từ chối đưa ra lời giải thích khác bcdedit. Nhưng điều này hoạt động để ẩn và vận hành hệ điều hành đầy đủ chức năng.

  1. bcdboot e:\windows
  2. bcdboot c:\windows
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.