BCDEDIT相關知識

          最近一直在WIN7下進行驅動開發,經常要使用BCDEDIT對啓動項、系統調試等進行設置,一直對BCDEDIT都是一知半解。現在查相關資料進行知識學習。

         Win7的引導系統中,微軟引入了一種全新的boot loader架構叫 windows boot manager (bootmgr.exe). 之前的 xp 的 ntldr 架構不同。

        Ntldr 初始化硬件設備、建立內存空間映射圖、將系統的軟硬環境設置成合適的狀態,爲最終調用操作系統內核準備好正確的環境。

      win7的新架構可以實現: 完整的硬件獨立,讓win7的啓動引導更迅速安全。將之前boot.ini管理內容交給新的BCD(boot configuration data ),相應的編輯工具爲BCDEdit(BCDEdit.exe),來管理啓動設置。

         在基於EFI的計算機中,更沒有boot.ini,在基於EFI的系統中,啓動選項被存儲在主板的存儲器中。此時要修改啓動選項,就要使用BCDEdit,甚至修改boot.ini的方式也不能使用原來的文件編輯器。

       另一方面, win7中提供了WMI調用BCD類,通過它可以用編程的方式修改BCD數據。

      注意:EFI我也只是聽說過而已,工資做底層的那些老提這個話題; 以前也接觸過WMI在vista上,例如將驅動中磁盤的使用量,通過WMI顯示在托盤中。

        BCDEdit是一個命令行工具,運行文件bcdedit.exe位於"\Windows\System32"目錄下。如果要執行BCDEdit,首先進入命令行窗口,並將操作用戶的權限提升爲管理權限。在命令行輸入 "bcdedit"即可。

      在BCD中,每個對象均有唯一的GUID(Globally Unique Identifier),入系統的每塊硬盤,每個分區的GUID均不同。

     在BCD中,硬盤或者分區的GUID可分爲如下幾類:

    {legacy} :存在上一代windows系統如:windows xp的硬盤或者分區。 // legacy遺留。

    {defaultl}:默認操作系統所在硬盤或分區。

    {c34b751a-ff09-11d9-9e6e-003048237}:類似於這個格式指安裝了操作系統的硬盤或者分區。

    bcdedit  /?  顯示命令幫助

   使用BCDEdit修改啓動菜單選項

           作爲一種良好的操作習慣,對vista和win7的啓動選項進行任何操作的時候,首先要對BCD的啓動選項進行備份,bcdedit /export  "D:\BCD Backup\Bcd Backup " 恢復 bcdedit  /import "D:\BCD Backup\Bcd Bckup".

     BCDEdit修改啓動項的常用命令:

     bcdedit /set {legacy} Description "Windows xp professional sp2"   :修改上一代操作系統在啓動菜單中的顯示內容。

   bcdedit  /default {current}  將當前啓動硬盤設置爲默認啓動系統;

   bcdedit /timeout 15  將默認的啓動菜單顯示時間更改爲15秒。

   bcdedit /copy  {current} /d DebugEntry        

  解釋: 使用/bcdedit /copy 命令複製引導入口;/copy 複製存儲中的項。 /d命令指定新的入口的名稱,必須用雙引號括起來。

 個人的理解: 拷貝當前的引導入口,作爲新的入口,並修改入口名。

               在boot.ini中可以複製粘貼某個入口,然後將新的入口友好名,該爲易識別的名稱。如:

              multi(0)disk(0)rdisk(0)partition(3)\WINDOWS="Microsoft  XP" /fastdetect 
              multi(0)disk(0)rdisk(0)partition(3)\WINDOWS="XP   - new" /fastdetect   加上相應的參數等,入/baudrate = 115200 , /debug  /debugport  = com1
 

   

    bcdedit /debug  DebugEntry的guid   on 

    解釋:/debug  啓用或者禁止操作系統項的內核調試,on 表示啓用 根據guid進行啓用。
   bcdedit /dbgsettings   serial baudrate:115200  debugport:1  設置全局調試程序的參數;
   bcdedit /displayorder  {current} {GUID} 給啓動菜單排序。

 

  

  

 

 

  

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章