-
盤符
鎖定
盤符簡介
在計算機中,盤符分配(drive letter assignment)是一個分配字母標識符給卷(volume)的方法。和UNIX的掛載點(mount points)概念不同,當卷被命名並被隨意定位到一個單一的分層的命名空間(namespace),盤符分配允許多個最高級別的命名空間。因此磁盤分配是一個使用字母來命名文件系統根目錄的方法,每個卷有一個獨立的tree(或者,對於非分層文件系統而言,是一個獨立的文件列表)。
[3]
盤符應用
這些操作系統使用了盤符分配:
- GEMDOS、Atari TOS、MiNT、MagiC、MultiTOS、EmuTOS
- AMSDOS
- MSX-DOS
- PC-MOS/386
- SISNE plus
- ANDOS、CSI-DOS、MK-DOS
- SpartaDOS X
- GEOS
- SymbOS
- OS/2、eComStation、ArcaOS
- 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盤盤符,當回車後,卻彈出了“本次操作由於這台計算機的限制而被取消,請與您的管理員聯繫”的對話框。是不是該盤符被限制了呢?
解決辦法:右擊“我的電腦”,在彈出的快捷菜單中選擇“管理”命令,進入到“計算機管理”窗口,依次展開“存儲/可移動存儲”,單擊“磁盤管理”一項,在窗口右側,看到U盤運行狀態為“良好”,這説明U盤沒問題。右擊該窗口中的U盤盤符,選擇其快捷菜單的“更改驅動器名和路徑”命令,在出現的對話框中,點擊〔更改〕按鈕,為其選擇一個未被使用的盤符。確定之後退出。重新打開“我的電腦”,久違的U盤盤符出現了。至此問題得到解決。
[1]
盤符實用大全
盤符裝扮盤符
第一步:我們先找到後綴名為“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;
- 參考資料
-
- 1. 更改虛擬光驅與物理光驅的盤符 .硅谷動力[引用日期2017-03-11]
- 2. subst | Microsoft Docs .Microsoft.2022-04-02[引用日期2022-05-04]
- 3. Drive letter assignment .Wikimili.2022-02-15[引用日期2022-05-04]