raw 格式鏡像的 分區 、格式化和掛載操作

我們在 掛載鏡像的時候,需要用到 kernel 中的 loop device 和 鏡像中的分區 分別對應起來,就可以隨心所欲的玩耍啦。我們需要用到一個命令 losetup。

先創建一個鏡像來玩玩

dd if=/dev/zero of=test.img bs=1M count=100

分個區, 

# fdisk test.img
Command (m for help): p
Disk test.img: 100 MiB, 104857600 bytes, 204800 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
Disklabel type: dos
Disk identifier: 0xfd339fe7

Device     Boot  Start    End Sectors Size Id Type
test.img1         2048 104447  102400  50M 83 Linux
test.img2       104448 204799  100352  49M 83 Linux

要注意兩個分區的偏移地址,後面會用到,這裏的單位是 sector

先看看有沒有空閒的loopdevice ,這裏只會顯示一個,用到 loop0 之後,再查看會顯示 loop1

# losetup -f 
/dev/loop0

把它綁定到一個分區

losetup -o $((2048*512)) /dev/loop0 demo_armhf_rootfs.img
losetup -o $((104448 *512)) /dev/loop1 demo_armhf_rootfs.img

然後就可以愉快的玩耍啦

mkfs.ext4 /dev/loop0
mkfs.ext4 /dev/loop1


mount /dev/loop0  tmp0
mount /dev/loop1  tmp1


umount tmp0 tmp1



 

別忘了最後 要釋放 loop device哦

losetup -d /dev/loop0

 

 

---------------

因爲 qcow2 的鏡像分區要用到 nbd , 比較麻煩,是不是可以先使用 raw 鏡像來分區,然後再轉化爲 qcow2呢?

說做就做,成功之後,使用qemu-system-arm 來啓動的時候總是報 下面這樣的錯誤,但是單獨 通過 loop 的方式掛載查看設備都是沒有問題的,用fsck來修復也是不行,留個疑慮吧

 bad geometry: block count 4878390 exceeds size of device (2883789 blocks)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章