盤符
盤符
盤符是DOS、WINDOWS系統對於磁碟存儲設備的標識符。一般使用26個英文字元加上一個冒號:來標識。由於歷史的原因,早期的PC機一般裝有兩個軟盤驅動器,所以,"A:"和"B:"這兩個盤符就用來表示軟碟機,早期的軟盤尺寸有8寸、5寸、3.5寸等。而硬碟設備就是從字母C:開始,一直到Z:。對於UNIX,LINUX系統來說,則沒有盤符的概念,但是目錄和路徑的概念是相同的。
盤符
屏蔽硬碟法
將兩塊硬碟設置好主從關係並正確連接,然後開機進入BIOS設置程序。在“Standard CMOS Features”選項中將從盤參數項設為“NONE”,屏蔽掉從盤。在“Advanced BIOS Features”選項中設置主盤為啟動硬碟。保存設置后重新啟動,則硬碟盤符就會按照主、從盤的分區順序排列好了。這種方法的缺點是從盤只能在Windows下正常使用,在純DOS模式下無法識別從盤。
重新分區
設置好主從關係並正確連接硬碟后,使用任一款分區軟體將從盤全部劃為邏輯分區,則從盤的盤符就會按順序排在主盤後面。(陳會安)
Win 9x
使用Letter Assigner
Letter Assigner能夠任意指定硬碟的盤符。啟動Letter Assigner,在Letter Assigner的工具欄下方列出了“A~Z”26個盤符,其中黃色表示當前可以選擇使用,灰色表示當前不可使用。在主窗口中選中需要修改的盤符,然後從盤符欄中選擇修改後的盤符,執行“文件→保存”命令,重新啟動計算機即可。
在操作過程中,如果需要放棄修改,只要執行“編輯→恢復原版”或者按下“Ctrl+Z”組合鍵即可。一般情況下系統盤的盤符不能修改,否則可能造成系統啟動錯誤。當修改系統盤的盤符時,Letter Assigner會彈出一個提示窗口。(LanFu)
系統設置法
Windows2000/XP/2003中
在Windows2000/XP/2003中修改錯亂的盤符十分簡單,通過系統自帶的“磁碟管理”程序即可輕鬆搞定。點擊“開始→運行”,輸入diskmgmt.msc,即可啟動“磁碟管理”。下面我們來看看如何修改盤符。
第一步:如圖1所示,滑鼠右鍵點擊需要修改盤符的驅動器,選擇“更改驅動器號和路徑”命令。在更改驅動器的盤符時要注意系統盤的盤符是無法修改的,也不允許隨便修改,否則系統會啟動不了。
第二步:在彈出的“更改驅動器號和路徑”對話框上按“更改”按鈕,在接下來的窗口中,為該驅動器指定一個新的驅動器號(盤符)即可。
小提示:如果你要指定的盤符已經被別的磁碟分區所佔用了,可以先修改佔用了盤符的該磁碟分區,將它指定為別的盤符,把該磁碟分區佔用的盤符釋放出來。
Windows9X/Me中
Windows9X/Me中通常只能從設置硬碟的主從跳線和BIOS的設置,或者藉助第三方工具Letter Assigner去調整硬碟的盤符。我們只要在程序中點選要改變的磁碟分區(如圖2),然後在工具欄上指定英文盤符,調整完后按“文件→保存”儲存設置、重新啟動計算機,就 OK 了。要注意的是,Letter Assigner無法修改Windows系統所在的分區,當你做了不適當的調整時,Letter Assigner會出現警告信息提醒你,這時候你千萬不要強行修改。最後,若你使用的是內存模擬硬碟 (虛擬硬碟),Letter Assigner可以用辨識“MS-RAMDRIVE”磁碟卷標的方式讓你也能指定虛擬磁碟的盤符。
PartitionMagic(分區魔術師)可以對硬碟進行重新分區、格式化、複製分區等操作,使用它修改盤符的操作方法如下:
啟動PartitionMagic,滑鼠右擊需要修改的盤符,在快捷菜單中選擇“高級→修改驅動器盤符”,然後在彈出的“更改驅動器盤符”窗口中選擇新的盤符,單擊“確定”按鈕,接著選擇“常規→應用改變”命令,按照提示重新啟動即可。
另:
(1)Windows 2000/XP
Windows 2000/XP一般不會產生盤符交叉的問題,但前提是安裝Windows 2000、XP時只安裝了一塊硬碟,安裝結束后才能掛上第二塊硬碟,假如是在添加第二塊硬碟后安裝Windows 2000/XP的話,那麼仍然會產生盤符交叉,而且這是永久性的,即使取下第二塊硬碟也無濟於事。
不過,我們可以進入“控制面板→管理工具→計算機管理”窗口,在“計算機管理”下選擇“磁碟管理”,選中相應分區,從右鍵菜單中執行“更改驅動器名和路徑”命令,在圖1對話框中點擊“更改”按鈕,然後重新指派一個驅動器號,再對其他分區重複執行該命令即可。
(2)Windows 9x/Me
有一個簡單的辦法可以解決這一問題,只須在BIOS設置程序中稍稍動些腦筋,將第一塊硬碟設置為“User”或“Auto”,而將第二塊硬碟設置為“NONE”,這樣儘管BIOS無法發現這塊硬碟,但Windows 9x/Me的即插即用功能會自動檢測第二塊硬碟,並自動分配盤符,令人擔心的盤符交叉現象也就不復存在了。當然在純DOS模式下第二塊硬碟是看不到的。
(3)Fdisk
我們可以在執行Fdisk命令分區時,選中“Change current fixed disk drive”項,然後選中第二塊硬碟將所有分區刪除,再選擇“Create Extended DOS Partition”將所有空間都分配給擴展分區使用,接下來再進行分區。也就是說不創建主分區只創建擴展分區,最後格式化就行了。
屬性設置法
在Windows 98或Windows Me操作系統中,使用虛擬光碟機軟體時,很容易造成物理光碟機的盤符發生混亂,從而影響一些光碟程序的正常使用。為此筆者建議你按照下面的屬性設置法,來將物理光碟機的盤符修正過來:
打開Windows系統的控制面板窗口,雙擊其中的“系統”圖標,在彈出的系統屬性設置界面中,單擊“設備管理器”選項,然後展開該選項頁面中的“CD-ROM驅動器”項目,並將發生盤符混亂的物理光碟機選中,再用滑鼠右鍵單擊之,從彈出的快捷菜單中執行“屬性”命令;
在隨後彈出的屬性設置頁面中,將“保留驅動器號”設置項處的“開始驅動器號”指定為物理光碟機原先使用的盤符;完成上面的設置后,單擊“確定”按鈕退出屬性設置界面,並將計算機重新啟動一下,這樣物理光碟機的盤符又恢復正常了。
故障是裝有Windows 98操作系統的計算機需要驅動程序所致。當趕到多媒體教室一看,系統明明是Windows XP,而這個系統是不需要U盤驅動程序的。
打開“我的電腦”,果然如同事所說,裡面沒有U盤盤符。更換了USB介面后,仍不能解決問題。細心觀察,發現雖然“資源管理器”中沒有出現U盤盤符,但在系統托盤中卻有此硬體的標識。
於是,筆者在“資源管理器”窗口中的地址欄里輸入U盤盤符,當回車后,卻彈出了“本次操作由於這台計算機的限制而被取消,請與您的管理員聯繫”的對話框。是不是該盤符被限制了呢?
解決辦法:右擊“我的電腦”,在彈出的快捷菜單中選擇“管理”命令,進入到“計算機管理”窗口,依次展開“存儲/可移動存儲”,單擊“磁碟管理”一項,在窗口右側,看到U盤運行狀態為“良好”,這說明U盤沒問題。右擊該窗口中的U盤盤符,選擇其快捷菜單的“更改驅動器名和路徑”命令,在出現的對話框中,點擊〔更改〕按鈕,為其選擇一個未被使用的盤符。確定之後退出。重新打開“我的電腦”,久違的U盤盤符出現了。至此問題得到解決。
每次打開“我的電腦”或“資源管理器”,驅動器形狀的盤符就映入我們的眼帘,時間一長,就容易產生厭倦的感覺。我們能不能給它改變一下,讓這些灰色的盤符變得更個性化一些?跟著下面做就OK。
第一步:我們先找到後綴名為“ico”或“bmp”的漂亮小圖標,圖標不能太大了,最大隻能是32×32像素,將它放置在需要修改盤符的磁碟分區下。這裡假設要修改盤符的磁碟分區為D盤、小圖標的文件名是cpcw.ico。
第二步:打開記事本,在裡面寫上以下的內容:
[AutoRun]
open=cpcwsoftware.exe
icon=cpcw.ico
第三步:將這個文件保存在D盤根目錄下,保存類型為“所有文件”,文件名為Autorun.inf。重新啟動電腦,再打開“我的電腦”或“資源管理器”你就會發現系統帶給你全新的盤符,全新的感覺!
如果你對圖標不滿意,只要使用新的小圖標替換掉那個小圖標即可(文件名必須相同),不需要修改Autorun.inf。
小知識:Autorun.inf是一個文本形式的配置文件,我們可以用文本編輯軟體進行編輯,它只能位於驅動器的根目錄下。這個文件包含了需要自動運行的命令,如改變的驅動器圖標、運行的程序文件、可選快捷菜單等內容。Autorun.inf文件的第二行是指要自動運行的程序名稱,這個我們不用管它,而第三行“icon=cpcw.ico”才是我們自定義盤符圖標的內容,我們可以在驅動器的根目錄下放多個小圖標,想使用哪個圖標作為盤符圖標的內容,只要更改“icon=圖標的名稱”即可。
要將經常訪問的本地磁碟文件夾變為磁碟,可以使用開始-運行-cmd的Subst命令。在Windows XP系統中,該命令程序文件Subst.exe存放在\Windows\System32文件夾中(在Windows 98/2000中也有這個命令),其功能是將路徑與驅動器號關聯,即以磁碟驅動器符代替文件夾名稱,格式為:Subst [drive1: [drive2:]path]。
其中,“Drive1:”是指定要指派路徑的虛擬驅動器,“[drive2:]path”指定物理驅動器和要指派給虛擬驅動器的路徑。比如Subst F: d:\mydoc命令,即是把d:\mydoc文件夾虛擬成F驅動器。之後,對F盤的操作實際是對d:\mydoc文件夾的操作。注意,新盤符不能與已有的盤符重複,而且盤符只能由單個字母組成。該命令執行后,直到關閉電腦前一直有效。如果想每次開機即把d:\mydoc文件夾虛擬成F驅動器,可以把subst F: d:\mydoc命令加到C:\AUTOEXEC.BAT文件中。此外,如果想在關閉電腦前即刪除虛擬的盤符,可在cmd下執行Subst F: /D命令即可。
有時在Windows 2000/XP/2003插上移動硬碟或快閃記憶體時系統沒反應,在“我的電腦”中找不到它們的盤符。這時候我們就需要手工給它們添加盤符。啟動“磁碟管理”程序,在上面找到新安裝的沒有盤符的驅動器,用滑鼠右鍵點擊它,選擇“更改驅動器號和路徑”命令,在彈出的更改驅動器號和路徑對話框上按“添加”按鈕,在接下來的窗口中,為該驅動器指定一個新的驅動器號(盤符)即可。有趣的是,如果曾用PQMagicc隱藏過一個分區,只要在“磁碟管理”對話框中給磁碟分配一個盤符,這樣這個分區就可以看到了。
很多虛擬光碟機軟體如果卸載不當,就會在系統中留下它創建的虛擬光碟機的盤符,就算你在控制面板里卸載掉跟它相關的設備,仍然沒有用。最好的方法就是重新安裝一個同樣版本的虛擬光碟機軟體來“禁用/刪除”殘留的虛擬光碟機盤符。
正確的卸載虛擬光碟機且不留下多餘無用盤符的方法是,先禁用了所有的虛擬光碟機,關閉駐留後台的虛擬光碟機,然後再卸載虛擬光碟機軟體,這樣就不會留有殘餘的虛擬光碟機盤符。
在Windows XP中修改驅動器盤符
當您向計算機中添加驅動器(如額外的硬碟驅動器、CD驅動器或與驅動器相對應的存儲設備)時, Windows將自動為其分配一個盤符。儘管如此, 這種分配方式可能無法滿足您的系統需求, 舉例來說, 您可能已經將Windows分配給一個新增驅動器的盤符映射到了一個網路驅動器上。當您需要對驅動器盤符進行修改時, 請依次執行下列操作步驟:
右鍵單擊My Computer(我的電腦), 並選擇Manage(管理)。
在Computer Management(計算機管理)窗口中, 單擊Disk Management(磁碟管理)。在右側窗格中, 您將看到系統中的驅動器列表。其中, CD-ROM驅動器被列在該窗格的最底部。
右鍵單擊您所希望修改的驅動器或設備, 並在隨後出現的快捷菜單中選擇Change Drive Letter and Paths(修改驅動器盤符與路徑)。
單擊Change(修改), 點擊Assign the following drive letter(分配以下驅動器盤符)並選擇您希望分配的驅動器盤符, 之後單擊OK(確定)。
這種方式將不允許您修改引導驅動器或系統驅動器盤符。此外, 許多基於MS-DOS和Windows的應用程序都會引用一個特定的驅動器盤符(例如環境變數)。如果您修改了相應的驅動器盤符, 那麼, 這些程序將有可能無法正常工作。
unit uMain;
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;
procedure btn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
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}
function GetVolumeNameForVolumeMountPoint(lpszVolumeMountPoint: LPCSTR;
lpszVolumeName: LPSTR; cchBufferLength: DWORD): BOOL;
var
Kernel32: THandle;
begin
if not Assigned(_GetVolumeNameForVolumeMountPoint) then
begin
Kernel32 := GetModuleHandle(PChar( ' kernel32.dll ' ));
if Kernel32 0 then @_GetVolumeNameForVolumeMountPoint :=
GetProcAddress(Kernel32, PChar( ' GetVolumeNameForVolumeMountPointA ' ));
end;
if Assigned(_GetVolumeNameForVolumeMountPoint) then
Result := _GetVolumeNameForVolumeMountPoint(lpszVolumeMountPoint, lpszVolumeName, cchBufferLength)
else
Result := False;
end;
function SetVolumeMountPoint(lpszVolumeMountPoint: LPCSTR; lpszVolumeName: LPCSTR): BOOL;
var
Kernel32: THandle;
begin
if not Assigned(_SetVolumeMountPoint) then
begin
Kernel32 := GetModuleHandle(PChar( ' kernel32.dll ' ));
if Kernel32 0 then
@_SetVolumeMountPoint := GetProcAddress(Kernel32, PChar( ' SetVolumeMountPointA ' ));
end;
_SetVolumeMountPoint(lpszVolumeMountPoint, lpszVolumeName);
{if Assigned(_SetVolumeMountPoint) then
Result :=_SetVolumeMountPoint(lpszVolumeMountPoint, lpszVolumeName)
else
Result := False; }
end;
function DeleteVolumeMountPoint(lpszVolumeMountPoint: LPCSTR): BOOL;
var
Kernel32: THandle;
begin
if not Assigned(_DeleteVolumeMountPoint) then
begin
Kernel32 := GetModuleHandle(PChar( ' kernel32.dll ' ));
if Kernel32 0 then @_DeleteVolumeMountPoint := GetProcAddress(Kernel32, PChar( ' DeleteVolumeMountPointA ' ));
end;
if Assigned(_DeleteVolumeMountPoint) then
Result := _DeleteVolumeMountPoint(lpszVolumeMountPoint)
else
Result := False;
end;
procedure TMainfrm.btn1Click(Sender: TObject);
var
VolumeName: array [0..MAX_PATH] of Char;
begin
GetVolumeNameForVolumeMountPoint(PChar(lbledt1.Text), VolumeName, MAX_PATH);//獲取制定分區的GUID
DeleteVolumeMountPoint(PChar(lbledt1.Text));//刪除制定分區盤符
SetVolumeMountPoint(PChar(lbledt2.Text), VolumeName);//根據獲取的GUID設置新的盤符
end;