\section{debugfs}
\index{debugfs}
\subsubsection{NOME }
debugfs - um depurador do sistema de arquivos ext2  \subsubsection{SINOPSE }
\textbf{debugfs} 
[ \textbf{-w} ] [ \textbf{-f } arquivo-de-comandos ] [ \textbf{-R} solicitação ] [ \textbf{-V} ] [ dispositivo ] 
 \subsubsection{DESCRIÇÃO }
O programa \textbf{debugfs } é um depurador do sistema de arquivos. Ele 
pode ser usado para examinar e mudar o estado de um sistema de arquivos 
ext2.  

\textit{dispositivo} é o arquivo especial correspondente ao dispositivo contendo 
o sistema de arquivos ext2 (ex. /dev/hdXX).  \subsubsection{OPÇÕES }
\begin{dispitems}
\item [\textit{-w}] Especifica que o 
sistema de arquivos deve ser aberto em modo de leitura e gravação. Sem 
esta opção, o sistema de arquivos é aberto em modo somente de leitura. 

\item [\textit{-f} arquivo] Faz com que \textbf{debugfs} leia os comandos em \textit{arquivo},\textit{} 
e execute-os. Quando  \textbf{debugfs} terminar de executar os comandos, ele irá 
terminar. 
\item [\textit{-R} solicitação] Faz com que \textbf{debugfs} execute o único comando \textit{solicitação}, 
e então terminar. 
\item [\textit{-V}  ] Exibe o número de versão de  \textbf{debugfs} e encerra sua 
execução. 
\end{dispitems}
 \subsubsection{COMANDOS }
\textbf{debugfs} é um depurador interativo. Ele entende vários 
comandos. \begin{dispitems}
\item [\textit{cat} arquivo  ] Mostra o conteúdo do inode \textit{arquivo} na saída padrão. 
\item [\textit{cd} dir  ] Muda o diretório de trabalho para \textit{dir}. 
\item [\textit{chroot} dir  ] Muda o diretório 
raiz para \textit{dir}. 
\item [\textit{close}  ] Fecha o sistema de arquivos atualmente aberto. 
\item [\textit{clri} 
arquivo  ] Limpa o conteúdo do inode \textit{arquivo}. 
\item [\textit{dump} [-p] arquivo arquivo-de-saída] Descarrega o conteúdo do inode \textit{arquivo} para o arquivo \textit{arquivo-de-saída}.\textit{} 
Se a opção \textit{-p}  for dada, então define informações sobre o dono, grupo e 
permissões de \textit{arquivo-de-saída} para que casem com as de \textit{arquivo}. 
\item [\textit{expand\_dir} 
arquivo  ] 

Expande o diretório \textit{arquivo}. 
\item [\textit{find\_free\_block} [início]  ] Acha o 
primeiro bloco livre, começando por \textit{início} e o aloca. 
\item [\textit{find\_free\_inode} [arquivo 
[modo]]  ] Acha um inode livre e o aloca. Se presente, \textit{arquivo} especifica 
o número do inode do diretório cujo inode será localizado. O segundo parâmetro 
opcional \textit{modo} especifica as permissões do novo inode. (Se o bit de diretório 
for definido no modo, a rotina de alocação irá funcionar diferentemente). 

\item [\textit{freeb} bloco  ] Marca o bloco número \textit{bloco} como não alocado. 
\item [\textit{freei} arquivo 
 ] Libera o inode especificado por \textit{arquivo}. 
\item [\textit{help}  ] Exibe uma lista de comandos 
entendidos por \textbf{\textsf{debugfs}(8)}. 
\item [\textit{icheck} bloco ...  ] Exibe uma listagem dos inodes 
que usam os blocos especificados na linha de comando. 
\item [\textit{initialize} dispositivo 
tamanho-dos-blocos  ] Cria um sistema de arquivos ext2 no \textit{dispositivo} com 
o tamanho dos blocos \textit{tamanho-dos-blocos}. Note que isto não inicia completamente 
todas as estruturas de dados; para isso, use o programa \textbf{\textsf{mke2fs}(8)}. Isto 
apenas faz uma chamada à biblioteca de baixo nível, que define o superbloco 
e os descritores de blocos. 
\item [\textit{kill\_file} arquivo  ] Desaloca o inode \textit{arquivo} 
e os seus blocos. Note que isto não remove nenhuma entrada de diretório 
(se existir) neste inode. Veja o comando \textit{rm} se você deseja desvincular 
um arquivo. 
\item [\textit{ln} arquivo destino  ] Cria um vínculo de nome \textit{destino} que é um 
vínculo para \textit{arquivo}. Note que isto não ajusta a contagem de referências 
do inode. 
\item [\textit{ls} [-l] arquivo  ] Exibe uma listagem dos arquivos no diretório 
\textit{arquivo}. 
\item [\textit{modify\_inode} arquivo  ] Modifica o conteúdo da estrutura do inode 
\textit{arquivo}. 
\item [\textit{mkdir} arquivo  ] Cria um diretório de nome \textit{arquivo}. 
\item [\textit{mknod} arquivo 
[p$|$[[c$|$b] majoritário minoritário]]  ] Cria um arquivo especial de dispositivo 
(um pipe nomeado, ou dispositivo de caractere ou bloco). Se um dispositivo 
de caractere ou bloco será criado, os número de dispositivo \textit{majoritário} 
e \textit{minoritário} devem ser especificados. 
\item [\textit{ncheck} num-inode ...  ] Recebe a lista 
requisitada de números de inodes, e exibe uma listagem de caminhos para 
aqueles inodes. 
\item [\textit{open} [-w] dispositivo  ] Abre um sistema de arquivos para 
edição. 
\item [\textit{pwd}  ] Exibe o diretório de trabalho atual. 
\item [\textit{quit}  ] Encerra o \textbf{debugfs}. 

\item [\textit{rm} caminho  ] Desvincula o \textit{caminho}. Isto faz com que o inode apontado por 
\textit{caminho} fique sem nenhuma referência, desalocando o arquivo. Este comando 
funciona como a chamada do sistema unlink(). \textit{} 
\item [\textit{rmdir} arquivo  ] Remove o diretório 
de nome \textit{arquivo}. Esta função ainda não está implementada. 
\item [\textit{setb} bloco  ] Marca 
o bloco número \textit{bloco} como alocado. 
\item [\textit{seti} arquivo  ] Marca o inode \textit{arquivo} 
como em uso no mapa de inodes. 
\item [\textit{show\_super\_stats}  ] Exibe o conteúdo do superbloco. 

\item [\textit{stat} arquivo  ] Exibe o conteúdo da estrutura do inode \textit{arquivo}. 
\item [\textit{testb} bloco 
 ] Testa se o bloco número \textit{bloco} está marcado como alocado no mapa de blocos. 

\item [\textit{testi} arquivo  ] Testa se o inode \textit{arquivo} está marcado como alocado no mapa 
de inodes. 
\item [\textit{unlink} caminho  ] Remove o link especificado por \textit{caminho} para 
um inode. Note que isto não ajusta a contagem de referências do inode. 
\item [\textit{write} 
arquivo-origem arquivo-de-saída  ] Cria um arquivo no sistema de arquivos de 
nome \textit{arquivo-de-saída}, e copia o conteúdo de \textit{arquivo-origem} pra o arquivo 
de destino. 
\end{dispitems}
 \subsubsection{ESPECIFICANDO ARQUIVOS }
Muitos comandos do \textbf{debugfs} recebem 
um \textit{arquivo} como um parâmetro para especificar um inode (oposto a  \textit{caminho})\textit{} 
no sistema de arquivos que está atualmente aberto por debugfs. O argumento 
\textit{arquivo} pode ser especificado de duas formas. A primeira forma é um número 
de inode cercado por sinais de menor e maior, ex., \textit{$<$2$>$}. A segunda forma é 
um caminho; se o caminho for prefixado por uma barra ('/'), então é interpretado 
como sendo relativo à raiz do sistema de arquivos que está atualmente 
aberto por debugfs. Se não, o caminho é interpretado relativo ao diretório 
de trabalho atual como mantido por debugfs. Este pode ser modificado usando 
o comando do debugfs \textit{cd}.  

\textbf{Nota de tradução:} Note que \textit{arquivo} pode também 
ser um diretório, já que para o sistema de arquivos um diretório é apenas 
um tipo diferente de arquivo.  \subsubsection{AUTOR }
\textbf{debugfs} foi escrito por Theodore Ts'o 
$<$tytso@mit.edu$>$. 

  \subsubsection{VEJA TAMBÉM }
\textbf{\textsf{dumpe2fs}(8)}, 
\textbf{\textsf{e2fsck}(8)}, \textbf{\textsf{mke2fs}(8)} 
