談論Vista版本以後關於多系統引導方面的改進

2021-04-15 20:07:52 字數 3083 閱讀 7455

很多人在安裝了vista之後再安裝2008後會出現其他系統引導丟失的情況,我也不例外,網上很多的做法是用安裝光碟進行修復,這種做法有點類似於以前的老版本的做法,如果是xp或者2003的話可能修復時間會很長,也很可能會給你帶來不必要的麻煩。而實際上從vista版本以後在多系統的啟動方面有了很大的改良,我們不妨看看這個新亮點。

其實我也是從安裝2008以後丟失了原來的系統才注意這一點的,原來我的系統組合為xp(c盤)/vista(g盤)/2003(f盤),出了2008之後,我就想刪掉原來的xp,新的組合為2008/vista/2003,安裝之前我就像原來的做法一樣備份了c盤下面所有的啟動檔案,裝好之後再拷貝回去發現並不管用。後來才發現vista和2008的引導模式已經改變。

在2003以前的版本中,開機過程大致如下:

1、電源自檢程式開始執行

2、主引導記錄被裝入記憶體,並且程式開始執行

3、活動分割槽的引導扇區被裝入記憶體

4、ntldr從引導扇區被裝入並初始化

5、ntldr讀boot.ini檔案

然後就是多系統的選擇介面了。

而在新版本的系統中,管理多系統有乙個類似於資料庫的檔案-bcd,存放著多個系統的相關資訊。機器硬體初始化之後會讀取這個檔案的儲存配置資訊,然後再列出多系統的啟動選單。然後我們就看到了多系統的選擇列表 了。在管理這個bcd資料庫上有乙個系統自帶的很好的工具:bcdedit.exe(系統目錄下)

執行bcdedit /?你可以仔細的讀一下幫助文件,為了減少篇幅我就不列出來了。

下面我們從實際的應用需求出發,如何找回我丟失的可愛的vista系統^_^

首先新建一項新的空啟動資訊,命名為my vista(實際上就是列表的顯示名稱):

the entry  was successfully created.

此時輸入bcdedit /enum all/*檢視所有資訊*/ 會多出來這麼一條資訊:

windows boot loader

-------------------

identifier              

description             my vista

我們需要注意它的標識,它是我們後面配置的基礎,就像人的身份證一樣。現在它還是一條空資訊,資訊還不完整,需要進一步設定,這裡可以用 /set 指令,要設定具體的引數都是通過這個指令來完成的。假定我的vista分割槽在g盤,可以這麼配置

c:usersadministrator

>

bcdedit 

/set

device partition=g:

the operation completed successfully.

配置具體的啟動檔案:

c:usersadministrator

>

bcdedit 

/set

path windowssystem32winload.exe

the operation completed successfully.

在vista或者2008下面的boot資料夾下面有多國的啟動語言,這裡我們選擇

c:/users/administrator>bcdedit /set locale zh-cn

the operation completed successfully.

然後就是一些附屬資訊(沒有測試過這些是否為必要資訊,這裡我就不貼上執行結果了)

bcdedit /set systemroot /windows

bcdedit /set osdevice partiton=g:

這樣乙個新的引導資訊就配置完了。

但是當你重啟之後發現並沒有生效,那是因為這條啟動資訊並沒有載入到啟動管理器上,所以我們還需對它進行載入,載入的指令為 /displayorder 從名稱都可以看出是配置啟動順序的,它下面四種引數 1、id佇列 2、/addfirst 3、/addlast 4、/remove,後三種都很好理解,第一種其實上就是把所有列出的id按照順序顯示在螢幕上,沒有排列將不顯示。這裡我們只是新增一條啟動資訊:

c:usersadministrator

>

bcdedit 

/displayorder  

/addlast

the operation completed successfully.

這時啟動選單上就會有這條啟動選單了,你可以重啟試試看喲^_^,如果你想改變他們的排列順序,按照上述/displayorder的第一種方式進行更改

如: bcdedit /displayorder

載入老版本的系統

細心的觀眾可能會發現上述有乙個特別的標識,那就是ntldr,它實際上就是以前老版本的windows系統的統一排程了,如果我們的多系統裡面有老版本的系統的話,那麼我們直接把他新增到啟動列表就可以了

bcdedit 

/displayorder  

/addlast

可以設定它顯示的名稱為「老版本的系統」:bcdedit /set /d "老版本的系統"。他只是版本低於vista的版本的乙個集合,至於具體要啟動什麼系統,可以在c分割槽下面的boot.ini檔案裡面配置(和原來的老系統一樣。)

關於備份

首先建立乙個空的庫,例如我們要備份到d:/bootdata資料夾下面

c:usersadministrator

>

bcdedit 

/createstore d:/bootdata/bcd

the operation completed successfully.

然後將資料匯出

c:/users/administrator>bcdedit /export "d:/bootdata/bcd"

the operation completed successfully.

如果要恢復原來的配置可以這麼寫

c:usersadministrator

>

bcdedit 

/import 

"d:/bootdata/bcd

"the operation completed successfully.

到此為止你是否發現方便了很多呢。

Python 多版本以及pip共存

在工作中,很可能不同的應用需要用到不同的python的版本,還有就是,經常存在這種情況 當開發生產執行完畢後,測試環境沒問題,一到別的機器就各種問題 我把它稱為 包干擾 這裡提供一種思路,我就是這麼做的 先把電腦的上python的全刪了,然後根據需要,選擇不同的2.x與3.x的安裝,這裡推薦相容性更...

CI框架3 0版本以後,前後臺分離的方法。

筆者認為,ci框架官方其實並沒有考慮這個前後臺分離的問題,所以沒有官方的分離方法。而且,2.0版本的分離,也被官方認為這是乙個bug。所以在前後臺分離這個問題上,其實並不如thinkphp框架。在ci框架2.0版本時的,大多數人認為可以這樣做,前後臺分離是可以直接在controller下,分admi...

關於iOS7以後版本企業發布問題

大家都知道,蘋果在發布7.1以後,不打個招呼就把企業發布方式給換掉了 譴責一下 以前普通伺服器 web頁面 ipa plist就可以搞定,現在已經不行了。這裡重點說一下會遇到的問題以及解決方法。1 由於我們現在需要的是https加密型別的web頁面,所以我們需要購買證書。這裡要注意的是自己頒發的證書...