लिनक्स में एक बहु-विभाजन डिस्क छवि कैसे माउंट करें?


23

मैंने एक कच्ची एसडी कार्ड छवि डाउनलोड की जिसमें दो विभाजन हैं।

जब मैंने इसे सीधे एसडी कार्ड में डालने की कोशिश की तो इसमें कुछ फाइल सिस्टम त्रुटियां हुईं। मुझे यकीन नहीं है कि कार्ड दोषपूर्ण है या छवि।

क्या इस चित्र को भौतिक कार्ड में लिखे बिना जांचने का कोई तरीका है? जैसे विभाजन को अलग से माउंट करने या तालिकाओं की जांच करने की कोशिश करना?

जवाबों:


20

आप छवि पर विभाजन के लिए लूप डिवाइस बनाने के लिए kpartx या partx का उपयोग कर सकते हैं , और फिर उन्हें माउंट कर सकते हैं। तो या तो:

$ sudo kpartx -v -a file.iso
add map loop0p1 (253:17): 0 8382464 linear 7:1 2048
$ mount /dev/mapper/loop0p1 ./mnt_point
...  do something with the partition  ...
$ umount ./mnt_point
$ kpartx -d -v file.iso
del devmap : loop0p1
loop deleted : /dev/loop0

या:

$ sudo partx -a -v file.iso
partition: none, disk: file.iso, lower: 0, upper: 0
Trying to use '/dev/loop0' for the loop device
/dev/loop0: partition table type 'dos' detected
range recount: max partno=1, lower=0, upper=0
/dev/loop0: partition #1 added
$ mount /dev/loop0p1 ./mnt_point
...  do something with the partition  ...
$ umount /dev/loop0p1 ./mnt_point
$ sudo partx -d -v /dev/loop0
partition: none, disk: /dev/loop0, lower: 0, upper: 0
/dev/loop0: partition #1 removed

यह भी देखें कि मैं डिस्क छवि कैसे माउंट कर सकता हूं?


धन्यवाद @ फ्रैंक-संक्षिप्त। इससे पहले कि मैं इसे पाने का मौका था समीक्षकों द्वारा संपादित को अस्वीकार कर दिया गया।
१२:४ats बजे कैटस्कुल

14

losetup -Pf in-linux> = 2.21 (Ubuntu 16.04)

sudo losetup -Pf disk.img
sudo mkdir /mnt/loop0p1
sudo mount /dev/loop0p1 /mnt/loop0p1

देखें losetup (8) आदमी पेज और भी /ubuntu/69363/mount-single-partition-from-image-of-entire-disk-device/673257#673257

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"
)

1

तुम कोशिश कर सकते हो:

माउंट -t प्रकार -o लूप ./image / mnt

जहाँ "टाइप" = fs टाइप और "इमेज" आपकी डाउनलोड की गई फ़ाइल का नाम है


3
इसके बारे में सोचकर, यह एक छवि के साथ काम नहीं कर सकता है जिसमें कई विभाजन हैं।
कपड़ा

2
आपको "माउंट-लो लूप, आरओ, ऑफसेट = XXXXXXXX imagefile / mnt" जैसे कुछ के साथ माउंट करने के लिए एकल विभाजन की ऑफसेट निर्दिष्ट करना होगा
श्री शुनज

1
एक ऑफसेट निर्दिष्ट करने के लिए काम नहीं करेगा?
कपड़ा

आप सही कह रहे हैं ... लॉसेटअप के साथ आप एक लूपबैक डिवाइस बनाने के लिए विभाजन में एक ऑफसेट सेट कर सकते हैं जिसे केवल माउंट / देव / लूपएक्स / एमएनटी के साथ माउंट किया जा सकता है
श्री शुनज

1

ServerFault पर यह उत्तर बताता है:

एक / देव / पाश पाने के लिए losetup का उपयोग करें? डिवाइस, तो छवि फ़ाइल में विभाजन के लिए देव मैपिंग बनाने के लिए उस पर kpartx का उपयोग करें।

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