解決混亂
在轉換完分區格式之後,在升級完電腦之後,在使用完虛擬光碟機之後,在安裝好多塊硬碟之後……,都有可能出現磁碟盤符發生混亂的現象,面對該現象你該如何“撥亂反正”呢?本文下面提供的幾則方法,相信會給你帶來一定的幫助。
禁止硬碟法
將兩塊硬碟設定好主從關係並正確連線,然後開機進入BIOS設定程式。在“StandardCMOSFeatures”選項中將從盤參數項設為“NONE”,禁止掉從盤。在“AdvancedBIOSFeatures”選項中設定主盤為啟動硬碟。保存設定後重新啟動,則硬碟盤符就會按照主、從盤的分區順序排列好了。這種方法的缺點是從盤只能在Windows下正常使用,在純DOS模式下無法識別從盤。
重新分區
設定好主從關係並正確連線硬碟後,使用任一款分區軟體將從盤全部劃為邏輯分區,則從盤的盤符就會按順序排在主盤後面。
Win9x
使用LetterAssigner
LetterAssigner能夠任意指定硬碟的盤符。啟動LetterAssigner,在LetterAssigner的工具列下方列出了“A~Z”26個盤符,其中黃色表示當前可以選擇使用,灰色表示當前不可使用。在主視窗中選中需要修改的盤符,然後從盤符欄中選擇修改後的盤符,執行“檔案→保存”命令,重新啟動計算機即可。
在操作過程中,如果需要放棄修改,只要執行“編輯→恢復原版”或者按下“Ctrl+Z”組合鍵即可。一般情況下系統盤的盤符不能修改,否則可能造成系統啟動錯誤。當修改系統盤的盤符時,LetterAssigner會彈出一個提示視窗。
系統設定法
Windows2000/XP/2003中在Windows2000/XP/2003中修改錯亂的盤符十分簡單,通過系統自帶的“磁碟管理”程式即可輕鬆搞定。點擊“開始→運行”,輸入diskmgmt.msc,即可啟動“磁碟管理”。下面我們來看看如何修改盤符。
第一步:如圖1所示,滑鼠右鍵點擊需要修改盤符的驅動器,選擇“更改驅動器號和路徑”命令。在更改驅動器的盤符時要注意系統盤的盤符是無法修改的,也不允許隨便修改,否則系統會啟動不了。第二步:在彈出的“更改驅動器號和路徑”對話框上按“更改”按鈕,在接下來的視窗中,為該驅動器指定一個新的驅動器號(盤符)即可。
小提示:如果你要指定的盤符已經被別的磁碟分區所占用了,可以先修改占用了盤符的該磁碟分區,將它指定為別的盤符,把該磁碟分區占用的盤符釋放出來。Windows9X/Me中通常只能從設定硬碟的主從跳線和BIOS的設定,或者藉助第三方工具LetterAssigner去調整硬碟的盤符。我們只要在程式中點選要改變的磁碟分區,然後在工具列上指定英文盤符,調整完後按“檔案→保存”儲存設定、重新啟動計算機,就OK了。要注意的是,LetterAssigner無法修改Windows系統所在的分區,當你做了不適當的調整時,LetterAssigner會出現警告信息提醒你,這時候你千萬不要強行修改。最後,若你使用的是記憶體仿真硬碟(虛擬硬碟),LetterAssigner可以用辨識“MS-RAMDRIVE”磁碟卷標的方式讓你也能指定虛擬磁碟的盤符。
Partition Magic
PartitionMagic(分區魔術師)可以對硬碟進行重新分區、格式化、複製分區等操作,使用它修改盤符的操作方法如下:
啟動PartitionMagic,滑鼠右擊需要修改的盤符,在快捷選單中選擇“高級→修改驅動器盤符”,然後在彈出的“更改驅動器盤符”視窗中選擇新的盤符,單擊“確定”按鈕,接著選擇“常規→套用改變”命令,按照提示重新啟動即可。
另:
(1)Windows2000/XPWindows2000/XP一般不會產生盤符交叉的問題,但前提是安裝Windows2000、XP時只安裝了一塊硬碟,安裝結束後才能掛上第二塊硬碟,假如是在添加第二塊硬碟後安裝Windows2000/XP的話,那么仍然會產生盤符交叉,而且這是永久性的,即使取下第二塊硬碟也無濟於事。不過,我們可以進入“控制臺→管理工具→計算機管理”視窗,在“計算機管理”下選擇“磁碟管理”,選中相應分區,從右鍵選單中執行“更改驅動器名和路徑”命令,在圖1對話框中點擊“更改”按鈕,然後重新指派一個驅動器號,再對其他分區重複執行該命令即可。
(2)Windows9x/Me有一個簡單的辦法可以解決這一問題,只須在BIOS設定程式中稍稍動些腦筋,將第一塊硬碟設定為“User”或“Auto”,而將第二塊硬碟設定為“NONE”,這樣儘管BIOS無法發現這塊硬碟,但Windows9x/Me的即插即用功能會自動檢測第二塊硬碟,並自動分配盤符,令人擔心的盤符交叉現象也就不復存在了。當然在純DOS模式下第二塊硬碟是看不到的。
(3)Fdisk可以在執行Fdisk命令分區時,選中“Changecurrentfixeddiskdrive”項,然後選中第二塊硬碟將所有分區刪除,再選擇“CreateExtendedDOSPartition”將所有空間都分配給擴展分區使用,接下來再進行分區。也就是說不創建主分區只創建擴展分區,最後格式化就行了。
屬性設定法
在Windows98或WindowsMe作業系統中,使用虛擬光碟機軟體時,很容易造成物理光碟機的盤符發生混亂,從而影響一些光碟程式的正常使用。為此筆者建議你按照下面的屬性設定法,來將物理光碟機的盤符修正過來:打開Windows系統的控制臺視窗,雙擊其中的“系統”圖示,在彈出的系統屬性設定界面中,單擊“設備管理器”選項,然後展開該選項頁面中的“CD-ROM驅動器”項目,並將發生盤符混亂的物理光碟機選中,再用滑鼠右鍵單擊之,從彈出的快捷選單中執行“屬性”命令;在隨後彈出的屬性設定頁面中,將“保留驅動器號”設定項處的“開始驅動器號”指定為物理光碟機原先使用的盤符;完成上面的設定後,單擊“確定”按鈕退出屬性設定界面,並將計算機重新啟動一下,這樣物理光碟機的盤符又恢復正常了。
盤符消失
故障是裝有Windows98作業系統的計算機需要驅動程式所致。當趕到多媒體教室一看,系統明明是WindowsXP,而這個系統是不需要隨身碟驅動程式的。打開“我的電腦”,果然如同事所說,裡面沒有隨身碟盤符。更換了USB接口後,仍不能解決問題。細心觀察,發現雖然“資源管理器”中沒有出現隨身碟盤符,但在系統托盤中卻有此硬體的標識。
於是,筆者在“資源管理器”視窗中的地址欄里輸入隨身碟盤符,當回車後,卻彈出了“本次操作由於這台計算機的限制而被取消,請與您的管理員聯繫”的對話框。是不是該盤符被限制了呢?
解決辦法:右擊“我的電腦”,在彈出的快捷選單中選擇“管理”命令,進入到“計算機管理”視窗,依次展開“存儲/可移動存儲”,單擊“磁碟管理”一項,在視窗右側,看到隨身碟運行狀態為“良好”,這說明隨身碟沒問題。右擊該視窗中的隨身碟盤符,選擇其快捷選單的“更改驅動器名和路徑”命令,在出現的對話框中,點擊〔更改〕按鈕,為其選擇一個未被使用的盤符。確定之後退出。重新打開“我的電腦”,久違的隨身碟盤符出現了。至此問題得到解決。
實用大全
裝扮盤符
每次打開“我的電腦”或“資源管理器”,驅動器形狀的盤符就映入我們的眼帘,時間一長,就容易產生厭倦的感覺。我們能不能給它改變一下,讓這些灰色的盤符變得更個性化一些?跟著下面做就OK。第一步:我們先找到後綴名為“ico”或“bmp”的漂亮小圖示,圖示不能太大了,最大只能是32×32像素,將它放置在需要修改盤符的磁碟分區下。這裡假設要修改盤符的磁碟分區為D糟、小圖示的檔案名稱是cpcw.ico。
第二步:打開記事本,在裡面寫上以下的內容:
open=cpcwsoftware.exeicon=cpcw.ico
第三步:將這個檔案保存在D糟根目錄下,保存類型為“所有檔案”,檔案名稱為Autorun.inf。重新啟動電腦,再打開“我的電腦”或“資源管理器”你就會發現系統帶給你全新的盤符,全新的感覺!
如果你對圖示不滿意,只要使用新的小圖示替換掉那個小圖示即可(檔案名稱必須相同),不需要修改Autorun.inf。
小知識:Autorun.inf是一個文本形式的配置檔案,我們可以用文本編輯軟體進行編輯,它只能位於驅動器的根目錄下。這個檔案包含了需要自動運行的命令,如改變的驅動器圖示、運行的程式檔案、可選快捷選單等內容。Autorun.inf檔案的第二行是指要自動運行的程式名稱,這個我們不用管它,而第三行“icon=cpcw.ico”才是我們自定義盤符圖示的內容,我們可以在驅動器的根目錄下放多個小圖示,想使用哪個圖示作為盤符圖示的內容,只要更改“icon=圖示的名稱”即可。
映射盤符
要將經常訪問的本地磁碟資料夾變為磁碟,可以使用開始-運行-cmd的Subst命令。在WindowsXP系統中,該命令程式檔案Subst.exe存放在\Windows\System32資料夾中(在Windows98/2000中也有這個命令),其功能是將路徑與驅動器號關聯,即以磁碟驅動器符代替資料夾名稱,格式為:Subst[drive1:[drive2:]path]。
其中,“Drive1:”是指定要指派路徑的虛擬驅動器,“[drive2:]path”指定物理驅動器和要指派給虛擬驅動器的路徑。比如SubstF:d:\mydoc命令,即是把d:\mydoc資料夾虛擬成F驅動器。之後,對F盤的操作實際是對d:\mydoc資料夾的操作。注意,新盤符不能與已有的盤符重複,而且盤符只能由單個字母組成。該命令執行後,直到關閉電腦前一直有效。如果想每次開機即把d:\mydoc資料夾虛擬成F驅動器,可以把substF:d:\mydoc命令加到C:\AUTOEXEC.BAT檔案中。此外,如果想在關閉電腦前即刪除虛擬的盤符,可在cmd下執行Subst F:/D命令即可。
添加盤符
有時在Windows2000/XP/2003插上移動硬碟或快閃記憶體時系統沒反應,在“我的電腦”中找不到它們的盤符。這時候我們就需要手工給它們添加盤符。啟動“磁碟管理”程式,在上面找到新安裝的沒有盤符的驅動器,用滑鼠右鍵點擊它,選擇“更改驅動器號和路徑”命令,在彈出的更改驅動器號和路徑對話框上按“添加”按鈕,在接下來的視窗中,為該驅動器指定一個新的驅動器號(盤符)即可。有趣的是,如果曾用PQMagicc隱藏過一個分區,只要在“磁碟管理”對話框中給磁碟分配一個盤符,這樣這個分區就可以看到了。
刪除盤符
很多虛擬光碟機軟體如果卸載不當,就會在系統中留下它創建的虛擬光碟機的盤符,就算你在控制臺里卸載掉跟它相關的設備,仍然沒有用。最好的方法就是重新安裝一個同樣版本的虛擬光碟機軟體來“禁用/刪除”殘留的虛擬光碟機盤符。
正確的卸載虛擬光碟機且不留下多餘無用盤符的方法是,先禁用了所有的虛擬光碟機,關閉駐留後台的虛擬光碟機,然後再卸載虛擬光碟機軟體,這樣就不會留有殘餘的虛擬光碟機盤符。
在WindowsXP中修改驅動器盤符
修改盤符
當您向計算機中添加驅動器(如額外的硬碟驅動器、CD驅動器或與驅動器相對應的存儲設備)時,Windows將自動為其分配一個盤符。儘管如此,這種分配方式可能無法滿足您的系統需求,舉例來說,您可能已經將Windows分配給一個新增驅動器的盤符映射到了一個網路驅動器上。當您需要對驅動器盤符進行修改時,請依次執行下列操作步驟:
右鍵單擊MyComputer(我的電腦),並選擇Manage(管理)。
在ComputerManagement(計算機管理)視窗中,單擊DiskManagement(磁碟管理)。在右側窗格中,您將看到系統中的驅動器列表。其中,CD-ROM驅動器被列在該窗格的最底部。
右鍵單擊您所希望修改的驅動器或設備,並在隨後出現的快捷選單中選擇ChangeDriveLetterandPaths(修改驅動器盤符與路徑)。
單擊Change(修改),點擊Assignthefollowingdriveletter(分配以下驅動器盤符)並選擇您希望分配的驅動器盤符,之後單擊OK(確定)。
這種方式將不允許您修改引導驅動器或系統驅動器盤符。此外,許多基於MS-DOS和Windows的應用程式都會引用一個特定的驅動器盤符(例如環境變數)。如果您修改了相應的驅動器盤符,那么,這些程式將有可能無法正常工作。
修改原始碼
unituMain;
interface
uses
Windows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,
Dialogs,StdCtrls,ExtCtrls;
type
TMainfrm=class(TForm)
btn1:TButton;
lbledt1:TLabeledEdit;
lbledt2:TLabeledEdit;
mmo1:TMemo;
procedurebtn1Click(Sender:TObject);
private
{Privatedeclarations}
public
{Publicdeclarations}
end;
var
Mainfrm:TMainfrm;
_GetVolumeNameForVolumeMountPoint:function(lpszVolumeMountPoint:LPCSTR;
lpszVolumeName:LPSTR;cchBufferLength:DWORD):BOOL;stdcall;
_SetVolumeMountPoint:function(lpszVolumeMountPoint:LPCSTR;
lpszVolumeName:LPCSTR):BOOL;stdcall;
_DeleteVolumeMountPoint:function(lpszVolumeMountPoint:LPCSTR):BOOL;stdcall;
implementation
{$R*.dfm}
functionGetVolumeNameForVolumeMountPoint(lpszVolumeMountPoint:LPCSTR;
lpszVolumeName:LPSTR;cchBufferLength:DWORD):BOOL;
var
Kernel32:THandle;
begin
ifnotAssigned(_GetVolumeNameForVolumeMountPoint)then
begin
Kernel32:=GetModuleHandle(PChar(kernel32.dll);
ifKernel320then@_GetVolumeNameForVolumeMountPoint。
GetProcAddress(Kernel32,PChar(GetVolumeNameForVolumeMountPointA );end。
ifAssigned(_GetVolumeNameForVolumeMountPoint)then。
Result:=_GetVolumeNameForVolumeMountPoint(lpszVolumeMountPoint,lpszVolumeName,cchBufferLength);else。
Result:=False;end。
functionSetVolumeMountPoint(lpszVolumeMountPoint:LPCSTR;lpszVolumeName:LPCSTR):BOOL;var。
Kernel32:THandle;begin。
ifnotAssigned(_SetVolumeMountPoint)then;begin。
Kernel32:=GetModuleHandle(PChar(kernel32.dll);ifKernel320then。
@_SetVolumeMountPoint:=GetProcAddress(Kernel32,PChar(SetVolumeMountPointA);end。
_SetVolumeMountPoint(lpszVolumeMountPoint,lpszVolumeName)。
{ifAssigned(_SetVolumeMountPoint)then。
Result:=_SetVolumeMountPoint(lpszVolumeMountPoint,lpszVolumeName);else。
Result:=False;end。
functionDeleteVolumeMountPoint(lpszVolumeMountPoint:LPCSTR):BOOL;var。
Kernel32:THandle;begin。
ifnotAssigned(_DeleteVolumeMountPoint)then;begin。
Kernel32:=GetModuleHandle(PChar(kernel32.dll)。
ifKernel320then@_DeleteVolumeMountPoint:=GetProcAddress(Kernel32,PChar(DeleteVolumeMountPointA);end。
ifAssigned(_DeleteVolumeMountPoint)then。
Result:=_DeleteVolumeMountPoint(lpszVolumeMountPoint);else。
Result:=False;end。
procedureTMainfrm.btn1Click(Sender:TObject);var。
VolumeName:array[0..MAX_PATH]ofChar;begin。
GetVolumeNameForVolumeMountPoint(PChar(lbledt1.Text),VolumeName,MAX_PATH);//獲取制定分區的GUID。
DeleteVolumeMountPoint(PChar(lbledt1.Text));//刪除制定分區盤符。
SetVolumeMountPoint(PChar(lbledt2.Text),VolumeName);//根據獲取的GUID設定新的盤符end。