Imagens normais do sistema de arquivos podem ser facilmente montadas:
mount system.img /mnt
Examinado e modificado. Mas quando eu tento isso com uma imagem do sistema Raspberry Pi (por exemplo, raspbian), recebo:
mount: unknown filesystem type '(null)'
E não importa o que eu tente -t
, não vai funcionar. Como montar esta imagem?
Respostas:
Esta pergunta é respondida como parte da resposta a outras perguntas, mas merece tratamento canônico aqui, para que não precise ser repetida.
Você não pode montar a imagem como um todo, pois ela contém duas partições e um setor de inicialização. No entanto, você pode montar as partições individuais na imagem se souber o deslocamento dentro do arquivo. Para encontrá-los, examine a imagem como um dispositivo de bloco com
fdisk -l whatever.img
. A saída deve incluir uma tabela como esta:Estas são as duas partições. O primeiro é rotulado como "FAT32" e o outro "Linux". Acima desta tabela, há outras informações sobre o dispositivo como um todo, incluindo:
Podemos encontrar o deslocamento em bytes multiplicando esse tamanho de unidade pelo
Start
bloco da partição:Estes podem ser usados com a
offset
opção domount
comando Também temos uma pista sobre o tipo de cada partiçãofdisk
. Portanto, presumindo que tenhamos diretórios/mnt/img/one
e/mnt/img/two
disponíveis como pontos de montagem:Se você receber um erro de "loop sobreposto" aqui, sua versão
mount
exige que você especifique o tamanho e o deslocamento da primeira partição. Desmonte isso e use o número de blocos (57344) * 512 (= 29360128):A segunda partição não precisa de um tamanho reduzido, já que não há nada na imagem.
Agora você pode acessar as duas partições. Se você não pretende alterar nada, use a opção
-r
(somente leitura). Se você alterar alguma coisa, essas alterações serão incluídas no.img
arquivo.Observe que a primeira partição provavelmente está montada
/boot
na segunda partição quando o sistema está em execução.fonte
kpartx -a whatever.img
nós (loop) apropriados, que você pode montar posteriormente à vontade. Executekpartx -d whatever.img
para excluir os nós de loop (não montados).sizelimit
opção Para mais informações: unix.stackexchange.com/a/342466/9689 . (. Aliás resposta acima pode ser actualizado para proporcionar um exemplo de utilização do que opção)$((8192*512))
.losetup
fornece análise de partição-P
. Usar isso facilita a montagem de partições de uma imagem de disco completa, como a imagem do cartão SD Raspbian:fonte
No começo, eu estava usando o awk / grep para analisar o fdisk e obter as compensações, mas achei que poderia ser um pouco complicado, flakey e difícil de entender posteriormente. O método mais fácil que encontrei:
Isso cria uma temp-dir para você, auto-atribui o próximo loop-dispositivo e define-se para você como
p1
ep2
partição dispositivos e montagens de inicialização e raiz.Você também pode colocar a parte da limpeza em uma armadilha de saída; portanto, se algo falhar, você não terá montagens / arquivos pendentes:
fonte
Caso o fdisk -l apareça com setores em vez de blocos no Arch linux ... Outra maneira de encontrar o número de blocos no caso do "erro de loop sobreposto" é subtrair o deslocamento em bytes da primeira partição da segunda partição e divida por dois. Por exemplo (62914560-4194304) / 2 = 29360128
fonte