Pelo que entendi, cada arquivo em um sistema operacional semelhante ao Unix tem um número de inode (que pode ser visualizado com "ls -i"), e cada inode é uma lista de blocos de disco que contêm os dados reais de um arquivo.
Existe um comando Linux que usa um nome de arquivo como argumento e imprime a lista de blocos de disco apontados pelo inode desse arquivo?
PS O sistema de arquivos em questão é ext3.
linux
unix
filesystems
ext3
Mike
fonte
fonte
File not found by ext2_lookup
. Portanto, é melhor usar a notação inode para o argumento stat. Usels -i
para obter o número de inode de um arquivo e, em seguida, chame debugfs com esse número em '<>' em vez de / path / to / file. Por exemplo:# debugfs -R "stat <1234567>" /dev/sda2
path/to/file
não deve funcionar em todos os casos? O que é confuso para mim é que, comodebugfs ..... /dev/fs_blockdev
há, em minha compreensão, apenas um sistema de arquivos em consideração, e todos os arquivos dentro deste sistema podem ser acessados por seu caminho ou por seu inode, o que você deseja expressar?debugfs -R "stat /home/myuser/foo.txt" /dev/sda5
resultará em um erro. Mas invocardebugfs -R "stat /path/on/rootfs" /dev/sda3
obras.sudo
, caso contrário, alguma mensagem inútil será exibida.Veja a sintaxe para "debugfs" e, especificamente, o comando "stat". Isso mostrará uma lista dos blocos de dados usados por um arquivo. Você pode passar parâmetros para "debugfs" com o argumento "-f" para chamá-lo a partir de um script.
fonte
Uma maneira simples de obter a lista de blocos (sem precisar ler da partição como nas
debugfs
respostas) é usar oFIBMAP
ioctl. Não conheço nenhum comando para fazê-lo, mas é muito simples escrever um; uma rápida pesquisa no Google me deu um exemplo de uso do FIBMAP , que faz exatamente o que você deseja. Uma vantagem é que ele funcionará em qualquer sistema de arquivos que suporte abmap
operação, não apenas no ext3.Uma alternativa mais nova (e mais eficiente) é o
FIEMAP
ioctl, que também pode retornar informações detalhadas sobre extensões (útil para ext4).fonte
Não vou trabalhar no zfs, mas no ext4, btrfs, (v) fat, etc
man 8 hdparm
:fonte
Pelo menos em algumas máquinas Linux ... "ls -s" pode fornecer o que você está procurando.
Edit: meu mal, vejo que você está procurando uma lista dos próprios blocos, não uma contagem deles.
fonte
e2fsck -b 32768 / dev / hda1 eu sinto que você pode tentar isso ou se você estiver procurando mais docx no mesmo, você pode verificar o seguinte
http://www.linux-tutorial.info/modules.php?name=MContent&pageid=97
fonte