一個困擾頗久的問題,今天終於解決
Apache 伺服器只能有一個跟目錄,而軟體安裝預設多在磁碟 C,整個伺服器架構也因此跟著在磁碟 C 了!
1. C 是電腦系統磁區,又再包括伺服器資料,實在擁擠。
2. 此外,若網站提供軟體下載,某些軟體因體積龐大,也要放在 C,則 C 的空間將無法限量。
方法一:
利用 NTFS 磁區的掛載特色,在 Windows 的磁碟管理中,可以設定
把某個磁區掛在伺服器根目錄上,變相當於整個伺服器資料都是在另一個磁區上,空間的問題大大可以解決!
但問題是,NTFS 磁碟的這項功能僅限於「將『磁區』掛於某資料夾」,如果只想要將「『某磁區』的『某資料』夾掛上分享」,這就無效了!!
利用簡單的「建立捷徑」
是沒有用的
網頁上點此捷徑會變成
如何解決這個問題呢!?
方法二:
Junction、SoftLink、HardLink 連結
前一篇對 HardLink 的描述有誤,這裡重新整理,並將三種連結一次說明。
連結方式 | 代號 | 對象 |
Junction(JL) | /J | 資料夾 |
SoftLink(SL) | /D | 檔案、資料夾 |
HardLink(HL) | /H | 檔案 |
[SL、JL 示範]
在 C 目錄下,我們對名稱為「1」的資料夾進行 SL、JL,分別得到新資料夾「3」、「4」得到結果如下
兩者的差異在 Windows 的外觀上無法識別出來,但其「內容有差」
「3」(SL)內容
「4」(JL)內容
「3」多了一個「捷徑」!與一般「建立捷徑」是一樣的結果。
根據 Microsoft 的 Mklink 說明,差異僅於 SL 只有 admin 能使用!
SL、JL 能完成資料夾、檔案的連結,讓網站架設時能夠讀取跨磁區資料!
如下圖中,資料夾「3」、「4」即為 SL、JL 建立的資料夾均能夠由網頁連結,但一般捷徑 (.lnk) 是沒有辦法的。
SL、JL 的連結方式與一般捷徑相同,一旦原始檔案被移除,連結也就失效了。
因為 SL、JL 只是捷徑,因此建立出來的只是 inode,並無實際的新檔案複製,故資料大小問題。
[HardLink (HL)]
根據鳥哥的說法是建立一個新的 inode;兩個目錄連結到同一個檔案,刪除任何一邊,檔案還是存在的!
(鳥哥)
但是,HL 只能針對檔案進行連結,無法對目錄、亦無法跨磁區!
要特別注意一點,HL 建立的檔案從外觀上也無法察看出來是由 HL 所建立的連結!!
HL 檔案有大小!與原來檔案大小相同!(這只是因為 inode 資料相同)但實際上在磁區中並非存在另一個檔案,所以對檔案直接察看內容是有大小,但察看整個磁區的大小會發現沒有變化!
[SL、JL、HL 使用方法]
開啟 cmd
以 SoftLink 在 C:\2 資料夾內建立 22.java 檔案,連結到 11.java
(JL、HL 方法相同)
在 Directory Opus 建立 softlink、junction、hardlink 連結方法
DOpus 建立按鍵的方式不再說明,主要如下圖紅框中的語法
三種連結,分別為
Copy MAKELINK=softlink
Copy MAKELINK=junction
Copy MAKELINK=hardlink
建立三顆按鍵(圖案是自己做的)
1 則留言:
mklink 語法使用時需注意
欲建立的資料夾不可以先存在 (上面的 software),否則會失敗!
張貼留言