Quero descobrir todas as partições no meu dispositivo, juntamente com as respectivas. pontos ou etiquetas de montagem (ou seja, para saber qual partição está segurando system
, recovery
, boot
, etc.). Isso precisa ser independente do dispositivo (como eu tenho vários dispositivos). O objetivo é para dd
eles e saber qual imagem é o quê.
Eu vi o Command para listar os pontos de montagem da partição? - no entanto, o objetivo era apenas uma lista de partições montadas. Eu preciso de todos eles e, por exemplo, /recovery
não está montado ao inicializar no "modo de trabalho normal".
Até agora, minha pesquisa trouxe várias abordagens - mas nenhuma delas funciona em nenhum dos dispositivos que eu testei:
cat /proc/mtd
: vazio ou inexistentecat /proc/emmc
: vazio ou inexistentecat /proc/dumchar_info
: inexistente (MTK / MediaTek)ls -al /dev/block/platform/*/by-name
: inexistente ou sem os detalhes desejados
Alguma idéia do que eu poderia ter perdido? É claro que eu poderia andar com todos os /dev/block/mmcblk0p*
dispositivos, despejá-los e resolvê-los mais tarde - mas então tive que repetir essa investigação para todos os meus dispositivos (e novamente quando alguém aparecer com outro), então isso não tem solução.
Edição: Observe a marca de linha de comando para esta pergunta. Vou ter que acessar essas informações via ADB e não quero instalar algum aplicativo em um dispositivo que me foi entregue para investigação. Considere "antecedentes forenses" (sem alterações no dispositivo), embora isso não seja exatamente verdade;)
Também peço desculpas por minhas frases errôneas iniciais: os "pontos de montagem" são interessantes apenas até o momento, revelando o objetivo da partição. Eu não quero montar / remontar eles :)
fonte
Respostas:
Como as respostas existentes já mostram, parece não haver uma "maneira única" de conseguir isso. Então, comecei a combinar idéias de todo o lado, juntando-as a um script (ou melhor, a uma "biblioteca de scripts") para verificá-las sequencialmente (até que um bom acerto fosse feito), e integrei isso à minha "Ferramenta de documentação de dispositivos" chamada Adebar . Os interessados podem encontrá-lo no
lib/partitions.lib
arquivo. Como o Adebar é de código aberto (GPLv2), fique à vontade para copiá-lo e usá-lo - ou bifurcar o projeto e melhorá-lo.A solução completa demora um pouco para ser postada aqui (como dito, você pode acessá-la no Github), mas como nossa política é incluir pelo menos a parte geral da publicação, veja o que ela faz:
Fontes diferentes fornecem conjuntos de detalhes diferentes, então ele tenta os "melhores" primeiro - e depois volta a funcionar até que pelo menos algo foi encontrado.
/proc/dumchar_info
fornece mais detalhes, portanto, isso é tentado primeiro. Usuários felizes do MTK conseguirão isso./proc/mtd
é a segunda melhor fonte./proc/emmc
deve ter quase tanto quanto os candidatos anteriores, mas é um pouco complicado de usar/dev/block/platform/*/by-name
, verificado com…/proc/partitions
com uma verificação cruzada/proc/mounts
nos fornece pelo menos as partições montadasPortanto, o script que eu construí basicamente percorre as fontes nesta ordem, parando assim que foi possível coletar detalhes (por exemplo, se
/proc/dumchar_info
foi encontrado, não é necessário analisar todos os outros). Todos eles colocam em funções separadas, retornando dados usando a mesma estrutura, podendo até mesclar os resultados de todos eles.Se alguém pode encontrar uma solução melhor, é claro que estou sempre aberto à idéia :)
fonte
Eu me deparei com essa pergunta. Eu gosto de um desafio ...
Ferramentas que eu usei: BusyBox
Eu vim com 3 comandos (um que você listou) para dar algumas informações sobre as partições
Resultado:Resultado:
Resultado:
fonte
busybox
(que infelizmente não está disponível em "dispositivos de alguns amigos" que recebo).blkid
não revela qual partição é (inicialização, recuperação, etc.) e*/by-name/*
não existe em todos os dispositivos (e quando isso acontece, os nomes às vezes são bem enigmáticos - por exemplo, no meu LG Optimus 4X, os nomes são todos 3- somente caracteres e não necessariamente "falando").df
lista apenas os dispositivos montados, de modo que não será exibido, por exemplo, recuperação ao executar no "modo normal" - portanto, aqui é mais fácil usar/proc/mounts
./proc/mtd
- mas, infelizmente, isso não parece mais ser preenchido com os dispositivos atuais. Em alguns dispositivos, eu até encontrei.fstab
arquivos, mas, novamente, a) não em todos eb) mesmo que eles não parecessem confiáveis (algumas partes estavam definitivamente erradas).KPARTX
O comando kpartx lê tabelas de partição e mapeia partições para os arquivos do dispositivo. Funciona em dispositivos e imagens de disco. Isso significa que podemos mapear partições HFS em uma imagem de disco para um arquivo de dispositivo de bloco especial e montar essas partições endereçando esse arquivo de dispositivo de bloco como se fosse parte de um dispositivo conectado.
http://linuxsleuthing.blogspot.com/2012/10/christmas-come-early-hfshfs-mounting.html
Os exemplos no link são para o MacBook Pro, mas imagens de disco diferentes devem funcionar bem, desde que apresentadas ao GNU Linux em RAW. (xmount - veja abaixo)
usage : kpartx [-a|-d|-l] [-f] [-v] wholedisk
xmount
O xmount permite converter rapidamente entre vários tipos de imagem de disco rígido de entrada e saída. O xmount cria um sistema de arquivos virtual usando o FUSE (Sistema de Arquivos no Espaço do Usuário) que contém uma representação virtual da imagem de entrada. A representação virtual pode estar no formato bruto de DD, DMG, VHD, disco virtual do VirtualBox ou no formato VMDK do VmWare. As imagens de entrada podem ser arquivos DD, EWF (Expert Witness Compression Format) ou AFF (Advanced Forensic Format). Além disso, o xmount também suporta acesso de gravação virtual aos arquivos de saída que são redirecionados para um arquivo de cache. Isso torna possível inicializar imagens de disco rígido adquiridas usando QEMU, KVM, VirtualBox, VmWare ou similares.
https://www.pinguin.lu/xmount
Posso fornecer detalhes e informações adicionais, se necessário ou necessário.
fonte
/recovery
partição de um dispositivo em execução. Isso não está montado no modo normal. Como faço para descobrir qual partição escolher? Com o exposto, eu tive que escolher todos eles e descobrir mais tarde. Produz muitos dados e leva muito tempo.DiskInfo será o aplicativo que você deseja. Ele mostrará todos os pontos de montagem, além de todas as partições desmontadas e todas as temp.
Esta é apenas uma interface gráfica, sem nenhuma outra funcionalidade real. Perfeito para sua necessidade. Isso requer que seja usado em um dispositivo totalmente inicializado. Raiz não é necessária.
Captura de tela (clique para uma variante maior)
fonte
command-line
etiqueta :) Acho que é melhor escrever isso explicitamente. Conheço vários aplicativos que mostram esses detalhes, mas preciso acessá-los / coletá-los por meioadb shell
e sem a ajuda de um aplicativo adicional (nem sempre é possível instalá-lo em um dispositivo que me foi entregue).