Hoje em dia, existe uma maneira melhor, sem necessidade de usar deslocamentos ou kpartx:
losetup --partscan --find --show disk.img
mount /dev/loop0p1 /mnt
para liberar loop0, use após umount:
losetup -d /dev/loop0
Eu tenho uma imagem de todo o disco criado usando dd . A estrutura do disco segue:
kent@cow:~$ sudo fdisk -l
Disk /dev/sda: 750.1 GB, 750156374016 bytes
255 heads, 63 sectors/track, 91201 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x000b8508
Device Boot Start End Blocks Id System
/dev/sda1 * 5 90872 729929303+ 83 Linux
/dev/sda2 90873 91201 2642692+ 5 Extended
/dev/sda5 90873 91201 2642661 82 Linux swap / Solaris
A imagem foi criada usando:
dd if=/dev/sda of=image750.img
Como eu poderia, se fosse possível, montar / dev / sda1 da imagem para que eu pudesse ler o conteúdo?
Não é uma opção para clonar o HDD novamente, eu sei como fazer isso se eu tivesse clonado a única partição sozinha. Espero que ainda seja possível com a imagem atual.
Hoje em dia, existe uma maneira melhor, sem necessidade de usar deslocamentos ou kpartx:
losetup --partscan --find --show disk.img
mount /dev/loop0p1 /mnt
para liberar loop0, use após umount:
losetup -d /dev/loop0
Eu encontrei esse problema hoje e queria atualizar as respostas apenas como um lembrete para mim mesmo. Em vez de calcular o deslocamento por conta própria, você pode usar uma ferramenta que fornece dispositivos montáveis a partir de uma imagem dd: kpartx
No caso em questão, seria necessário algo como
sudo kpartx -a image750.img
sudo mount /dev/mapper/loop1p1 /mount/point -o loop,ro
onde loop1p1 representa a primeira partição, loop1p2 pela segunda, etc.
Você tem a primeira parte: fdisk -l para encontrar o deslocamento inicial. Pegue esse número, multiplique por 512 e você terá a opção de deslocamento para montar. Então, para sda1 no seu caso, 5 * 512 = 2560. Em seguida, execute o mount:
mount -o loop,offset=2560 -t auto /path/to/image.dd /mount/point
A montagem em loop é apenas parte da resposta.
Veja o link para obter ajuda sobre como especificar a partição. Eu acho que mount -o loop, offset = 32256 /path/to/image750.img / mnt funcionará para você. mas você realmente deveria ler o tutorial mencionado.
losetup -P
automation
Método mencionado pelo link (adicionado no util-linux v2.21, adicionado Ubuntu 16.04), aqui estão as funções para automatizá-lo ainda mais. Uso:
$ 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"
)
módulo de loop max_part config
Método decente antes do util-linux v2.21.
loop
é um módulo do kernel, embutido no kernel no Ubuntu 14.04.
Se você configurá-lo corretamente, o Linux automaticamente dividirá os dispositivos para você.
cat /sys/module/loop/parameters/max_part
diz quantas partições loop
dispositivos podem gerar.
Por padrão, é 0
no Ubuntu 14.04 e é por isso que não ocorre divisão automática.
Para alterá-lo, podemos adicionar:
options loop max_part=31
para um arquivo em /etc/modprobe
ou:
GRUB_CMDLINE_LINUX="loop.max_part=31"
para /etc/default/grub
e, em seguida, sudo update-grub
.
Como definir um parâmetro de módulo também é coberto em: link
Após a reinicialização, quando você faz:
sudo losetup -f --show my.img
monta a imagem em um dispositivo /dev/loopX
e monta automaticamente as partições em /dev/loopXpY
devices.
Portanto, este é o método mais conveniente se você estiver disposto a reinicializar.
Veja também
Se você tem o sistema de arquivos do modo Usuário como fusível, então em ambientes de desktop gosta do Gnome e tem ferramentas instaladas como o gnome-disk-image-mounter, então ele nem mesmo root com o botão direito e abre com ele.
Acredito que montagens em loop é a resposta -
sudo mkdir /path/to/dir/
mount -o loop example.img /path/to/dir/
O acima deve montá-lo nesse diretório.
Isso deve ser desmontado:
umount /path/to/dir
Tags mount disk-image linux