複製鏈接
請複製以下鏈接發送給好友

盤符

鎖定
盤符(英語:drive letter,港台稱為磁碟機號 [2]  )是DOS、WINDOWS系統對於磁盤存儲設備的相對標識符。一般使用26個英文字符加上一個冒號:來標識。由於歷史的原因,早期的PC機一般裝有兩個軟盤驅動器,所以,A:和B:這兩個盤符就用來表示軟驅,早期的軟盤尺寸有8寸、5寸、3.5寸等。而硬盤設備就是從字母C:開始,一直到Z:。對於UNIXLINUX系統來説,則沒有盤符的概念,但是目錄和路徑的概念是相同的。
中文名
盤符
外文名
drive letter
用    途
磁盤存儲設備的標識符
用於系統
DOS、WINDOWS
別    名
驅動器
格    式
一個字母,後面帶一個半角冒號

盤符簡介

在計算機中,盤符分配(drive letter assignment)是一個分配字母標識符給卷(volume)的方法。和UNIX的掛載點(mount points)概念不同,當卷被命名並被隨意定位到一個單一的分層的命名空間(namespace),盤符分配允許多個最高級別的命名空間。因此磁盤分配是一個使用字母來命名文件系統根目錄的方法,每個卷有一個獨立的tree(或者,對於非分層文件系統而言,是一個獨立的文件列表)。 [3] 

盤符應用

這些操作系統使用了盤符分配:
  • CP/M、MP/M、FlexOS、Concurrent CP/M、Concurrent DOS、Multiuser DOS、System Manager、4680 OS、4690 OS、S5-DOS/MT、REAL/32、REAL/NG、Personal CP/M、S5-DOS、DOS Plus、PalmDOS、DR-DOS
  • GEMDOS、Atari TOS、MiNT、MagiC、MultiTOS、EmuTOS
  • AMSDOS
  • MSX-DOS
  • 86-DOSPC-DOSMS-DOS、ROM-DOS、PTS-DOS、S/DOS、FreeDOS
  • PC-MOS/386
  • SISNE plus
  • ANDOS、CSI-DOS、MK-DOS
  • SpartaDOS X
  • GEOS
  • SymbOS
  • OS/2、eComStation、ArcaOS
  • Windows、Xbox OS、ReactOS
  • DexOS
  • Atari DOS家族
  • TempleOS

盤符解決混亂

盤符 盤符
在轉換完分區格式之後,在升級完電腦之後,在使用完虛擬光驅之後,在安裝好多塊硬盤之後……,都有可能出現磁盤盤符發生混亂的現象,面對該現象你該如何“撥亂反正”呢?本文下面提供的幾則方法,相信會給你帶來一定的幫助。
屏蔽硬盤法
將兩塊硬盤設置好主從關係並正確連接,然後開機進入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,即可啓動“磁盤管理”。下面我們來看看如何修改盤符。
第一步:鼠標右鍵點擊需要修改盤符的驅動器,選擇“更改驅動器號和路徑”命令。在更改驅動器的盤符時要注意系統盤的盤符是無法修改的,也不允許隨便修改,否則系統會啓動不了。
第二步:在彈出的“更改驅動器號和路徑”對話框上按“更改”按鈕,在接下來的窗口中,為該驅動器指定一個新的驅動器號(盤符)即可。
小提示:如果你要指定的盤符已經被別的磁盤分區所佔用了,可以先修改佔用了盤符的該磁盤分區,將它指定為別的盤符,把該磁盤分區佔用的盤符釋放出來。
Windows9X/Me中
Windows9X/Me中通常只能從設置硬盤的主從跳線和BIOS的設置,或者藉助第三方工具Letter Assigner去調整硬盤的盤符。我們只要在程序中點選要改變的磁盤分區,然後在工具欄上指定英文盤符,調整完後按“文件→保存”儲存設置、重新啓動計算機,就 OK 了。要注意的是,Letter Assigner無法修改Windows系統所在的分區,當你做了不適當的調整時,Letter Assigner會出現警告信息提醒你,這時候你千萬不要強行修改。最後,若你使用的是內存仿真硬盤 (虛擬硬盤),Letter Assigner可以用辨識“MS-RAMDRIVE”磁盤卷標的方式讓你也能指定虛擬磁盤的盤符。
利用PartitionMagic
PartitionMagic(分區魔術師)可以對硬盤進行重新分區、格式化、複製分區等操作,使用它修改盤符的操作方法如下:
啓動PartitionMagic,鼠標右擊需要修改的盤符,在快捷菜單中選擇“高級→修改驅動器盤符”,然後在彈出的“更改驅動器盤符”窗口中選擇新的盤符,單擊“確定”按鈕,接着選擇“常規→應用改變”命令,按照提示重新啓動即可。
另:
(1)Windows 2000/XP
Windows 2000/XP一般不會產生盤符交叉的問題,但前提是安裝Windows 2000、XP時只安裝了一塊硬盤,安裝結束後才能掛上第二塊硬盤,假如是在添加第二塊硬盤後安裝Windows 2000/XP的話,那麼仍然會產生盤符交叉,而且這是永久性的,即使取下第二塊硬盤也無濟於事。
不過,我們可以進入“控制面板→管理工具→計算機管理”窗口,在“計算機管理”下選擇“磁盤管理”,選中相應分區,從右鍵菜單中執行“更改驅動器名和路徑”命令,在對話框中點擊“更改”按鈕,然後重新指派一個驅動器號,再對其他分區重複執行該命令即可。
(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盤盤符出現了。至此問題得到解決。 [1] 

盤符實用大全

盤符裝扮盤符

每次打開“我的電腦”或“資源管理器”,驅動器形狀的盤符就映入我們的眼簾,時間一長,就容易產生厭倦的感覺。我們能不能給它改變一下,讓這些灰色的盤符變得更個性化一些?跟着下面做就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的應用程序都會引用一個特定的驅動器盤符(例如環境變量)。如果您修改了相應的驅動器盤符, 那麼, 這些程序將有可能無法正常工作。 [1] 

盤符修改源代碼

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;
參考資料