在linux中,如果映像文件(.img)含有分區表的話,那么用losetup這個程序來加載文件系統就有點力不從心了。因為losetup只能加載無分區的文件系統映像文件。不過有一個好東西配合losetup卻可以來掛載帶有分區表的映像文件。這就是kpartx了。
廢話不多說,進入正題(其中X和Y要看你的掛接的情況而看了):
#先創建一個1G大小的映像文件來做實驗 dd bs=4096 if=/dev/zero of=~/hd.img count=262144 #將映像文件掛接到loopX中去 losetup /dev/loopX ~/hd.img #對loopX進行分區 fdisk /dev/loopX #我這里分了兩個區,每個去512M大小 Device Boot Start End Blocks Id System /dev/loopXpY 2048 1050623 524288 83 Linux /dev/loopXpY 1050624 2097151 523264 83 Linux #正戲來了,使用kpartd裝載映像,使用kpartx是需要root用戶的,因為是用root登錄的,所以不用使用sudo。從前面的命令就可以看出來... kpartx -av ~/hd.img #裝載之后,就可以在/dev/mapper/目錄下看到兩個loopXpY的文件了。 #接下來對loopXpY進行格式化了。 mkfs.vfat /dev/mapper/loopXpY #然后掛載文件系統。 mount /dev/mapper/loop1p1 /media/hd1 #OK,羅嗦完了。
后面再廢話一點,使用完映像文件的文件系統后,想退出的話,可以使用 kpartx -dv /dev/loopX 寫卸載剛才掛接的東西。然后再使用losetup -d /dev/loopX斷掉和映像文件的掛接關系。
其中,kpartx -a指定去添加哪個映像文件(add),-v是指掛到loop設備(verbose),-d就是delete的意思了。其它更詳細用法可以去"找男人"。