bcdedit.exe ปฏิเสธที่จะเปิดร้านค้าระบบ


2

ดูเหมือนว่า BCD ของฉันจะแตกหัก แต่ฉันไม่สามารถเข้าใจได้ว่าเกิดอะไรขึ้น ระบบบูตได้ปกติ แต่ป้องกันไม่ให้ windows ติดตั้งการอัปเดต:

MoSetupPlatform: Opening BCD store...
CDlpActionDiskSpaceReq::CalculateRequiredDiskSpaceInstallReq(1752): Result = 0x8007001F

ฉันใช้ Windows 10 บน MacBook (bootcamp) ใช้ตารางพาร์ติชัน EFI เมื่อฉันวิ่งไปbcdedit /enumพร้อม ๆ กันฉันก็จะได้รับ

The boot configuration data store could not be opened.
A device attached to the system is not functioning.

เมื่อฉันพยายามเปิดร้านโดยตรงมันเปิดได้ดี:

B:\>bcdedit.exe /store B:\EFI\Microsoft\Boot\BCD /enum

Windows Boot Manager
--------------------
identifier              {bootmgr}
device                  partition=B:
path                    \EFI\Microsoft\Boot\bootmgfw.efi
description             Windows Boot Manager
locale                  en-US
inherit                 {globalsettings}
default                 {default}
resumeobject            {8b3fea76-03c8-11e6-8f47-dc08058a457d}
displayorder            {default}
toolsdisplayorder       {memdiag}
timeout                 30

Windows Boot Loader
-------------------
identifier              {default}
device                  partition=C:
path                    \WINDOWS\system32\winload.efi
description             Windows 10
locale                  en-US
inherit                 {bootloadersettings}
recoverysequence        {8b3fea78-03c8-11e6-8f47-dc08058a457d}
displaymessageoverride  Recovery
recoveryenabled         Yes
isolatedcontext         Yes
allowedinmemorysettings 0x15000075
osdevice                partition=C:
systemroot              \WINDOWS
resumeobject            {8b3fea76-03c8-11e6-8f47-dc08058a457d}
nx                      OptIn
bootmenupolicy          Standard

Windows จัดเก็บ BCD จริงไว้ที่อื่นหรือไม่ windows จะทราบได้อย่างไรว่าพาร์ติชันและพา ธ ใดที่จะมองหาที่เก็บ BCD ของระบบ

ฉันจะวินิจฉัยสิ่งที่เกิดขึ้นกับร้าน BCD ของฉันได้อย่างไร

อัปเดต:ลืมว่าฉันบูตโดยใช้refindbootloader ซึ่งมีแนวโน้มที่จะบูตbootmgfw.efi


“ Windows เก็บ BCD จริงไว้ที่อื่นหรือไม่? ” - ไม่มันเก็บไว้ในพาร์ติชัน EFI ทำไมคุณถึงติดตั้งและกำหนดอักษรชื่อไดรฟ์ให้กับพาร์ติชัน EFI ของคุณ
Ramhound

และเส้นทางเต็มเสมอEFI\Microsoft\Boot\BCDหรือไม่
Poma

พาร์ติชัน EFI ไม่ควรมีอักษรระบุไดรฟ์ คำตอบสำหรับคำถามของคุณเป็นที่สำหรับระบบ UEFI เป็นจริง: technet.microsoft.com/en-us/library/cc721886(v=ws.10).aspx
Ramhound

ฉันได้ติดตั้งไว้ที่ B: เพื่อแก้ไขปัญหานี้ได้ง่ายขึ้น แต่ถ้าทั้งสองคำสั่งพยายามเปิดไฟล์เดียวกันทำไมคำสั่งหนึ่งถึงประสบความสำเร็จและอีกคำสั่งหนึ่งล้มเหลว?
Poma

คำตอบ:


1

ดูเหมือนว่า OS X จะทำการเปลี่ยนแปลงบางอย่างที่เข้ากันไม่ได้และทำลาย bcdedit นี่คือวิธีที่ผมสามารถที่จะแก้ไขปัญหานี้ได้ชั่วคราวรีเซ็ต NVRAM กับ+ Alt+ P+ แล้วบูตโดยตรงในหน้าต่างพาร์ทิชันโดยถือR Altฉันสามารถติดตั้งการปรับปรุง windows แต่หลังจากที่ฉันบูทเข้าสู่ OS X และติดตั้งการปรับปรุงแล้ว bcdedit ก็จะแตกอีกครั้ง


0

สถานการณ์หนึ่งที่ระบบจะบู๊ต แต่bcdedit /enumจะล้มเหลวคือถ้าพาร์ติชันสำหรับเริ่มระบบของ EFI มีประเภทพาร์ติชันที่ไม่ถูกต้อง ในฐานะที่เป็นหมายเหตุด้านนี้อาจทำให้เกิดความreagentc /enableล้มเหลวและอาจป้องกันไม่ให้การปรับปรุง Windows ติดตั้งได้สำเร็จ

คุณสามารถตรวจสอบว่านี่เป็นปัญหาของคุณด้วยdiskpartคำสั่งหรือไม่ สมมติว่าคุณมีฮาร์ดดิสก์ไดรฟ์เดียวเท่านั้น

select disk 0
list partition

คุณควรเห็นสิ่งนี้:

  Partition ###  Type              Size     Offset
  -------------  ----------------  -------  -------
  Partition 1    System             500 MB  1024 KB
  Partition 2    Primary            445 GB   501 MB

(อาจมีพาร์ติชั่น "กู้คืน" ที่สามหรืออาจจะเป็นเช่นกัน)

พาร์ติชันที่มีขนาดเล็กกว่าชื่อ "ระบบ" คือพาร์ติชันที่คุณต้องการโดยปกติแล้วพาร์ติชัน 1 ดังนั้น

select partition 1
detail partition

และคุณควรเห็นอะไรเช่นนี้

Partition 1
Type    : c12a7328-f81f-11d2-ba4b-00a0c93ec93b
Hidden  : Yes
Required: No
Attrib  : 0XC000000000000000
Offset in Bytes: 1048576

  Volume ###  Ltr  Label        Fs     Type        Size     Status     Info
  ----------  ---  -----------  -----  ----------  -------  ---------  --------
* Volume 3                      FAT32  Partition    500 MB  Healthy    System

หากระบบไฟล์ไม่ใช่ FAT32 แสดงว่าคุณไม่ได้ดูที่พาร์ติชันที่เหมาะสม มันควรจะซ่อนอยู่และมักจะไม่ได้รับตัวอักษรระบุไดรฟ์เว้นแต่ (ตามคำถามที่โพสต์ในตอนแรก) จะได้รับอย่างชัดเจนเพื่อการแก้ไขปัญหา อาจไม่เท่ากับ 500MB แต่ควรใช้เพียงส่วนเล็ก ๆ ของฮาร์ดดิสก์

ประเภทของพาร์ติชัน EFI ควรเป็นไปc12a7328-f81f-11d2-ba4b-00a0c93ec93bตามที่แสดงด้านบน ถ้าไม่ใช่และโดยเฉพาะอย่างยิ่งถ้าเป็นebd0a0a2-b9e5-4433-87c0-68b6b72699c7(ดูMicrosoft Basic Data Partitionบน Wikipedia) นั่นก็น่าจะเป็นสาเหตุของปัญหา

หากประเภทพาร์ติชันไม่ถูกต้องคุณสามารถแก้ไขได้ด้วยset idคำสั่ง

set id=c12a7328-f81f-11d2-ba4b-00a0c93ec93b

bcdedit /enumคำสั่งแล้วควรจะทำงาน


-2

A Windows เก็บ BCD จริงไว้ที่อื่นหรือไม่? windows รู้ได้อย่างไรว่าพาร์ติชันและพา ธ ใดที่จะมองหาที่เก็บ BCD ของระบบ

โหมด EFI ใช้งานได้กับสองขา

1- พาร์ติชัน BIOS พิเศษ (บนพื้นที่ที่สามารถเขียนได้) ที่ OS Loader Partition GUIDs จะถูกบันทึก
2- พาร์ติชันระบบ (ซ่อนอยู่) ที่มี GUID นั้นชื่อ EFI โดยที่ไฟล์ปฏิบัติของ Bootloader ตั้งอยู่ (.efi ไฟล์ส่วนขยาย)

หากคุณได้ติดตั้ง / ติดตั้ง OSE หลาย ๆ อันบนโหมด EFI โอกาสก็คือชิป BIOS SPI ได้เต็มไปด้วยบันทึกมากมายของระบบปฏิบัติการเก่าและในที่สุดก็เต็มพื้นที่ 8MB พิเศษ (ถ้าฉันไม่ผิด) พาร์ทิชันชิปและกลายเป็นแบบอ่านอย่างเดียว

Microsoft มีหน้า Technetซึ่งแสดงให้เห็นถึงวิธีการล้างเร็กคอร์ด GUID ของ EFI ที่ซ้ำกันหรือไม่จำเป็น (ตัวอย่างเช่นระบบปฏิบัติการที่ถูกลบ แต่ยังมีเรคคอร์ด EFI อยู่)
มันเกี่ยวข้องกับการสร้างการสำรองข้อมูลของการกำหนดค่าปัจจุบันจากนั้นรีเซ็ตโดยไม่มีการบันทึกซ้ำ

บนพรอมต์คำสั่ง cmd

Bcdedit /export savebcd

สิ่งนี้จะสำรองข้อมูลการกำหนดค่า bootloader ปัจจุบัน
ทำสำเนาของมันเพื่อการกู้คืน (savebcd จะเป็นข้อมูลสำรองของเรา);

Copy savebcd newbcd

จากนั้นส่งออกระเบียนปัจจุบันไปยังไฟล์ข้อความในรูปแบบที่มนุษย์สามารถอ่านได้

Bcdedit /enum firmware > enumfw.txt

notepad enumfw.txt

โหลดไฟล์นั้นด้วย Notepad และตรวจสอบเพื่อชี้ระเบียนที่ซ้ำกัน

เพื่อลบแต่ละระเบียนที่ซ้ำกัน / ล้าสมัย:

Bcdedit /store newbcd /delete {93cee840-f524-11db-af62-aa767141e6b3}

โดยที่ 93cee840-f524-11db-af62-aa767141e6b3 เป็นเพียงตัวอย่าง GUID
แทนที่ด้วย guid ที่คุณคิดว่าไม่จำเป็น

เมื่อคุณผ่านการลบ guids ที่ไม่ต้องการทั้งหมดแล้ว

Bcdedit /import newbcd /clean

ลบเร็กคอร์ด EFI ปัจจุบันและนำเข้าข้อมูลการกำหนดค่าการล้างข้อมูล (ไฟล์ที่เราเพิ่งล้างข้อมูลที่ไม่ต้องการ)
หากคุณยังได้รับ "อุปกรณ์ที่เชื่อมต่อกับระบบไม่ทำงาน" ข้อผิดพลาด ,
แล้ว; ฉันไม่ต้องการที่จะเป็นข่าวร้าย แต่คุณมีสองเส้นทางที่จะติดตาม;
- ติดกับระบบปัจจุบันของคุณ; สร้างการสำรองข้อมูลอิมเมจดิสก์ทั้งหมด (รวมถึงพาร์ติชัน EFI ของคุณ) โดยเร็วเนื่องจากชิป SPI (BIOS) ของคุณส่วนใหญ่มีความยุ่งเหยิงและคุณไม่สามารถล้างออกได้โดยไม่ต้อง reflashing / แทนที่
ซึ่งหมายความว่าตัวชี้ Bootloader ปัจจุบันบนชิปถือเป็นที่สิ้นสุดและหากคุณพยายามติดตั้งระบบปฏิบัติการอื่นในโหมด EFI มันจะไม่จบการติดตั้งและตัวติดตั้งจะถูกขัดจังหวะด้วยข้อผิดพลาด (ตระกูล Windows OS) หรือจะจบลง แต่ BIOS จะไม่ โหลดมัน (ตัวติดตั้ง Linux เช่น openSUSE) ยิ่งไปกว่านั้นคุณจะสูญเสียการตั้งค่าเดิมของคุณคุณจะไม่ต้องบูตระบบปฏิบัติการบนอุปกรณ์ของคุณ
- เมื่อพิจารณาว่าคุณมี Mac ให้ขอการสนับสนุนทางเทคนิคเพื่อ reflash / แทนที่ BIOS
หากไม่ใช่กรณีหรือไม่เป็นไปได้ เปลี่ยนฮาร์ดไดรฟ์เป็นโหมด BIOS รุ่นเก่า (หากสวิตช์นั้นใน BIOS ยังใช้งานได้อยู่สำหรับฉันแล้วมันไม่ทำงาน (Lenovo Ideapad B50)

นอกเหนือจากนี้มีตัวเลือกอื่น ๆ ที่จะตัดออกดังนี้ : เพราะพวกเขามีเคล็ดลับที่ปลอดภัยในวิดีโอบางเรื่องใน Youtube เกี่ยวกับเรื่องนี้ดังนั้นฉันแค่พูดถึงพวกเขาว่าไม่ควรลองเพราะมันอันตรายและ / หรือลบล้างการรับประกันอุปกรณ์ (ถอดแบตเตอรี่แล็ปท็อป + อุปกรณ์แยกชิ้นส่วนเพื่อแสดงเมนบอร์ดจากนั้นถอดแบตเตอรี่ไบออส + รอ (หวัง) ไบออสเพื่อรีเซ็ตหรือลัดวงจร (ลัดวงจร) ชิป SPI ) โดยเฉพาะอย่างยิ่งวิธีการกำจัดแบตเตอรี่ไบออสไม่สามารถใช้งานได้กับแล็ปท็อปส่วนใหญ่ (ถ้าไม่ใช่ทั้งหมด) ในขณะที่การลัดชิพ SPI อาจทำให้ระบบทั้งหมดถูกปิดกั้น

หวังว่าสิ่งเหล่านี้ช่วย


"มีตัวเลือกอื่นที่จะถูกตัดออก" - แล้วตัวเลือกอื่น ๆ เหล่านี้คืออะไร? เฉพาะเจาะจง. พยายามที่จะให้ความเห็นให้น้อยที่สุด มันเป็นสิ่งที่ทำให้ไขว้เขวที่ไม่จำเป็น
Ramhound

Bcdedit /export savebcdสิ่งนี้ไม่สามารถใช้งานได้เช่นเดียวกับคำสั่งอื่น ๆ ที่อ่านระบบ BCD ปัจจุบัน ดูเหมือนว่า bcdedit จะค้นหา BCD ในตำแหน่งที่ไม่ถูกต้องเนื่องจากจะเปิดขึ้นเมื่อมีการอ้างอิงโดยตรง
Poma

และอะไรคือสิ่งที่ถูกเก็บไว้ในพาร์ติชั่น BIOS พิเศษ? เพราะคุณกำลังบอกว่ามันอาจจะกลายเป็นความยุ่งเหยิง แต่ก็ให้อธิบายวิธีล้างรายการในไฟล์ BCD ที่เก็บไว้ใน HDD บนพาร์ติชัน EFI
Poma

@Poma - สิ่งเดียวที่ฉันรู้ว่าถูกจัดเก็บไว้ในชิปที่เกี่ยวข้องกับ UEFI คือ Secure Boot keys หลักสูตรใดเป็นคุณสมบัติเพิ่มเติมของ Windows และไม่สามารถใช้ได้กับปัญหาที่คุณอธิบาย Apple เป็นที่รู้จักกันดีในการควบคุมฮาร์ดแวร์ให้เข้มงวดยิ่งขึ้นดังนั้นฮาร์ดแวร์ของ Apple ที่ควบคุมการกำหนดค่า EFI ของฮาร์ดแวร์ให้เข้มงวดยิ่งขึ้น
Ramhound

อย่างที่ฉันบอกไปมันเป็นระบบสองขาหนึ่งคือตัวชี้ส่วนอื่นคือตัวตักรายการตัวชี้ถูกเขียนบนชิป (ไม่ใช่บนฮาร์ดดิสก์) พาร์ติชัน FAT32 ซึ่งเป็นส่วนหนึ่งของ BIOS (ไม่ใช่ไบออส แต่อธิบายได้ง่ายกว่า) ส่วนที่สองคือตัวตักตั้งอยู่บนพาร์ติชัน EFI การทำความสะอาด bcdedit นั้นเกี่ยวข้องกับการล้างรายการตัวชี้ที่ซ้ำซ้อน / ล้าสมัยจาก BIOS
Vishukani
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.