GNU/Linux >> Linux Esercitazione >  >> Linux

Come montare un'immagine disco multi-partizione in Linux?

Puoi utilizzare kpartx o partx per creare dispositivi loop per le partizioni sull'immagine, quindi montarli. Quindi:

$ 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

oppure:

$ 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

Vedi anche Come posso montare un'immagine disco?


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

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

Consulta la pagina man di losetup(8) e anche https://askubuntu.com/questions/69363/mount-single-partition-from-image-of-entire-disk-device/673257#673257

losetup -P automazione

Ecco le funzioni per automatizzare ulteriormente. Utilizzo:

$ 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

Fonte:

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

La risposta di @Catskul e @Cristian Ciupitu va benissimo, ma manca il comando loop unmount. Quindi, se devi fare una seconda immagine, finirai con l'usare loop1, loop2 ecc.

puoi controllare quali dispositivi loop sono collegati a quali immagini chiamando losetup:

pk:~# partx -v -a /home/pkolmann/img/Test.img
partition: none, disk: /home/pkolmann/img/Test.img, lower: 0, upper: 0
Trying to use '/dev/loop1' for the loop device
/dev/loop1: partition table type 'dos' detected
range recount: max partno=2, lower=0, upper=0
/dev/loop1: partition #1 added
/dev/loop1: partition #2 added
pk:~# losetup
NAME       SIZELIMIT OFFSET AUTOCLEAR RO BACK-FILE                    DIO LOG-SEC
/dev/loop1         0      0         0  0 /home/pkolmann/img/Test.img   0     512
/dev/loop0         0      0         0  0 /home/pkolmann/img/Test.img   0     512

dopo aver smontato le partizioni con

pk:~# partx -v -d /dev/loop0
partition: none, disk: /dev/loop0, lower: 0, upper: 0
/dev/loop0: partition #1 removed
/dev/loop0: partition #2 removed
pk:~# partx -v -d /dev/loop1
partition: none, disk: /dev/loop1, lower: 0, upper: 0
/dev/loop1: partition #1 removed
/dev/loop1: partition #2 removed

i dispositivi di loop sono ancora utilizzati:

pk:~# losetup
NAME       SIZELIMIT OFFSET AUTOCLEAR RO BACK-FILE                    DIO LOG-SEC
/dev/loop1         0      0         0  0 /home/pkolmann/img/Test.img   0     512
/dev/loop0         0      0         0  0 /home/pkolmann/img/Test.img   0     512

Questi devono essere rimossi in più:

wspk:~# losetup -d /dev/loop0
wspk:~# losetup -d /dev/loop1
wspk:~# losetup

Linux
  1. Come partizionare un disco in Linux

  2. Come montare un'unità disco USB in UNIX o Linux

  3. Come clonare la partizione del disco di Linux sulla rete usando dd

  4. Come posso montare un'immagine disco?

  5. Come montare una nuova partizione su Red Hat Linux

Come montare il disco NTFS su Linux

Come montare il file del disco rigido virtuale (VHD) in Ubuntu Linux?

Come crittografare la partizione su Linux

Come creare partizioni del disco su Linux

Come visualizzare le partizioni del disco Linux (tabella delle partizioni)

Come formattare e montare dischi di dimensioni superiori a 2 TB su Linux