<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="../assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Linux Sin Humo (Publicaciones sobre filesystems)</title><link>https://sergiobelkin.com/</link><description></description><atom:link href="https://sergiobelkin.com/categories/filesystems.xml" rel="self" type="application/rss+xml"></atom:link><language>es</language><copyright>Contents © 2026 &lt;a href="mailto:sebelk@gmail.com"&gt;sebelk&lt;/a&gt; 
&lt;a rel="license" href="https://creativecommons.org/licenses/by-nc-sa/4.0/"&gt;
&lt;img alt="Creative Commons License BY-NC-SA"
style="border-width:0; margin-bottom:12px;"
src="https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png"&gt;&lt;/a&gt;
</copyright><lastBuildDate>Mon, 20 Apr 2026 23:54:29 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>¿Qué significa en Linux que todo es archivo?</title><link>https://sergiobelkin.com/posts/que-significa-en-linux-que-todo-es-archivo/</link><dc:creator>sebelk</dc:creator><description>&lt;p&gt;En un &lt;a href="https://www.sergiobelkin.com/posts/2008/10/26/una-presentacion-sobre-sistemas-de-archivos/"&gt;viejo artículo&lt;/a&gt;, hay una presentación en la que mencioné una frase bastante habitual en el mundo Unix/Linux: &lt;strong&gt;«Todo es archivo»&lt;/strong&gt;. Vamos a explicar qué significa realmente esa frase.&lt;/p&gt;
&lt;h3 id="todo-es-archivo"&gt;Todo es archivo&lt;/h3&gt;
&lt;p&gt;&lt;a class="image-reference" href="https://sergiobelkin.com/images/_8dd3f6d7-7b75-40a1-a463-6b1f2ce740bf.jpg"&gt;&lt;img src="https://sergiobelkin.com/images/_8dd3f6d7-7b75-40a1-a463-6b1f2ce740bf.thumbnail.jpg" alt="¿Todo es Archivo?"&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;En realidad, ese dicho no es del todo correcto. Sin embargo, proviene de lo que hoy tal vez podríamos llamar la &lt;strong&gt;filosofía Unix&lt;/strong&gt;. Probablemente, nadie dijo esa frase de manera literal en los primeros años de esa familia de sistemas operativos. Aun así, ideas de ese estilo estaban en la mente desde los comienzos y en los trabajos de por ejemplo, Bill Joy (pionero de TCP/IP). Linus Torvalds, no estuvo ausente en esta discusión. Y mucho más cerca en el tiempo,  Lennart Poettering, retoma esa idea una vez más para defender el trabajo realizado en systemd. Por si no se dieron cuenta dice Poettering la interfaz de cgroups están expuesta en un pseudo-sistema de archivos...&lt;/p&gt;
&lt;p&gt;Sin embargo, es más apropiado decir que todo es un descriptor de archivo o que todo puede tener un descriptor de archivo. 
En Linux un descriptor de archivo es un identificador único de proceso para un archivo u otro recurso de entrada o salida. Por ejemplo, no existe necesariamente un archivo para una interfaz de red. Sin embargo, existen sockets relacionados con ellas.&lt;/p&gt;
&lt;p&gt;En el siguiente ejemplo podemos ver los descriptores de archivos para la dirección ip 127.0.0.1 de la interfaz &lt;strong&gt;lo&lt;/strong&gt;.&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code literal-block"&gt;&lt;span class="n"&gt;sudo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;lsof&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="mf"&gt;@127.0.0.1&lt;/span&gt;
&lt;span class="n"&gt;COMMAND&lt;/span&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="n"&gt;PID&lt;/span&gt;&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="n"&gt;USER&lt;/span&gt;&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="n"&gt;FD&lt;/span&gt;&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="n"&gt;TYPE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;DEVICE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;SIZE&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;OFF&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;NODE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;NAME&lt;/span&gt;
&lt;span class="n"&gt;chronyd&lt;/span&gt;&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="mi"&gt;1337&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;chrony&lt;/span&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="mi"&gt;5u&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="n"&gt;IPv4&lt;/span&gt;&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="mi"&gt;8171&lt;/span&gt;&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="n"&gt;t0&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="n"&gt;UDP&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;127.0.0.1&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;323&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;
&lt;span class="n"&gt;cupsd&lt;/span&gt;&lt;span class="w"&gt;     &lt;/span&gt;&lt;span class="mi"&gt;1538&lt;/span&gt;&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="mi"&gt;7u&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="n"&gt;IPv4&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="mi"&gt;14727&lt;/span&gt;&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="n"&gt;t0&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="n"&gt;TCP&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;127.0.0.1&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="n"&gt;ipp&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;LISTEN&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;qemu&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;syst&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1774&lt;/span&gt;&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="n"&gt;qemu&lt;/span&gt;&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="mi"&gt;32u&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="n"&gt;IPv4&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="mi"&gt;19480&lt;/span&gt;&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="n"&gt;t0&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="n"&gt;TCP&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;127.0.0.1&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="n"&gt;rfb&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;LISTEN&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;syncthing&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;2620&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;sergio&lt;/span&gt;&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="mi"&gt;19u&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="n"&gt;IPv4&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="mi"&gt;22825&lt;/span&gt;&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="n"&gt;t0&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="n"&gt;TCP&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;127.0.0.1&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;8384&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;LISTEN&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;En este caso, vemos los descriptores de archivos de lectura y escritura 5u, 7u, 32u y 19u.&lt;/p&gt;
&lt;p&gt;Para ver la relación entre descriptores y sockets podemos hacer un ping a una determinada dirección ip:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code literal-block"&gt;ping -c 10000 9.9.9.9 &amp;amp;&amp;gt; /dev/null
&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Si buscamos los descriptores de archivos con lsfd, mostrará el siguiente resultado:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code literal-block"&gt;&lt;span class="nx"&gt;lsfd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;p&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;914323&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;Q&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;'&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;FD&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="err"&gt;'&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;
&lt;span class="nx"&gt;COMMAND&lt;/span&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;PID&lt;/span&gt;&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="nx"&gt;USER&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;ASSOC&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nx"&gt;XMODE&lt;/span&gt;&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="nx"&gt;TYPE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;SOURCE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;MNTID&lt;/span&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;INODE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;NAME&lt;/span&gt;
&lt;span class="nx"&gt;ping&lt;/span&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="mi"&gt;914323&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;sergio&lt;/span&gt;&lt;span class="w"&gt;     &lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;rw&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;D&lt;/span&gt;&lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;CHR&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nx"&gt;pts&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;6&lt;/span&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="mi"&gt;36&lt;/span&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="mi"&gt;9&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nx"&gt;dev&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nx"&gt;pts&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mi"&gt;6&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;
&lt;span class="nx"&gt;ping&lt;/span&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="mi"&gt;914323&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;sergio&lt;/span&gt;&lt;span class="w"&gt;     &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;w&lt;/span&gt;&lt;span class="o"&gt;----&lt;/span&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;CHR&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nx"&gt;mem&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="mi"&gt;34&lt;/span&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nx"&gt;dev&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nx"&gt;null&lt;/span&gt;
&lt;span class="nx"&gt;ping&lt;/span&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="mi"&gt;914323&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;sergio&lt;/span&gt;&lt;span class="w"&gt;     &lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;w&lt;/span&gt;&lt;span class="o"&gt;----&lt;/span&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;CHR&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nx"&gt;mem&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="mi"&gt;34&lt;/span&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nx"&gt;dev&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nx"&gt;null&lt;/span&gt;
&lt;span class="nx"&gt;ping&lt;/span&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="mi"&gt;914323&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;sergio&lt;/span&gt;&lt;span class="w"&gt;     &lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;rw&lt;/span&gt;&lt;span class="o"&gt;---&lt;/span&gt;&lt;span class="nx"&gt;m&lt;/span&gt;&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="nx"&gt;PING&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;sockfs&lt;/span&gt;&lt;span class="w"&gt;     &lt;/span&gt;&lt;span class="mi"&gt;9&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;30437500&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;state&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;close&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;id&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;35&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;laddr&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="m m-Double"&gt;0.0.0.0&lt;/span&gt;
&lt;span class="nx"&gt;ping&lt;/span&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="mi"&gt;914323&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;sergio&lt;/span&gt;&lt;span class="w"&gt;     &lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;rw&lt;/span&gt;&lt;span class="o"&gt;----&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;PINGv6&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;sockfs&lt;/span&gt;&lt;span class="w"&gt;     &lt;/span&gt;&lt;span class="mi"&gt;9&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;30437501&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;socket&lt;/span&gt;&lt;span class="p"&gt;:[&lt;/span&gt;&lt;span class="mi"&gt;30437501&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Analicemos cada descriptor de archivo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;0: Es la "standard input" que apunta  a una pseudoterminal (dispositivo de caracteres), al tratarlo como un archivo tiene permisos: de lectura y escritura.  Usa un sistema de archivos y como tal también maneja inodos.&lt;/li&gt;
&lt;li&gt;1: Es la "standard output" que apunta a /dev/null. Solamente tiene permisos de escritura, el sistema de archivos proviene de la memoria principal y tiene permisos solamente de escritura.&lt;/li&gt;
&lt;li&gt;2: Es el "standard error" que apunta también a /dev/null.&lt;/li&gt;
&lt;li&gt;3: Apunta a un socket de tipo IPv4, y tiene permisos de lectura y además está siendo utilizado por un evento de multiplexación.&lt;/li&gt;
&lt;li&gt;4: Finalmente tenemos el descriptor de 5 que apunta a un tipo de socket que usa IPv6.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Dentro del directorio /proc podemos ver que los descriptores 1 (salida estándar) y 2 (error estándar) se redirigen al archivo /dev/null, mientras tanto, 3 y 4 apuntan a sockets:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code literal-block"&gt;&lt;span class="n"&gt;ls&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;l&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;proc&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mi"&gt;914323&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;fd&lt;/span&gt;
&lt;span class="n"&gt;total&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;
&lt;span class="n"&gt;lrwx&lt;/span&gt;&lt;span class="o"&gt;------&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;sergio&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;sergio&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;64&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;may&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;19&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;17&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;33&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;'/dev/pts/6 (deleted)'&lt;/span&gt;
&lt;span class="n"&gt;l&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;wx&lt;/span&gt;&lt;span class="o"&gt;------&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;sergio&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;sergio&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;64&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;may&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;19&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;17&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;33&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;dev&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;null&lt;/span&gt;
&lt;span class="n"&gt;l&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;wx&lt;/span&gt;&lt;span class="o"&gt;------&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;sergio&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;sergio&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;64&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;may&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;19&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;17&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;33&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;dev&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;null&lt;/span&gt;
&lt;span class="n"&gt;lrwx&lt;/span&gt;&lt;span class="o"&gt;------&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;sergio&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;sergio&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;64&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;may&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;19&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;17&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;33&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;'socket:[30437500]'&lt;/span&gt;
&lt;span class="n"&gt;lrwx&lt;/span&gt;&lt;span class="o"&gt;------&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;sergio&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;sergio&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;64&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;may&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;19&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;17&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;33&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;'socket:[30437501]'&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Podemos hacer otra prueba, en este caso usaremos solamente ping sobre ipv6 y en lugar de redireccionar a /dev/null, lo haremos redirigiendo stdin y stderr a archivos regulares distintos:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code literal-block"&gt;ping6 -c 10000 ::1 &amp;gt; out.txt 2&amp;gt; errors.txt &amp;amp;
&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Aquí solamente usará un socket (ya que no usa ipv4):&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code literal-block"&gt;&lt;span class="nx"&gt;lsfd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;p&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;926928&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;Q&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;'&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;FD&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="err"&gt;'&lt;/span&gt;
&lt;span class="nx"&gt;COMMAND&lt;/span&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;PID&lt;/span&gt;&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="nx"&gt;USER&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;ASSOC&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nx"&gt;XMODE&lt;/span&gt;&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="nx"&gt;TYPE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;SOURCE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;MNTID&lt;/span&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;INODE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;NAME&lt;/span&gt;
&lt;span class="nx"&gt;ping6&lt;/span&gt;&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="mi"&gt;926928&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;sergio&lt;/span&gt;&lt;span class="w"&gt;     &lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;rw&lt;/span&gt;&lt;span class="o"&gt;----&lt;/span&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;CHR&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nx"&gt;pts&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;7&lt;/span&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="mi"&gt;36&lt;/span&gt;&lt;span class="w"&gt;       &lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nx"&gt;dev&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nx"&gt;pts&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mi"&gt;7&lt;/span&gt;
&lt;span class="nx"&gt;ping6&lt;/span&gt;&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="mi"&gt;926928&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;sergio&lt;/span&gt;&lt;span class="w"&gt;     &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;w&lt;/span&gt;&lt;span class="o"&gt;----&lt;/span&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;REG&lt;/span&gt;&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;34&lt;/span&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="mi"&gt;52&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;38207299&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nx"&gt;tmp&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nx"&gt;out&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;txt&lt;/span&gt;
&lt;span class="nx"&gt;ping6&lt;/span&gt;&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="mi"&gt;926928&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;sergio&lt;/span&gt;&lt;span class="w"&gt;     &lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;w&lt;/span&gt;&lt;span class="o"&gt;----&lt;/span&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;REG&lt;/span&gt;&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;34&lt;/span&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="mi"&gt;52&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;38207300&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nx"&gt;tmp&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nx"&gt;errors&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;txt&lt;/span&gt;
&lt;span class="nx"&gt;ping6&lt;/span&gt;&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="mi"&gt;926928&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;sergio&lt;/span&gt;&lt;span class="w"&gt;     &lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;rw&lt;/span&gt;&lt;span class="o"&gt;----&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;PINGv6&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;sockfs&lt;/span&gt;&lt;span class="w"&gt;     &lt;/span&gt;&lt;span class="mi"&gt;9&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;31193485&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;state&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;close&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;id&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;44&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;laddr&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;¿Qué sucede si se borra /tmp/errors.txt?&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code literal-block"&gt;&lt;span class="nx"&gt;lsfd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;p&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;926928&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;Q&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;'&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;FD&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="err"&gt;'&lt;/span&gt;
&lt;span class="nx"&gt;COMMAND&lt;/span&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;PID&lt;/span&gt;&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="nx"&gt;USER&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;ASSOC&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nx"&gt;XMODE&lt;/span&gt;&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="nx"&gt;TYPE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;SOURCE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;MNTID&lt;/span&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;INODE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;NAME&lt;/span&gt;
&lt;span class="nx"&gt;ping6&lt;/span&gt;&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="mi"&gt;926928&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;sergio&lt;/span&gt;&lt;span class="w"&gt;     &lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;rw&lt;/span&gt;&lt;span class="o"&gt;----&lt;/span&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;CHR&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nx"&gt;pts&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;7&lt;/span&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="mi"&gt;36&lt;/span&gt;&lt;span class="w"&gt;       &lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nx"&gt;dev&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nx"&gt;pts&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mi"&gt;7&lt;/span&gt;
&lt;span class="nx"&gt;ping6&lt;/span&gt;&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="mi"&gt;926928&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;sergio&lt;/span&gt;&lt;span class="w"&gt;     &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;w&lt;/span&gt;&lt;span class="o"&gt;----&lt;/span&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;REG&lt;/span&gt;&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;34&lt;/span&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="mi"&gt;52&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;38207299&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nx"&gt;tmp&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nx"&gt;out&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;txt&lt;/span&gt;
&lt;span class="nx"&gt;ping6&lt;/span&gt;&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="mi"&gt;926928&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;sergio&lt;/span&gt;&lt;span class="w"&gt;     &lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;w&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;D&lt;/span&gt;&lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nx"&gt;REG&lt;/span&gt;&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;34&lt;/span&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="mi"&gt;52&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;38207300&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nx"&gt;tmp&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nx"&gt;errors&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;txt&lt;/span&gt;
&lt;span class="nx"&gt;ping6&lt;/span&gt;&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="mi"&gt;926928&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;sergio&lt;/span&gt;&lt;span class="w"&gt;     &lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;rw&lt;/span&gt;&lt;span class="o"&gt;----&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;PINGv6&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;sockfs&lt;/span&gt;&lt;span class="w"&gt;     &lt;/span&gt;&lt;span class="mi"&gt;9&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;31193485&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;state&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;close&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;id&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;44&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;laddr&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Bueno, veremos que el archivo aparece con el flag &lt;strong&gt;D&lt;/strong&gt; indicando que borró del respectivo sistema de archivos. &lt;/p&gt;
&lt;p&gt;Por lo tanto, si bien literalmente no todo es archivo, podemos afirmar que en general podríamos mediante los descriptores de archivos establecer un puente entre un proceso y los recursos a los que está accediendo. En definitiva, un descriptor de archivos, permite al proceso comunicarse con el recurso subyacente de manera eficiente y uniforme, independientemente de si el recurso es un archivo en el sistema de archivos, un dispositivo de hardware o un socket de red.&lt;/p&gt;
&lt;h3 id="enlaces-utiles"&gt;Enlaces útiles&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://en.wikipedia.org/wiki/Everything_is_a_file"&gt;Everything is a file, artículo de Wikipedia&lt;/a&gt; y &lt;a href="https://en.wikipedia.org/wiki/Talk:Everything_is_a_file"&gt;es interesante leer la discusión sobre ese artículo, allí se menciona a Bill Joy&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://lwn.net/Articles/411845/"&gt;Patrones de diseño en la historia de Unix&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=9-IWMbJXoLM"&gt;Una charla en la que alguien manifiesta sus experiencias trabajando con Linux y el concepto de "todo es archivo", el expositor agrega además, experiencias sobre otros temas menos técnicos&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://yarchive.net/comp/linux/everything_is_file.html"&gt;Linus Torvalds dando su punto de vista sobre el tema&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://0pointer.de/blog/projects/the-biggest-myths"&gt;El creador de systemd haciendo mención a esta famosa tradición Unix&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description><category>filesystems</category><guid>https://sergiobelkin.com/posts/que-significa-en-linux-que-todo-es-archivo/</guid><pubDate>Mon, 13 May 2024 21:14:03 GMT</pubDate></item><item><title>¿Es btrfs el sistema de archivos que estábamos esperando?</title><link>https://sergiobelkin.com/posts/es-btrfs-el-filesystem-esperado/</link><dc:creator>sebelk</dc:creator><description>&lt;p&gt;Digásmolo: &lt;strong&gt;btrfs&lt;/strong&gt; es un sistema de archivos moderno para Linux.&lt;/p&gt;
&lt;p&gt;Alguien leyendo esto seguramente va a pensar:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;¿Qué está diciendo? ¿Cuál es la novedad?
¿Acaso no se puede rastrear los orígenes de btrfs por lo menos hasta el año 2007?
¿No es cierto que SUSE lo usa desde 2012?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a class="image-reference" href="https://sergiobelkin.com/images/nathan-dumlao-qTigcoSKke8-unsplash.jpg"&gt;&lt;img src="https://sergiobelkin.com/images/nathan-dumlao-qTigcoSKke8-unsplash.thumbnail.jpg" alt="Butter Ef Es"&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&lt;span&gt;Photo by &lt;a href="https://unsplash.com/@nate_dumlao?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;Nathan Dumlao&lt;/a&gt; on &lt;a href="https://unsplash.com/s/photos/butter?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;Unsplash&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Sí, todo es cierto, sin embargo, veamos la siguiente tabla:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Año&lt;/th&gt;
&lt;th&gt;Filesystem&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1993&lt;/td&gt;
&lt;td&gt;XFS&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1993&lt;/td&gt;
&lt;td&gt;NTFS&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1998&lt;/td&gt;
&lt;td&gt;HFS+&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1998&lt;/td&gt;
&lt;td&gt;FAT32&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2005&lt;/td&gt;
&lt;td&gt;ZFS&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2006&lt;/td&gt;
&lt;td&gt;exFAT&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2008&lt;/td&gt;
&lt;td&gt;ext4&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2009&lt;/td&gt;
&lt;td&gt;btrfs&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2016&lt;/td&gt;
&lt;td&gt;APFS&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;La fecha de btrfs la situamos en 2009, ya que fue el año en que fue incorporado en Linux. En comparación a los demás sistemas de archivos de Linux es el más moderno (sí, ya se que existe stratis). Otro objetará diciendo que cronológicamente no hay mucho diferencia entre ext4 y btrfs. Sin embargo, leamos lo que dijo Theodore Ts'o:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Aunque ext4 tiene características mejoradas, no es un avance significativo, usa tecnología vieja y es una solución a corto plazo.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Y respecto a btrfs tuvo estos comentarios auspiciosos:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;ofrece mejoras en escalabildad, confiabilidad, y facilidad de administración&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Ah, ¿Ya dije que Ts'o es uno de los principales desarrolladores del sistema de archivos ext4?&lt;/p&gt;
&lt;p&gt;Comparado con los demás sistemas operativos la ventaja es mucho más clara (HFS+ y NTFS). El sistema de archivos APFS es cierto es relativamente nuevo y apareció junto con macOS High Sierra. Es decir: Apple se tomó casi 20 años en crear un nuevo sistema de archivos. También hay que decir que en cuanto a funcionalidades, APFS y btrfs están prácticamente igualados.&lt;/p&gt;
&lt;p&gt;Btrfs ofrece una buena cantidad de características, las que me parece importante resaltar son:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Subvolúmenes&lt;/strong&gt;: Es un directorio que funciona como un volumen. Como tal, tiene su propia espacio de inodos. Por ejemplo:&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a class="image-reference" href="https://sergiobelkin.com/images/ksnip_20201213-182826.png"&gt;&lt;img src="https://sergiobelkin.com/images/ksnip_20201213-182826.thumbnail.png" alt="Cada subvolumen tiene su propio espacio de inodos"&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;Cada uno de estos archivos muestran un dispositivo diferente:&lt;/p&gt;
&lt;p&gt;&lt;a class="image-reference" href="https://sergiobelkin.com/images/ksnip_20201213-183633.png"&gt;&lt;img src="https://sergiobelkin.com/images/ksnip_20201213-183633.png" alt="Cada volumen tiene un número de dispositivo distinto"&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;No obstante, cabe aclarar que no son dispositivos de bloque distintos como podría ser un volumen lógico en LVM.&lt;/p&gt;
&lt;p&gt;Cada subvolumen puede ser montado con diferentes opciones e incluso en un +arbol completamente independiente para el usuario o aplicaciones que accede al mismo.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;CoW&lt;/strong&gt;: Los usuarios de Linux estamos acostumbrados a usar enlaces duros y enlaces simbóicos. Cada uno tiene sus ventajas y limitaciones. Esta funcionalidad permite copiar un archivo usando otro inodo pero sin consumir más espacio, ya que referencia en realidad al archivo original. Si se hace una modificación en la copia, los metadatos comienzan a apuntar a los nuevos datos. Gracias esta característica podemos hacer subvolumenes que contengan una instantánea de otro subvolumen existente. Todo esto de una manera mucho más consistente que con LVM.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Compresión: Otra de las ventajas es la compresión transparente, la cual puede ser por el sistema de archivo entero, por directorio o por archivo (pero por ahora, no por subvolumen).&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a class="image-reference" href="https://sergiobelkin.com/images/ksnip_20201213-192358.png"&gt;&lt;img src="https://sergiobelkin.com/images/ksnip_20201213-192358.thumbnail.png" alt=""&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;Hay muchas razones para creer que btrfs puede y/o debería reemplazar a ext4 o xfs. De paso recordemos que xfs no soporta achicar un sistema de archivos y si pensamos zfs como una buena opción, hay problemas tanto de licenciamiento como en rendimiento (ver el artículo de Valerie Aurora, creadora de &lt;em&gt;relatime&lt;/em&gt; y autoridad en la materia). 
Las ediciones de Fedora 33 para estaciones de trabajo y SUSE/openSUSE usan btrfs como sistema de archivos predeterminado. De esta manera podríamos prescindir de LVM e incluso de mdadm para RAID (btrfs tiene su propio soporte para RAID - aunque hay que tener en cuenta que RAID[56] no se considera estable aun).
El proyecto btrfs debería tener cuidado de sí mismo, tiene tantas funcionalidades que como dice el dicho "lo perfecto es enemigo de lo bueno" (Ah, por cierto el autor de la frase es de Voltaire, alguien que precisamente no se conformaba con poco). Es decir, el único riesgo que veo en el futuro es convertirse en algo tan complejo que sea difícil de administrar o mantener.
Veremos en unos años si logra posicionarse como el sistema de archivos de código abierto más utilizado.&lt;/p&gt;
&lt;h4 id="fuentes-y-mas-recursos"&gt;Fuentes y más recursos&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://lwn.net/Articles/342892/"&gt;A short history of btrfs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://web.archive.org/web/20120617204105/http://arstechnica.com/information-technology/2009/04/linux-collaboration-summit-the-kernel-panel/"&gt;Panelists ponder the kernel at Linux Collaboration Summit | Ars Technica&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=-m01x3gHNjg"&gt;btrfs: The Best Filesystem You've Never Heard Of - YouTube&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.theregister.com/2020/01/13/zfs_linux/"&gt;It's a no to ZFS in the Linux kernel from me, says Torvalds, points finger of blame at Oracle licensing • The Register&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://fedoraproject.org/wiki/Btrfs"&gt;Btrfs - Fedora Project Wiki&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.suse.com/releasenotes/x86_64/SUSE-SLES/15-SP2/#TechInfo.Filesystems"&gt;Release Notes | SUSE Linux Enterprise Server 15 SP2&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description><category>filesystems</category><guid>https://sergiobelkin.com/posts/es-btrfs-el-filesystem-esperado/</guid><pubDate>Sun, 13 Dec 2020 20:03:26 GMT</pubDate></item><item><title>Creación de Archivos Temporales</title><link>https://sergiobelkin.com/posts/creacion-de-archivos-temporales/</link><dc:creator>sebelk</dc:creator><description>&lt;p&gt;Algo bastante frecuente es crear archivos temporales a mano para probar cierto código. Estaba bastante acostumbrado a crear archivos del tipo &lt;code&gt;/tmp/q[0-9]&lt;/code&gt;. Así, terminaba con muchos archivos con ese patrón. Hay varios problemas con eso, uno de ellos es que si ya tenemos abierto un archivo /tmp/q1 por ejemplo, podemos fácilmente olvidar eso y abrirlo en otra shell con vim. Y ya sabemos como nuestro querido editor se molesta (y con razón en esos casos).
Un truco que se me había ocurrido era crear un alias de este tipo:
&lt;code&gt;alias viq='alias viq='vi /tmp/q$(date +'%s')'&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;El problema con ese approach es que no era reutilizable. Es decir al ejecutarlo de vuelta abría un archivo con otro nombre.
Existe una opción que es tal vez mejor y es usar el comando &lt;code&gt;mktemp&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Ejemplo:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code literal-block"&gt;mktemp&lt;span class="w"&gt; &lt;/span&gt;
/tmp/tmp.7WUOKYMTEQ
&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Es decir, crea el archivo &lt;code&gt;/tmp/tmp.7WUOKYMTEQ&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Si el archivo deseamos crearlo en otro lugar, sencilamente hacemos algo así:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code literal-block"&gt;mktemp&lt;span class="w"&gt; &lt;/span&gt;-d&lt;span class="w"&gt; &lt;/span&gt;/home/sergio/temp
&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;También podemos editar el archivo directamente:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code literal-block"&gt;mktemp&lt;span class="p"&gt;|&lt;/span&gt;xargs&lt;span class="w"&gt; &lt;/span&gt;vim&lt;span class="w"&gt; &lt;/span&gt;-
&lt;/pre&gt;&lt;/div&gt;</description><category>filesystems</category><guid>https://sergiobelkin.com/posts/creacion-de-archivos-temporales/</guid><pubDate>Fri, 13 Sep 2019 11:43:01 GMT</pubDate></item><item><title>La poderosa shell de GRUB 2</title><link>https://sergiobelkin.com/posts/2015/10/02/la-poderosa-shell-de-grub-2/</link><dc:creator>sebelk</dc:creator><description>&lt;p&gt;En el &lt;a href="http://www.sergiobelkin.com/2015/08/29/reinstalar-o-bootear-mediante-la-shell-de-grub/"&gt;artículo anterior &lt;/a&gt;hemos visto que la línea de comandos de GRUB nos permitía reparar el cargador de arranque sin necesidad de recurrir a un cargador de arranque.&lt;/p&gt;
&lt;p&gt;GRUB2 como es de suponer también permite hacerlo:&lt;/p&gt;
&lt;div class="markdown-here-wrapper" data-md-url="http://www.sergiobelkin.com/wp-admin/post.php?post=787&amp;amp;action=edit"&gt;
&lt;pre style="font-size: 1em; font-family: Consolas,Inconsolata,Courier,monospace; line-height: 1.2em; margin: 1.2em 0px;"&gt;&lt;code style="font-size: 0.85em; font-family: Consolas,Inconsolata,Courier,monospace; margin: 0px 0.15em; padding: 0.5em 0.7em; white-space: pre; border: 1px solid #cccccc; background-color: #f8f8f8; border-radius: 3px; display: block ! important; overflow: auto;"&gt;grub&amp;gt; set root=(hd0,1)
grub&amp;gt; linux /vmlinuz-3.16.0 root=/dev/mapper/centos-root ro
grub&amp;gt; initrd /initramfs-3.16.0.img
grub&amp;gt; boot
&lt;/code&gt;&lt;/pre&gt;
&lt;div style="height: 0; width: 0; max-height: 0; max-width: 0; overflow: hidden; font-size: 0em; padding: 0; margin: 0;" title="MDH:PHA+YGBgYDxiciBkYXRhLW1jZS1ib2d1cz0iMSI+PC9wPjxwPmdydWImZ3Q7IHNldCByb290PSho ZDAsMSk8YnIgZGF0YS1tY2UtYm9ndXM9IjEiPjwvcD48cD5ncnViJmd0OyBsaW51eCAvdm1saW51 ei0zLjE2LjAgcm9vdD0vZGV2L21hcHBlci9jZW50b3Mtcm9vdCBybzxiciBkYXRhLW1jZS1ib2d1 cz0iMSI+PC9wPjxwPmdydWImZ3Q7IGluaXRyZCAvaW5pdHJhbWZzLTMuMTYuMC5pbWc8YnIgZGF0 YS1tY2UtYm9ndXM9IjEiPjwvcD48cD5ncnViJmd0OyBib290PGJyIGRhdGEtbWNlLWJvZ3VzPSIx Ij48L3A+PHA+YGBgYDwvcD48cD48L3A+"&gt;​&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Como vemos cambian algunos comandos, sintaxis y la nomenclatura de particiones pero la idea es la misma.&lt;/p&gt;
&lt;p&gt;Desde ya contamos con la tecla &lt;em&gt;TAB&lt;/em&gt;​ para autocompletar rutas de archivo y el comando cat:&lt;/p&gt;
&lt;h2&gt;&lt;a href="https://sergiobelkin.com/wp-content/uploads/2015/10/grub2-cat.png"&gt;&lt;img class="aligncenter wp-image-790 size-large" src="https://sergiobelkin.com/wp-content/uploads/2015/10/grub2-cat-1024x525.png" alt="Comando cat en GRUB2" width="640" height="328"&gt;&lt;/a&gt;&lt;br&gt;
Arrancar directo desde un archivo ISO&lt;/h2&gt;
&lt;p&gt;Bajamos una distro y no queremos ni tenemos tiempo para grabarla en un CD/DVD. Perfecto, GRUB2 en la mayoría de los casos puede arrancar también una imagen ISO:&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;div class="markdown-here-wrapper" data-md-url="http://www.sergiobelkin.com/wp-admin/post.php?post=787&amp;amp;action=edit"&gt;
&lt;pre style="font-size: 1em; font-family: Consolas,Inconsolata,Courier,monospace; line-height: 1.2em; margin: 1.2em 0px;"&gt;&lt;code style="font-size: 0.85em; font-family: Consolas,Inconsolata,Courier,monospace; margin: 0px 0.15em; padding: 0.5em 0.7em; white-space: pre; border: 1px solid #cccccc; background-color: #f8f8f8; border-radius: 3px; display: block ! important; overflow: auto;"&gt;grub&amp;gt; set isofile=/TinyCore.iso 
grub&amp;gt; loopback loop (hd0,1)/$isofile vmlinuz 
grub&amp;gt; linux (loop)/boot/vmlinuz cde loglevel=3 
grub&amp;gt; initrd (loop)/boot/core.gz
&lt;/code&gt;&lt;/pre&gt;
&lt;div style="height: 0; width: 0; max-height: 0; max-width: 0; overflow: hidden; font-size: 0em; padding: 0; margin: 0;" title="MDH:PHA+fn5+fjxiciBkYXRhLW1jZS1ib2d1cz0iMSI+PC9wPjxwPmdydWImZ3Q7IHNldCBpc29maWxl PS9UaW55Q29yZS5pc28KPC9wPjxwPmdydWImZ3Q7IGxvb3BiYWNrIGxvb3AgKGhkMCwxKS8kaXNv ZmlsZQp2bWxpbnV6IDwvcD48cD5ncnViJmd0OyBsaW51eCAobG9vcCkvYm9vdC92bWxpbnV6IGNk ZSBsb2dsZXZlbD0zCjwvcD48cD5ncnViJmd0OyBpbml0cmQgKGxvb3ApL2Jvb3QvY29yZS5negoK PC9wPjxwPn5+fn48L3A+PHA+PC9wPg=="&gt;​&lt;/div&gt;
&lt;/div&gt;
&lt;h2&gt;Tener acceso a un archivo de un LVM&lt;/h2&gt;
&lt;p&gt;Sí, estimados, GRUB2 puede también leer un volumen lógico, ¿Cómo? Así:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://sergiobelkin.com/wp-content/uploads/2015/10/grub-lvm.png"&gt;&lt;img class="aligncenter size-large wp-image-793" src="https://sergiobelkin.com/wp-content/uploads/2015/10/grub-lvm-1024x516.png" alt="LVM y GRUB2" width="640" height="323"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Algo más&lt;/h2&gt;
&lt;p&gt;¿Más? Sí, mas todavía, por ejemplo listar dispositivos en el bus PCI:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://sergiobelkin.com/wp-content/uploads/2015/10/grub-lspci.png"&gt;&lt;img class="aligncenter size-large wp-image-794" src="https://sergiobelkin.com/wp-content/uploads/2015/10/grub-lspci-1024x256.png" alt="Comando lspci en GRUB2" width="640" height="160"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Como se puede apreciar GRUB es bastante más que un boot loader y su shell lo suficientemente potente como para prescindir de un LiveCD (al menos en soporte físico) en más de una ocasión.&lt;/p&gt;
&lt;h2&gt;Información complementaria&lt;/h2&gt;
&lt;div class="markdown-here-wrapper" data-md-url="http://www.sergiobelkin.com/wp-admin/post.php?post=787&amp;amp;action=edit"&gt;
&lt;p style="margin: 1.2em 0px ! important;"&gt;&lt;a href="https://www.linux.com/learn/tutorials/776643-how-to-rescue-a-non-booting-grub-2-on-linux/"&gt;How to Rescue a Non-booting GRUB 2 on Linux&lt;/a&gt;&lt;/p&gt;
&lt;div style="height: 0; width: 0; max-height: 0; max-width: 0; overflow: hidden; font-size: 0em; padding: 0; margin: 0;" title="MDH:W0hvdyB0byBSZXNjdWUgYSBOb24tYm9vdGluZyBHUlVCIDIgb24gTGludXhdKGh0dHBzOi8vd3d3 LmxpbnV4LmNvbS9sZWFybi90dXRvcmlhbHMvNzc2NjQzLWhvdy10by1yZXNjdWUtYS1ub24tYm9v dGluZy1ncnViLTItb24tbGludXgvKQ=="&gt;​&lt;/div&gt;
&lt;/div&gt;</description><category>filesystems</category><category>grub</category><category>sistemas-operativos</category><guid>https://sergiobelkin.com/posts/2015/10/02/la-poderosa-shell-de-grub-2/</guid><pubDate>Fri, 02 Oct 2015 13:34:58 GMT</pubDate></item><item><title>Una presentación sobre sistemas de archivos</title><link>https://sergiobelkin.com/posts/2008/10/26/una-presentacion-sobre-sistemas-de-archivos/</link><dc:creator>sebelk</dc:creator><description>&lt;p&gt;Ángel Vilte de la Facultad de la Universidad de la Plata me invitó a dar una charla para un evento de software libre. Las diapositivas de la misma se pueden descargar haciendo clic en &lt;a href="https://sergiobelkin.com/wp-content/uploads/2008/10/filesystems.odp"&gt;filesystems&lt;/a&gt; .&lt;a href="https://sergiobelkin.com/wp-content/uploads/2008/10/filesystems.odp"&gt;&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;</description><category>filesystems</category><guid>https://sergiobelkin.com/posts/2008/10/26/una-presentacion-sobre-sistemas-de-archivos/</guid><pubDate>Sun, 26 Oct 2008 18:07:03 GMT</pubDate></item><item><title>Fragmentacion en ext3</title><link>https://sergiobelkin.com/posts/2008/03/21/fragmentacion-en-ext3/</link><dc:creator>sebelk</dc:creator><description>&lt;p&gt;En repetidas oportunidades se ha dicho que Linux, o más precisamente que ext2 y ext3 no necesitan un defragmentador. La fragmentación existe, pero se supone que no afecta el rendimiento de esos sistemas de archivos. Sin embargo, al mejor estilo Unix, existe una aplicación no muy conocida llamada filedefrag que sirve para ver el grado de fragmentación de un determinado archivo.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://sergiobelkin.com/images/filefrag.jpg" title="filefrag"&gt;&lt;img src="https://sergiobelkin.com/images/filefrag.thumbnail.jpg" alt="filefrag"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Se puede leer un interesante y artículo y discusión al respecto en &lt;a href="http://geekblog.oneandoneis2.org/index.php/2006/08/17/why_doesn_t_linux_need_defragmenting" title="Por qué Linux no necesita fragmentación"&gt;OneAndOneIs2&lt;/a&gt;, además de esta mención en Wikipedia de &lt;a href="http://en.wikipedia.org/wiki/Ext3#Defragmentation" title="Defragmentación en ext3"&gt;ext3&lt;/a&gt;.&lt;a href="http://geekblog.oneandoneis2.org/index.php/2006/08/17/why_doesn_t_linux_need_defragmenting" title="Por qué Linux no necesita fragmentación"&gt;&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;</description><category>filesystems</category><guid>https://sergiobelkin.com/posts/2008/03/21/fragmentacion-en-ext3/</guid><pubDate>Fri, 21 Mar 2008 15:35:25 GMT</pubDate></item><item><title>Acceder a imágenes ISO</title><link>https://sergiobelkin.com/posts/2008/01/29/acceder-a-imagenes-iso/</link><dc:creator>sebelk</dc:creator><description>&lt;p&gt;De acuerdo a &lt;a href="http://es.wikipedia.org/wiki/Imagen_ISO"&gt;Wikipedia&lt;/a&gt;, una Imagen ISO es Imagen ISO&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;es un archivo donde se almacena una copia o imagen exacta de un sistema de ficheros, normalmente un disco compacto (como un CD o un DVD)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Algo interesante es que uno puede acceder al interior del archivo y 
explorar las carpetas y los archivos de manera bastante transparente.&lt;/p&gt;
&lt;p&gt;Supongamos que tenemos el archivo mandriva-linux-2008-one-KDE-cdrom-i586.iso&lt;/p&gt;
&lt;p&gt;Para ver el contenido es cuestión de montar el archivo como si fuera 
un sistema de archivos. Esto se consigue gracias al módulo loop del 
kernel.&lt;/p&gt;
&lt;p&gt;Entonces sencillamente se puede hacer:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code literal-block"&gt;mkdir&lt;span class="w"&gt; &lt;/span&gt;/loop1&lt;span class="w"&gt;  &lt;/span&gt;
mount&lt;span class="w"&gt; &lt;/span&gt;-o&lt;span class="w"&gt; &lt;/span&gt;loop&lt;span class="w"&gt; &lt;/span&gt;mandriva-linux-2008-one-KDE-cdrom-i586.iso&lt;span class="w"&gt; &lt;/span&gt;/loop1
&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Entonces, se puede ver el contenido de la imagen ISO:  &lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code literal-block"&gt;ls
boot&lt;span class="w"&gt; &lt;/span&gt;isolinux&lt;span class="w"&gt; &lt;/span&gt;LISEZMOI.pdf&lt;span class="w"&gt; &lt;/span&gt;loopbacks&lt;span class="w"&gt; &lt;/span&gt;README.pdf
&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Dentro del directorio loopbacks de la imagen está el directorio loopbacks. Podemos ver su contenido:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code literal-block"&gt;ls&lt;span class="w"&gt; &lt;/span&gt;/loop1/loopbacks&lt;span class="w"&gt;  &lt;/span&gt;
distrib.sqfs
&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;¿De qué tipo de archivo se trata?&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code literal-block"&gt;/loop1/loopbacks/distrib.sqfs:&lt;span class="w"&gt; &lt;/span&gt;Squashfs&lt;span class="w"&gt; &lt;/span&gt;filesystem,&lt;span class="w"&gt; &lt;/span&gt;little&lt;span class="w"&gt; &lt;/span&gt;
endian,&lt;span class="w"&gt; &lt;/span&gt;version&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;3&lt;/span&gt;.0,&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;721071324&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;bytes,&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;98645&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;inodes,&lt;span class="w"&gt; &lt;/span&gt;blocksize:&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;65536&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;
bytes,&lt;span class="w"&gt; &lt;/span&gt;created:&lt;span class="w"&gt; &lt;/span&gt;Mon&lt;span class="w"&gt; &lt;/span&gt;Oct&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;8&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;19&lt;/span&gt;:01:20&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;2007&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Se trata justamente de un sistema de archivos squashfs usado con 
frecuencia en Live-CDs, ya que permite compresión de archivos y tiene 
soporte para escritura.&lt;/p&gt;
&lt;p&gt;Se puede montar este sistema de archivos también:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code literal-block"&gt;mkdir&lt;span class="w"&gt; &lt;/span&gt;/loop2&lt;span class="w"&gt;  &lt;/span&gt;
mount&lt;span class="w"&gt; &lt;/span&gt;-o&lt;span class="w"&gt; &lt;/span&gt;loop&lt;span class="w"&gt; &lt;/span&gt;-t&lt;span class="w"&gt; &lt;/span&gt;squashfs&lt;span class="w"&gt; &lt;/span&gt;/loop1/loopbacks/distrib.sqfs&lt;span class="w"&gt; &lt;/span&gt;/loop2&lt;span class="w"&gt;  &lt;/span&gt;
ls&lt;span class="w"&gt; &lt;/span&gt;-l&lt;span class="w"&gt; &lt;/span&gt;/loop2&lt;span class="w"&gt;  &lt;/span&gt;
total&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;
drwxr-xr-x&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;2&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;root&lt;span class="w"&gt; &lt;/span&gt;root&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;1122&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;oct&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;8&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;04&lt;/span&gt;:53&lt;span class="w"&gt; &lt;/span&gt;bin&lt;span class="w"&gt;  &lt;/span&gt;
drwxr-xr-x&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;3&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;root&lt;span class="w"&gt; &lt;/span&gt;root&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;201&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;oct&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;8&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;12&lt;/span&gt;:19&lt;span class="w"&gt; &lt;/span&gt;boot&lt;span class="w"&gt;  &lt;/span&gt;
drwxr-xr-x&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;26&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;root&lt;span class="w"&gt; &lt;/span&gt;root&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;63160&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;oct&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;8&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;05&lt;/span&gt;:03&lt;span class="w"&gt; &lt;/span&gt;dev&lt;span class="w"&gt;  &lt;/span&gt;
drwxr-xr-x&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;96&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;root&lt;span class="w"&gt; &lt;/span&gt;root&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;2969&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;oct&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;8&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;05&lt;/span&gt;:04&lt;span class="w"&gt; &lt;/span&gt;etc&lt;span class="w"&gt;  &lt;/span&gt;
drwxr-xr-x&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;3&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;root&lt;span class="w"&gt; &lt;/span&gt;root&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;22&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;oct&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;8&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;05&lt;/span&gt;:04&lt;span class="w"&gt; &lt;/span&gt;home&lt;span class="w"&gt;  &lt;/span&gt;
drwxr-xr-x&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;2&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;root&lt;span class="w"&gt; &lt;/span&gt;root&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;3&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;jul&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;27&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;2007&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;initrd&lt;span class="w"&gt;  &lt;/span&gt;
drwxr-xr-x&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;13&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;root&lt;span class="w"&gt; &lt;/span&gt;root&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;2523&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;oct&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;8&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;05&lt;/span&gt;:04&lt;span class="w"&gt; &lt;/span&gt;lib&lt;span class="w"&gt;  &lt;/span&gt;
drwxr-xr-x&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;4&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;root&lt;span class="w"&gt; &lt;/span&gt;root&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;33&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;oct&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;8&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;04&lt;/span&gt;:50&lt;span class="w"&gt; &lt;/span&gt;media&lt;span class="w"&gt;  &lt;/span&gt;
drwxr-xr-x&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;3&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;root&lt;span class="w"&gt; &lt;/span&gt;root&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;21&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;oct&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;8&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;04&lt;/span&gt;:50&lt;span class="w"&gt; &lt;/span&gt;mnt&lt;span class="w"&gt;  &lt;/span&gt;
drwxr-xr-x&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;2&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;root&lt;span class="w"&gt; &lt;/span&gt;root&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;3&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;jul&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;27&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;2007&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;opt&lt;span class="w"&gt;  &lt;/span&gt;
drwxr-xr-x&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;2&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;root&lt;span class="w"&gt; &lt;/span&gt;root&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;3&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;oct&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;8&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;04&lt;/span&gt;:36&lt;span class="w"&gt; &lt;/span&gt;proc&lt;span class="w"&gt;  &lt;/span&gt;
drwx——&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;9&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;root&lt;span class="w"&gt; &lt;/span&gt;root&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;203&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;oct&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;8&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;05&lt;/span&gt;:04&lt;span class="w"&gt; &lt;/span&gt;root&lt;span class="w"&gt;  &lt;/span&gt;
drwxr-xr-x&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;2&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;root&lt;span class="w"&gt; &lt;/span&gt;root&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;3764&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;oct&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;8&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;05&lt;/span&gt;:04&lt;span class="w"&gt; &lt;/span&gt;sbin&lt;span class="w"&gt;  &lt;/span&gt;
drwxr-xr-x&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;2&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;root&lt;span class="w"&gt; &lt;/span&gt;root&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;3&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;oct&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;8&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;04&lt;/span&gt;:36&lt;span class="w"&gt; &lt;/span&gt;sys&lt;span class="w"&gt;  &lt;/span&gt;
drwxrwxrwt&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;5&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;root&lt;span class="w"&gt; &lt;/span&gt;root&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;56&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;oct&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;8&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;12&lt;/span&gt;:19&lt;span class="w"&gt; &lt;/span&gt;tmp&lt;span class="w"&gt;  &lt;/span&gt;
drwxr-xr-x&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;12&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;root&lt;span class="w"&gt; &lt;/span&gt;root&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;167&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;oct&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;8&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;04&lt;/span&gt;:50&lt;span class="w"&gt; &lt;/span&gt;usr&lt;span class="w"&gt;  &lt;/span&gt;
drwxr-xr-x&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;16&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;root&lt;span class="w"&gt; &lt;/span&gt;root&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;154&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;oct&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;8&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;04&lt;/span&gt;:50&lt;span class="w"&gt; &lt;/span&gt;var
&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;¿Suena familiar? Todo este arbol de directorios con sus archivos es el que se descomprime luego de arrancar el Live-CD.&lt;/p&gt;
&lt;p&gt;Inspeccionando un poco más se ve que el directorio boot contiene un 
INIT Ram Disk y la imagen compilada del kernel Linux. De manera que todo
 estos archivos se pueden copiar a una partición, y configurando 
apropiadamente GRUB puede arrancarse directamente desde el disco rígido.
 De manera que nos ahorramos un CD…&lt;/p&gt;</description><category>filesystems</category><guid>https://sergiobelkin.com/posts/2008/01/29/acceder-a-imagenes-iso/</guid><pubDate>Tue, 29 Jan 2008 19:08:24 GMT</pubDate></item></channel></rss>