Acho que não. Você definitivamente precisaria de uma ferramenta além disso ls.
strugee
Não. Por que você não nos diz o que está tentando alcançar?
Jasonwryan
1
para aqueles momentos em que quero montar algum dispositivo, mas não me lembro se é sda1 / 2/3/4/5/6, etc. Só precisa listar os arquivos nesse dispositivo para me dar uma pista se é o dispositivo que eu sou procurando
lampoon 17/09/2013
A propósito: se você tem uma imagem de um disco (não uma partição), poderá ver seus arquivos testdiskexecutando o testdiskcomando com um caminho de arquivo de imagem como seu primeiro parâmetro na linha de comando.
Abbafei 21/10
Respostas:
11
Você pode usar o debugfsprograma de e2fsprogs . Apesar do nome histórico, ele funcionará em sistemas de arquivos ext2 / 3/4. O uso é simples:
onde "ls -l" é um debugfscomando específico que age principalmente como ls -l; você não pode usar nenhum comando arbitrário do shell lá. Por padrão, o debugfs abre uma unidade no modo somente leitura, portanto isso é relativamente seguro; por exemplo, tentar isso em uma partição não ext2 / 3/4 apenas fornece um diagnóstico:
# debugfs -R "ls -l" /dev/sda2
/dev/sda2: Bad magic number in super-block while opening filesystem
ls: Filesystem not open
Não posso dizer que considero essa prática recomendável, mas fará o que você pedir.
O objetivo de montar um sistema de arquivos é acessar seus arquivos. Portanto, não, em geral, você não pode acessar os arquivos de um sistema de arquivos sem montá-lo.
Existem alguns utilitários que acessam um arquivo diretamente sem montagem, como debugfs para sistemas de arquivos ext2 / ext3 / ext4 e mtools para sistemas de arquivos FAT.
Para um ext2 / ext3 / ext4, em vez de chamar o programa perigoso e difícil de usar debugfs, é possível listar seu último local de montagem:
tune2fs -l /dev/sda1 | grep 'Last mounted'
No entanto, isso só é útil se o último local de montagem tiver sido gravado.
A maioria dos tipos de sistemas de arquivos suporta a atribuição de rótulos aos sistemas de arquivos (por exemplo tune2fs -L foo). Portanto, dê a todos os seus sistemas de arquivos um rótulo exclusivo. Em seguida, monte o sistema de arquivos pelo rótulo:
Resposta simples: você não pode. lsusa rotinas libc padrão que se traduzem em chamadas do sistema atendidas pelo driver do sistema de arquivos, portanto, não é possível usar ls(ou qualquer coisa que utilize essas chamadas do sistema) sem montar o sistema de arquivos.
Você poderia escrever um utilitário que contornasse isso tendo sua própria cópia de algumas partes do driver do sistema de arquivos (existe, por exemplo, para a leitura de sistemas de arquivos Ext2 no Windows), mas isso é bastante impraticável.
Se o seu problema é apenas identificar as partições, você provavelmente deve começar a usar o GPT, que possui espaço para nomes de partições (72 bytes por partição). Algumas soluções subjacentes (Linux MD ou LVM, por exemplo) também permitem nomes.
Como descrito anteriormente, o debugfs funciona bem.
debugfs -R "ls -l" /dev/sda1
Para NTFS, há ntfsls de ntfs-3g.
ntfsls /dev/sda2
Para o FAT, existe o mdir, do mtools.
mdir -i /dev/sdc1
Para exFAT, não tenho certeza. Parece que o exfat-utils não inclui nenhuma ferramenta semelhante à descrita acima. No entanto, existe dumpexfat, mas acho que não fornecerá as informações solicitadas.
Para descobrir mais detalhes sobre as unidades conectadas, acesse lsblk.
lsblk
Pessoalmente, prefiro isso e defini um alias para ele:
alias lsblk="lsblk -o MODEL,TRAN,NAME,FSTYPE,LABEL,MOUNTPOINT,SIZE,MAJ:MIN"
ls
.testdisk
executando otestdisk
comando com um caminho de arquivo de imagem como seu primeiro parâmetro na linha de comando.Respostas:
Você pode usar o
debugfs
programa de e2fsprogs . Apesar do nome histórico, ele funcionará em sistemas de arquivos ext2 / 3/4. O uso é simples:onde "ls -l" é um
debugfs
comando específico que age principalmente comols -l
; você não pode usar nenhum comando arbitrário do shell lá. Por padrão, o debugfs abre uma unidade no modo somente leitura, portanto isso é relativamente seguro; por exemplo, tentar isso em uma partição não ext2 / 3/4 apenas fornece um diagnóstico:Não posso dizer que considero essa prática recomendável, mas fará o que você pedir.
fonte
O objetivo de montar um sistema de arquivos é acessar seus arquivos. Portanto, não, em geral, você não pode acessar os arquivos de um sistema de arquivos sem montá-lo.
Existem alguns utilitários que acessam um arquivo diretamente sem montagem, como debugfs para sistemas de arquivos ext2 / ext3 / ext4 e mtools para sistemas de arquivos FAT.
Para um ext2 / ext3 / ext4, em vez de chamar o programa perigoso e difícil de usar
debugfs
, é possível listar seu último local de montagem:No entanto, isso só é útil se o último local de montagem tiver sido gravado.
A maioria dos tipos de sistemas de arquivos suporta a atribuição de rótulos aos sistemas de arquivos (por exemplo
tune2fs -L foo
). Portanto, dê a todos os seus sistemas de arquivos um rótulo exclusivo. Em seguida, monte o sistema de arquivos pelo rótulo:ou
fonte
Resposta simples: você não pode.
ls
usa rotinas libc padrão que se traduzem em chamadas do sistema atendidas pelo driver do sistema de arquivos, portanto, não é possível usarls
(ou qualquer coisa que utilize essas chamadas do sistema) sem montar o sistema de arquivos.Você poderia escrever um utilitário que contornasse isso tendo sua própria cópia de algumas partes do driver do sistema de arquivos (existe, por exemplo, para a leitura de sistemas de arquivos Ext2 no Windows), mas isso é bastante impraticável.
Se o seu problema é apenas identificar as partições, você provavelmente deve começar a usar o GPT, que possui espaço para nomes de partições (72 bytes por partição). Algumas soluções subjacentes (Linux MD ou LVM, por exemplo) também permitem nomes.
fonte
Como descrito anteriormente, o debugfs funciona bem.
Para NTFS, há ntfsls de ntfs-3g.
Para o FAT, existe o mdir, do mtools.
Para exFAT, não tenho certeza. Parece que o exfat-utils não inclui nenhuma ferramenta semelhante à descrita acima. No entanto, existe dumpexfat, mas acho que não fornecerá as informações solicitadas.
Para descobrir mais detalhes sobre as unidades conectadas, acesse lsblk.
Pessoalmente, prefiro isso e defini um alias para ele:
fonte