एक साथ डिस्क छवि से कई विभाजन कैसे माउंट करें?


9

मैं कोशिश कर रहा हूँ जड़ और बूट विभाजन माउंट की Raspbian छवि:

mount -v -o offset="70254592" -t ext4 /mnt/X/raspbian-jessie.img /tmp/raspbian
mount -v -o offset="4194304" -t vfat /mnt/X/raspbian-jessie.img /tmp/boot

बढ़ते बूट, जब रूट को माउंट किया जाता है:

mount: /mnt/X/raspbian-jessie.img: overlapping loop device exists

एक ही समय में एक डिस्क छवि पर कई विभाजन कैसे माउंट करें? (डिस्क के लिए यह स्पष्ट रूप से संभव है, फाइलों के लिए क्यों नहीं?)

जवाबों:


6

losetup 2.21 -P विकल्प

losetup -P -f --show my.img

/dev/loopXpYप्रति विभाजन एक बनाता है ।

लाभ: निष्पादन योग्य कई डिस्ट्रोस (उपयोग-लिनक्स पैकेज) में पूर्व-स्थापित।

नुकसान: काफी हालिया विकल्प, उबंटू 14.04 में मौजूद नहीं है, इससे पहले सिर्फ kpartx का उपयोग करें: https://unix.stackexchange.com/a/405639/32558

losetup -P स्वचालन

उपयोग:

$ los my.img
/dev/loop0
/mnt/loop0p1
/mnt/loop0p2

$ ls /mnt/loop0p1
/whatever
/files
/youhave
/there

$ sudo losetup -l
NAME       SIZELIMIT OFFSET AUTOCLEAR RO BACK-FILE                                                                                      DIO
/dev/loop1         0      0         0  0 /full/path/to/my.img

$ # Cleanup.
$ losd 0
$ ls /mnt/loop0p1
$ ls /dev | grep loop0
loop0

स्रोत:

los() (
  img="$1"
  dev="$(sudo losetup --show -f -P "$img")"
  echo "$dev"
  for part in "$dev"?*; do
    if [ "$part" = "${dev}p*" ]; then
      part="${dev}"
    fi
    dst="/mnt/$(basename "$part")"
    echo "$dst"
    sudo mkdir -p "$dst"
    sudo mount "$part" "$dst"
  done
)
losd() (
  dev="/dev/loop$1"
  for part in "$dev"?*; do
    if [ "$part" = "${dev}p*" ]; then
      part="${dev}"
    fi
    dst="/mnt/$(basename "$part")"
    sudo umount "$dst"
  done
  sudo losetup -d "$dev"
)

7

ओवरलैप से बचने के लिए आपको विभाजन की लंबाई निर्दिष्ट करने की आवश्यकता है। विकल्प sizelimit, देख man mount, man losetup


1

kpartxउपकरण का उपयोग करें । यह छवि विभाजन को मैप करेगा /dev/mapperजिसका उपयोग करके आप सीधे माउंट कर सकते हैं।

$ sudo kpartx -a disk.img
$ sudo mount -o loop /dev/mapper/loop0p2 /mnt

पुनश्च। काम पूरा होने के बाद मैपिंग निकालना न भूलें:sudo kpartx -d disk.img

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.