跳至內容

Loop裝置

出自Taiwan Tongues 台語維基
這是此頁批准,以及是最近的修訂。

/ dev / loop(抑是稱vnd( vnode disk )、lofi(迴圈檔案介面)) 佇類 Unix 系統內底是一種偽裝置,這種裝置也予檔案會當親像塊裝置一般予人存取。

咧使用進前,迴圈裝置必須佮現存檔案系統上的檔案相關聯。這種關聯欲提供予使用者一个應用程式介面,介面欲允准檔案看做是角特殊檔案(參見裝置檔案系統)使用。所以,若檔案中包含一个完整的檔案系統,若按呢這个檔案就會當如同磁碟裝置一般被掛載。

這種裝置檔案定定被用於光碟抑是吸碟仔鏡像。通過迴圈掛載來掛載包含檔案系統的檔案,便使處佇這个檔案系統中的檔案會當予人存取。遮的檔案共出這馬掛載點 kha-tá-lok-guh。若掛載 kha-tá-lok-guh 中本身有檔案,遮的檔案咧掛載後欲去予人禁止使用。

一个迴圈裝置凡勢會當允准佇重新導向過程當中進行一寡資料的處理。比如講,裝置可能是一个予人加密檔案的解密形式。佇這个情形下,佮迴箍裝置相關的檔案可能是另外一款偽裝置。當裝置包含加密檔案系統時,彼个資料處理誠好勢有路用。若是資料處理會著支援而且原檔案予人加密,迴箍裝置將會是這加密檔案的解密形式並且裝置會使親像普通檔案系統一般被掛載。

迴圈掛載的使用

咧掛載有檔案系統的檔案了後,儲存佇該檔案系統中的檔案無需要特殊函式的支援便會當予常規的檔案系統介面抑是系統存取。比論佇應用程式中讀寫光碟鏡像檔案。

應用包括管理佮編輯檔案系統鏡像以提供日後使用(尤其是 CD、DVD 鏡像抑是安裝系統)抑是佇實際應用永久隔離一寡資料(譬如講佇抽取式媒體頂懸類比一个閣較緊,閣較方便的硬碟抑是封裝加密的檔案系統)。

迴圈裝置提供了佇咧單個檔案內底安裝作業系統一種便捷方法,予得安裝作業系統毋免為吸碟機重新分割區。

可用性

佇各種作業系統中迴箍裝置的號名存在著一寡混亂。各種的類似 Unix 作業系統當中,功能性的迴箍裝置予人無仝款的名號名。

佇咧 Linux 中,裝置名照相應裝置驅動程式的符號表項進行號名。遮的裝置予人叫做「loop」裝置,裝置節點通常號名號做 / dev / loop 零 , / dev / loop 一時類按呢。 靜態裝置 kha-tá-lok-guh 會用得 makedev 指令碼建立,抑是動態地由裝置檔案系統 ( udev ) 設施建立。迴箍裝置的管理介面是 losetup,這是 util-linux 軟體套件的一部份。

有時,迴箍裝置被錯誤地認為是迴環裝置,但是這術語佇咧 Linux 核心中是網路裝置保留的(參見迴環網卡)。 迴圈裝置的概念佮迴環裝置無仝,雖然佇名頂懸有相𫝛的所在。

佇咧 NetBSD 和 OpenBSD 等 BSD 所衍生的系統內底,迴圈裝置予人稱做「較虛擬較節點裝置」抑是「vnd」,並且裝置予人間佇佗位 / dev / vnd 零 , / dev / rvnd 零抑是 / dev / svnd 零等處。你咧檔案系統內底,使用 vnconfig 程式來進行組態。

FreeBSD 佇咧發行版五進前佮其他 BSD 系統仝款遵守約定,了後迴箍裝置便被納入記憶吸碟裝置(" md ")。 目前使用 mdconfig 程式進行組態。

佇咧 Solaris / OpenSolaris 中,迴圈裝置予人稱做 " 迴環檔案介面 " 抑是 lofi , 佇佗位咧 / dev / lofi / 一等處。SunOS 有擁有 lofiadm 組態程式。" lofi " 驅動程式支援唯讀壓縮佮可讀寫的加密。 自從一九八八年夏季開始閣較有 SunOS / Solaris 平台第三方的驅動 " fbk " ( 檔案類比塊裝置,英文:File emulates Blockdevice )

Mac OS X 實現一个原生的鏡像掛載機制並成做其隨機存取吸碟裝置的抽象。遮的裝置親像普通裝置仝款出現佇 / dev 中,讀寫操作被送往一个使用者模式的輔助行程,由輔助行程負責讀佮寫入的操作。佇咧使用者介面中做拍開磁仔鏡像的時陣自動被啟用。這會當處理足濟格式的碟仔片、CD-ROM 抑是 DVD 鏡親像。

佇咧 Microsoft Windows 作業系統上並袂用得原生支援迴箍掛載(一直到 Windows 七,這个功能才去予原生實現,閣通過工具 diskpart 做工課 )。 毋過,這項能力不三時咧通過第三方程式會當實現,比如講 _ Daemon Tools _ 和 _ Alcohol 百分之一百二十 _ VMware 的免錢工具以及 LTR Data ( ImDisk ) 攏會使實現類似的功能。

實例

佇咧 kha-tá-lok-guh 上掛載包含檔案系統的檔案一般需要兩步:

一 . 創一个迴圈裝置節點連接檔案。 二 . 佇咧 kha-tá-lok-guh 上掛載這个迴箍裝置這兩个操作既然會當用兩條命令來完成,嘛會當通過加上特殊的掛載符號的掛載命令來完成。頭一項操作會當通過若像講 Linux 平台跤的 losetup 抑無就是 SunOS 上的 lofiadm 號令完成。

比如講,若是 ` example . img ` 是一个包含檔案系統的常規檔案,並且 ` / home / you / dir ` 是 Linux 使用者的 kha-tá-lok-guh,有夠使用者(root)檢采會當通過執行如下的命令來將檔案掛載佇 kha-tá-lok-guh 上:

` ` ` losetup / dev / loop 零 example . img mount / dev / loop 零 / home / you / dir ` ` `

其中第二條命令將裝置掛載於 kha-tá-lok-guh ` / home / you / dir `。執行上講語句的效果就是檔案予人做檔案系統掛載,檔案的內容出這馬被掛載的 kha-tá-lok-guh 中(以被掛載的 kha-tá-lok-guh 做根 kha-tá-lok-guh)。

此外 mount 家私定定會當勝任規个掛載的程式:

` ` ` mount-o loop example . img / home / you / dir ` ` `

了後裝置便能用下列命令實現解除安裝:

` ` ` umount / home / you / dir

  1. 抑是講通見笑代 mount | grep " / home / you / dir "
  2. 抑是講 losetup-a | grep example . img 的查埔揣著交易文件抹著的 loop 鋪排。
  3. 鋪排下列命令:(< N > 是代表鋪排的)

umount / dev / loop < N > ` ` `

佇較底層的應用程式介面中,檔案的關聯佮解除關聯通過佇迴箍裝置頂懸的 ioctl 系統呼叫來實現。

參見

  • 裝置檔案系統
  • 虛擬硬碟
  • 網路塊裝置
  • 磁碟鏡像

參照

外部連結

  • 組態迴圈裝置 from the cryptoloop HOWTO .
  • 使用迴圈裝置掛載磁碟鏡像 from the _ Bochs User Manual _