Perguntas sobre dispositivos de loop e montagem de uma imagem de disco

0

Os comandos são daqui: Monta uma única partição da imagem do disco inteiro (dispositivo)

Sobre o primeiro comando, preciso "Calcular o deslocamento desde o início da imagem até o início da partição", mas não sei o que os números citados em ** significam (512 neste exemplo):

$ sudo fdisk -lu sda.img
...
Units = sectors of 1 * **512** = **512** bytes
Sector size (logical/physical): **512** bytes / **512** bytes
...
  Device Boot      Start         End      Blocks   Id  System
sda.img1   *          56     6400000     3199972+   c  W95 FAT32 (LBA)

sobre o segundo comando, o que é o "loop0":

sudo losetup -o 28672 /dev/loop0 sda.img

Eu olhei lá e parecia um arquivo de texto, mas não é, também não é uma pasta. o que é esse arquivo? Posso escolher outro nome para isso? Se sim, devo criá-lo antes?

Como funciona o terceiro comando? O que cada parte dela significa?:

sudo mount /dev/loop0 /mnt

Já executei com sucesso os comandos para fazer o que eu queria, é importante para mim entendê-lo mais da próxima vez e ajudar os outros.

Obrigado por suas respostas e por me ensinar (:

    
por yinon 14.06.2012 / 18:15

1 resposta

4

No primeiro comando, o número 512 está se referindo ao tamanho do bloco da imagem. Quando um arquivo é gravado em um disco, ele usa x quantidade de blocos. O restante de qualquer bloco não utilizado é um espaço desperdiçado. É por isso que às vezes você vê as coisas listadas como tamanho (tamanho real do arquivo, pasta, etc) e tamanho no disco (quantidade de espaço ocupado em disco, permitindo incompatibilidade de tamanho de bloco. Tome, por exemplo, um arquivo de 1234 bytes se estivéssemos usando blocos de 512 bytes, então, seriam necessários 3 blocos, ou 1536 bytes (512 * 3) e 302 bytes (1536 - 1234) bytes seriam "desperdiçados".

O loop0 é um dispositivo de loopback. Todos os arquivos em / dev são na verdade dispositivos (daí o nome :-)). O Linux trata dispositivos como arquivos, o que torna muito fácil realizar algumas coisas ao lidar com hardware. Ou seja, o seguinte comando enviará um arquivo de áudio diretamente para a placa de som para tocar (nenhum software necessário, puro!)

cat sound.wav > /dev/audio

Dispositivos de loopback são pseudo ou dispositivos especiais que o Linux usa em casos como o seu. O que você está dizendo nesse comando é que você quer que o Linux trate seu arquivo de imagem como um disco rígido. Isso permite que você execute qualquer comando que normalmente executaria em um disco rígido, no seu arquivo de imagem.

Para o último comando, estamos simplesmente montando o sistema de arquivos em sua unidade falsa (seu arquivo de imagem) em um local no sistema de arquivos local. Com o Linux, usamos uma estrutura de diretórios simples, e é por isso que toda localização de arquivos (incluindo dispositivos, unidades de rede e discos rígidos externos, etc) começa com '/', que também é chamada de raiz do sistema de arquivos. Montar um sistema de arquivos simplesmente o coloca em um lugar acessível ao resto do sistema (em algum lugar em /).

Agora, por padrão, apenas um usuário chamado "root" pode montar sistemas de arquivos. O usuário root é basicamente o mesmo que um usuário administrador no Windows. Alguém que pode fazer qualquer coisa no computador. No Ubuntu, o usuário root está oculto por questões de segurança, por isso precisamos usar sudo . O comando sudo, basicamente significa "ei, me faça o usuário root para executar este comando".

mount aqui é o comando que estamos executando como root (sudo), / dev / loop0 é a nossa unidade falsa que criamos anteriormente, e / mnt é o local em que queremos que a imagem esteja acessível. / mnt e / media são os locais padrão no Linux em que montamos sistemas de arquivos, embora isso possa estar em qualquer lugar que você desejar. É uma boa prática criar uma subpasta em / mnt ou / media para montar, em vez de apenas / mnt. Isto é porque você pode ter outros sistemas de arquivos montados lá, e se você montar por cima deles, eles não estarão acessíveis! A única ressalva para isso é que você precisa de privilégios de root para criar uma pasta aqui, então o seu último comando deve ser realmente dois comandos, e assim:

sudo mkdir /mnt/myimg
sudo mount /dev/loop0 /mnt/myimg

mkdir é apenas o comando para criar um diretório.

    
por reverendj1 14.06.2012 / 19:07