1. 程式人生 > >Linux 磁碟維護 : losetup 命令詳解

Linux 磁碟維護 : losetup 命令詳解

Linux losetup命令用於設定迴圈裝置。

迴圈裝置可把檔案虛擬成區塊裝置,籍以模擬整個檔案系統,讓使用者得以將其視為硬碟驅動器,光碟機或軟碟機等裝置,並掛入當作目錄來使用。

語法

losetup [-d][-e <加密方式>][-o <平移數目>][迴圈裝置代號][檔案]

引數

  • -d 卸除裝置。
  • -e<加密方式> 啟動加密編碼。
  • -o<平移數目> 設定資料平移的數目。

例項

(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

一個完整測試例項

1. 首先建立一個 1G 大小的空檔案:

# dd if=/dev/zero of=loopfile.img bs=1G count=1
1+0 records in
1+0 records out
1073741824 bytes (1.1 GB) copied, 69.3471 s, 15.5 MB/s

2. 對該檔案格式化為 ext4 格式:

# mkfs.ext4 loopfile.img
。。。。

3. 用 file 命令檢視下格式化後的檔案型別:

# file loopfile.img
loopfile.img: Linux rev 1.0 ext4 filesystem data, UUID=a9dfb4a0-6653-4407-ae05-7044d92c1159 (extents) (large files) (huge files)

4. 準備將上面的檔案掛載起來:

# mkdir /mnt/loopback
# mount -o loop loopfile.img /mnt/loopback

mount 命令的 -o loop 選項可以將任意一個 loopback 檔案系統掛載。

上面的 mount 命令實際等價於下面兩條命令:

# losetup /dev/loop0 loopfile.img
# mount /dev/loop0 /mnt/loopback

因此實際上,mount -o loop 在內部已經預設的將檔案和 /dev/loop0 掛載起來了。

然而對於第一種方法(mount -o loop)並不能適用於所有的場景。比如,我們想建立一個硬碟檔案,然後對該檔案進行分割槽,接著掛載其中一個子分割槽,這時就不能用 -o loop 這種方法了。因此必須如下做:

# losetup /dev/loop1 loopfile.img
# fdisk /dev/loop1

6. 解除安裝掛載點:

# umount /mnt/loopback