Ubuntu 管理心得

搜尋此網誌

2022年11月17日 星期四

mount image img file

 cf: https://coldnew.github.io/ff159f7c/

  1. sudo fdisk -u -l pi3_20221116.img
    The outputs are
    ...
    所用裝置          可開機  Start     結束     磁區  Size Id 類型
    pi3_20221116.img1          8192   532480   524289  256M  c W95 FAT32 (LBA)
    pi3_20221116.img2        540672 30881791 30341120 14.5G 83 Linux

    Get the Start block 540672 for partition 2
  2. sudo mount -o loop,offset=$((540672 * 512)) pi3_20221116.img /mnt/myimg

The script file: (cf: https://github.com/AlexanderAmelkin/mountimg/blob/master/mountimg

#!/bin/bash
IMAGE="$1"
PART="$2"
WHERE="$3"
shift 3

OPTIONS="$*"

if [ ! -f "$IMAGE" ] || [ -z "$PART" ] || [ -z "$WHERE" ]; then
    echo "Disk image partition mounter by Alexander Amelkin."
    echo "Version 1.0"
    echo
    echo "Usage: mountimg <image> <partition> <where> [<mount options>]"
    echo "Example: mountimg sdcard.img 1 /mnt/sdcard0p1 -t vfat -o ro,codepage=866,iocharset=utf-8"
    exit 1
fi

# Now find the first unused loop device and use it
OFFSET=$(
    sfdisk -l $IMAGE |
    grep $IMAGE$PART |
    awk 'BEGIN { FS="[ *\t]+"}
         /.+/ { print $2; found=1 }
         END { if(!found) exit 1 }'
    ) || { echo "No such partition in the image"; exit 1; }

echo "Mounting $IMAGE partition $PART (offset $OFFSET) to $WHERE via $LODEV"

set -e

mount $OPTIONS -o loop,offset=$((OFFSET * 512)) $IMAGE $WHERE

沒有留言:

張貼留言

網誌存檔