linux下掛載img方法

目的:在linux下掛載img文件,以實現對img文件的修改

# fdisk -lu arch-live-usb.img
You must set cylinders.
You can do this from the extra functions menu.
Disk arch-live-usb.img: 0 MB, 0 bytes
248 heads, 19 sectors/track, 0 cylinders, total 0 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xff978785

            Device Boot      Start         End      Blocks   Id  System
arch-live-usb.img1            2048      593919      295936   83  Linux
Partition 1 has different physical/logical beginnings (non-Linux?):
     phys=(0, 32, 33) logical=(0, 107, 16)
Partition 1 has different physical/logical endings:
     phys=(36, 247, 19) logical=(126, 10, 18))
# losetup -fo 1048576 arch-live-usb.img  // 這裏的 -fo 104857=(2048*512)
是指定第一個分區在整個磁盤鏡像文件中的偏移量
# losetup -a  // 得到 loop 設備文件路徑,如 /dev/loop0
# mount /dev/loop0 /mnt


卸載: umount  /mnt 

            losetup -d /dev/loop1


1. loop設備介紹

    在類 UNIX 系統裏,loop 設備是一種僞設備(pseudo-device),或者也可以說是仿真設備。它能使我們像塊設備一樣訪問一個文件。
在使用之前,一個 loop 設備必須要和一個文件進行連接。這種結合方式給用戶提供了一個替代塊特殊文件的接口。因此,如果這個文件包含有一個完整的文件系統,那麼這個文件就可以像一個磁盤設備一樣被 mount 起來。
    上面說的文件格式,我們經常見到的是 CD 或 DVD 的 ISO 光盤鏡像文件或者是軟盤(硬盤)的 *.img 鏡像文件。通過這種 loop mount (迴環mount)的方式,這些鏡像文件就可以被 mount 到當前文件系統的一個目錄下。
    至此,順便可以再理解一下 loop 之含義:對於第一層文件系統,它直接安裝在我們計算機的物理設備之上;而對於這種被 mount 起來的鏡像文件(它也包含有文件系統),它是建立在第一層文件系統之上,這樣看來,它就像是在第一層文件系統之上再繞了一圈的文件系統,所以稱爲 loop。

2. losetup命令

    losetup [ -e encryption ] [ -o offset ] loop_device file
    losetup [ -d ] loop_device

說明
此命令用來設置循環設備。循環設備可把文件虛擬成塊設備,籍此來模擬整個文件系統,讓用戶得以將其視爲硬盤驅動器,光驅或軟驅等設備,並掛入當作目錄來使用。
上面,命令格式中的選項與參數名:
-e 表示加密的方式
-o 設置數據偏移量
-d 卸載設備
loop_device 循環設備名,在 linux 下如 /dev/loop0 , /dev/loop1 等。

file 要與循環設備相關聯的文件名,這個往往是一個磁盤鏡象文件,如 *.img

3. 使用舉例

(1)創建空的磁盤鏡像文件,這裏創建一個1.44M的軟盤

          $ dd if=/dev/zero of=floppy.img bs=512 count=2880

(2)使用 losetup將磁盤鏡像文件虛擬成快設備

          $ losetup /dev/loop1 floppy.img

(3)掛載塊設備

          $ mount /dev/loop0 /tmp

    經過上面的三步之後,我們就可以通過/tmp目錄,像訪問真實快設備一樣來訪問磁盤鏡像文件floppy.img。

(4) 卸載loop設備

          $ umount /tmp

          $ losetup -d /dev/loop1





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章