<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress.com" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>

<channel>
	<title>vfat &amp;laquo; WordPress.com Tag Feed</title>
	<link>http://en.wordpress.com/tag/vfat/</link>
	<description>Feed of posts on WordPress.com tagged "vfat"</description>
	<pubDate>Mon, 28 Dec 2009 23:52:05 +0000</pubDate>

	<generator>http://en.wordpress.com/tags/</generator>
	<language>en</language>

<item>
<title><![CDATA[SystemRescueCD]]></title>
<link>http://jinetedeldragon.wordpress.com/2009/10/19/systemrescuecd/</link>
<pubDate>Mon, 19 Oct 2009 14:09:13 +0000</pubDate>
<dc:creator>jinetedeldragon</dc:creator>
<guid>http://jinetedeldragon.wordpress.com/2009/10/19/systemrescuecd/</guid>
<description><![CDATA[Una herramienta de la cual hago uso muy seguido es el CD SystemRescueCD basado en Gentoo. Es un disc]]></description>
<content:encoded><![CDATA[Una herramienta de la cual hago uso muy seguido es el CD SystemRescueCD basado en Gentoo. Es un disc]]></content:encoded>
</item>
<item>
<title><![CDATA[What is FAT File System?]]></title>
<link>http://fatfilesystem.wordpress.com/2009/09/25/what-is-fat-file-system/</link>
<pubDate>Fri, 25 Sep 2009 10:10:38 +0000</pubDate>
<dc:creator>fatfilesystem</dc:creator>
<guid>http://fatfilesystem.wordpress.com/2009/09/25/what-is-fat-file-system/</guid>
<description><![CDATA[The FAT file system (FAT FS) enables the inserting developer from Zeeis to easily and integrates MS-]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>The FAT file system (FAT FS) enables the inserting developer from Zeeis to easily and integrates MS-DOS or the window compatible <a title="FAT File System" href="http://www.zeeis.com/fat-file-system/" target="_self"><strong>FAT file system</strong></a> using the nature mutually and all main operating system all equipment rapidly. It tested the use in several true time operating system and the canned food not to have RTOS. This high performance source code was the minimum memory consumption in RAM and ROM optimal, was cheap and is high speed.<br />
In 2008, the Zeeis FAT file system product shipped the completely successful 25,000,000 equipment, is the leading filing system product for mobile, the electrical appliances and the storage application.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[VFAT com escrita para todos os usuários]]></title>
<link>http://tippsntricks.wordpress.com/2009/09/13/vfat-com-escrita-para-todos-os-usuarios/</link>
<pubDate>Sun, 13 Sep 2009 13:56:01 +0000</pubDate>
<dc:creator>administrador</dc:creator>
<guid>http://tippsntricks.wordpress.com/2009/09/13/vfat-com-escrita-para-todos-os-usuarios/</guid>
<description><![CDATA[O Fedora Core, nativamente, já vem com suporte a VFAT para as partições Windows; contudo os usuários]]></description>
<content:encoded><![CDATA[O Fedora Core, nativamente, já vem com suporte a VFAT para as partições Windows; contudo os usuários]]></content:encoded>
</item>
<item>
<title><![CDATA[Ordenar los temas de música en nuestro reproductor MP3]]></title>
<link>http://thalskarth.wordpress.com/2009/09/05/ordenar-los-temas-de-musica-en-nuestro-reproductor-mp3/</link>
<pubDate>Sat, 05 Sep 2009 21:08:40 +0000</pubDate>
<dc:creator>Thalskarth</dc:creator>
<guid>http://thalskarth.wordpress.com/2009/09/05/ordenar-los-temas-de-musica-en-nuestro-reproductor-mp3/</guid>
<description><![CDATA[Bueno, todos aquellos que tengan un reproductor de audio portatil (MP3 player) de los comunes, habrá]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><a href="http://www.flickr.com/photos/suite100gallery/2866785034/"><img class="alignright" style="margin-left:10px;margin-right:2px;" src="http://a.imagehost.org/0389/2866785034_5f45ceab7f_m.jpg" alt="" width="180" height="240" /></a>Bueno, todos aquellos que tengan un reproductor de audio portatil (<strong><em>MP3 player</em></strong>) de los comunes, habrán notado que siempre que les copian archivos de música estos <em>son luego reproducidos por el aparato en el orden en que fueron grabados</em> por lo que, muchas veces, un disco queda desordenado :S</p>
<p>Para solucionar este problema, hay 3 soluciones:</p>
<ul>
<li>Una es que graben uno a uno los temas → Aunque es mucho trabajo y la descarto.</li>
<li>Otra, es usar algun script de los que ordenan una vez grabados → Pero no pude encontrar el que tenía</li>
<li>Así que, de esa forma se arriba a ésta, es decir la tercer solución la cual es un comando para la consola. El cual ordenará alfabeticamente todos los archivos de la carpeta y luego los copiara a nuestro reproductor en dicho orden. <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
</ul>
<p>El comando es:</p>
<pre style="border:1px inset;overflow:auto;width:580px;height:20px;text-align:left;margin:0;padding:6px;">find . -type f -print0 &#124; sort -z -n  &#124; xargs -0 cp --target-directory='/tmp'</pre>
<p>En donde <em>/tmp </em>es la ruta a la carpeta destino, es decir la carpeta de su MP3. Vale aclarar que el comando es recursivo, por lo que el mismo, copiara tanto todos los archivos de la carpeta como todos aquellos dentro de las sub-carpetas del directorio donde estemos.</p>
<p>La forma más fácil de usarlo, es ir a la carpeta que queremos copias con <em><strong>thunar/nautilus/dolphin/etc</strong></em>, darle al <em>click derecho/abrir terminal aquí</em> y simplemente usar el comando.</p>
<p style="text-align:right;">Visto en <a href="http://ubuntuforums.org/showpost.php?p=1179932&#38;postcount=7" target="_blank">Ubuntu Forums</a></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Inside the MSDOS / FAT Linux VFS Implementation]]></title>
<link>http://kaiwantech.wordpress.com/2009/08/17/inside-the-msdos-fat-linux-vfs-implementation/</link>
<pubDate>Mon, 17 Aug 2009 12:51:28 +0000</pubDate>
<dc:creator>Kaiwan</dc:creator>
<guid>http://kaiwantech.wordpress.com/2009/08/17/inside-the-msdos-fat-linux-vfs-implementation/</guid>
<description><![CDATA[A (small) part of the Linux VFS module of the Designer Graphix Linux Internals training programme. R]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><!-- 		@page { margin: 2cm } 		P { margin-bottom: 0.21cm } 		H2 { margin-bottom: 0.21cm } 		A:link { so-language: zxx } --></p>
<h2>A (small) part of the <em>Linux VFS</em> module of the <a href="http://www.designergraphix.com/">Designer Graphix</a> Linux Internals training programme.</h2>
<p>Referenced kernel ver: 2.6.30</p>
<p>Once extracted, see the</p>
<pre> fs/fat</pre>
<p>folder.</p>
<p><em>_Tip:_</em><br />
For ease of code browsing, do &#8216;make tags&#8217; (or &#8216;ctags -R&#8217;) in the root folder of the kernel soure tree.</p>
<pre style="margin-bottom:.5cm;">cd fs/fat</pre>
<p><span style="text-decoration:underline;">Note:</span> Here the focus is on part of the MSDOS &#8211; Linux VFS kernel implementation, mainly the disk-related part, i.e., the superblock and inode objects. We don&#8217;t attempt to cover the Dcache/dentry, page cache (address operations) and just touch upon the process&#60;&#8211;&#62;filesystem relationship stuff (at least for now).</p>
<p><em>_Tip:_</em><br />
To gain some insight into the physical structure / arch of the MSDOS (and [v]fat) filesystem, <a href="http://en.wikipedia.org/wiki/File_Allocation_Table#Design">see this page</a>.<br />
The <em>&#60;linux/msdos_fs.h&#62;</em> header mirrors much of this.</p>
<p>For example, the FAT16 boot record (boot sector) structure is nicely <a href="http://home.teleport.com/~brainy/fat16.htm">seen here</a>; it&#8217;s Linux layout is here:<br />
<em>include/linux/msdos_fs.h:struct fat_boot_sector</em><br />
(can browse it via the superb <a href="http://lxr.linux.no/#linux+v2.6.30.5/include/linux/msdos_fs.h#L104">LXR tool here</a>).</p>
<p><strong>Superblock Setup</strong></p>
<p>In <em>namei_msdos.c</em>:</p>
<pre>...
static struct <span style="color:#008000;">file_system_type</span> msdos_fs_type = {
	.owner          = THIS_MODULE,
	.name           = "msdos",
	.get_sb         = msdos_get_sb,
	.kill_sb        = kill_block_super,
	.fs_flags       = FS_REQUIRES_DEV,
};

static int __init init_msdos_fs(void)
{
	return <span style="color:#008000;">register_filesystem</span>(&#38;msdos_fs_type);
}
...</pre>
<p>So, the routine invoked upon mounting is <em>msdos_get_sb </em>:</p>
<p style="margin-bottom:0;">Following the call chain in <span style="color:#0000ff;"><em>msdos_get_sb</em></span><em> </em>(see the flow diagram), control hits VFS <span style="color:#008000;"><em>fill_super</em></span> routine, which implicitly invokes the <span style="color:#0000ff;"><em>msdos_fill_super</em></span> routine (function pointer passed via a parameter). This is the MSDOS-filesystem-specific routine to initialize the superblock.</p>
<p style="margin-bottom:0;">
<p><a href="http://kaiwantech.wordpress.com/files/2009/08/vfs_msdos_31.png"><img class="alignnone size-full wp-image-128" title="vfs msdos " src="http://kaiwantech.wordpress.com/files/2009/08/vfs_msdos_31.png" alt="vfs msdos " width="500" height="580" /></a></p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;">This invokes the <span style="color:#0000ff;"><em>fat_fill_super</em></span> routine which actually allocates memory for and initializes the MSDOS superblock structure – <span style="color:#800000;">struct msdos_sb_info</span> ; this is the data structure that MSDOS FS uses to map it&#8217;s filesystem superblock into the kernel&#8217;s VFS <span style="color:#800000;">struct super_block </span>structure. This routine reads from disk the MSDOS superblock, parses mount options, makes validity checks on the filesystem superblock, and finally intializes the structure.</p>
<pre>...
        sb-&#62;s_magic = MSDOS_SUPER_MAGIC;
        sb-&#62;s_op = &#38;fat_sops;
        sb-&#62;s_export_op = &#38;fat_export_ops;
        <span style="color:#993300;">sbi</span>-&#62;dir_ops = fs_dir_inode_ops;
<em>					&#60;&#60; sbi is the  </em><span style="color:#800000;"><em>msdos_sb_info </em></span><span style="color:#000000;"><em>structure &#62;&#62;</em></span>
...
        bh = <span style="color:#008000;">sb_bread</span>(sb, 0);           <em>&#60;&#60; Block read off disk, sector 0 - boot sector &#62;&#62;</em>
        if (bh == NULL) {
                printk(KERN_ERR "FAT: unable to read boot sector\n");
                goto out_fail;
        }

        b = (struct fat_boot_sector *) bh-&#62;b_data;
...

        sbi-&#62;cluster_size = sb-&#62;s_blocksize * sbi-&#62;sec_per_clus;       <em>&#60;&#60; Init msdos superblock &#62;&#62;</em>
        sbi-&#62;cluster_bits = ffs(sbi-&#62;cluster_size) - 1;
        sbi-&#62;fats = b-&#62;fats;
        sbi-&#62;fat_bits = 0;              /* Don't know yet */
        sbi-&#62;fat_start = le16_to_cpu(b-&#62;reserved);
        sbi-&#62;fat_length = le16_to_cpu(b-&#62;fat_length);
        sbi-&#62;root_cluster = 0;
        sbi-&#62;free_clusters = -1;        /* Don't know yet */
        sbi-&#62;free_clus_valid = 0;
        sbi-&#62;prev_free = FAT_START_ENT;

        if (!sbi-&#62;fat_length &#38;&#38; b-&#62;fat32_length) {
                struct fat_boot_fsinfo *fsinfo;
                struct buffer_head *fsinfo_bh;

                /* Must be FAT32 */
                sbi-&#62;fat_bits = 32;
                sbi-&#62;fat_length = le32_to_cpu(b-&#62;fat32_length);
                sbi-&#62;root_cluster = le32_to_cpu(b-&#62;root_cluster);
...</pre>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;">It then sets up the root inode as well (including getting the superblock&#8217;s <em>s_root</em> field to point to the root inode.</p>
<pre>...
        root_inode = <span style="color:#008000;">new_inode</span>(sb);
        if (!root_inode)
                goto out_fail;
        root_inode-&#62;i_ino = MSDOS_ROOT_INO;
        root_inode-&#62;i_version = 1;
        error = fat_read_root(root_inode);
        if (error &#60; 0)
                goto out_fail;
        error = -ENOMEM;
        insert_inode_hash(root_inode);
        sb-&#62;s_root = <span style="color:#008000;">d_alloc_root</span>(root_inode);
...</pre>
<h2><span style="font-size:small;"><strong>Inodes Setup</strong></span></h2>
<p style="margin-bottom:0;">The inode represents any kind of file object. However, the VFS distinguishes between inode operations to be enacted on a directory object versus those to be enacted on a regular file (I/O) object.</p>
<p style="margin-bottom:0;">So we have two &#8216;inode_operations&#8217; structures that the filesystem implements – one for directory operations – creation, deletion, lookup, rename, etc – anything that operates directly on a “directory” (think “.” file) object, and one &#8216;inode_operations&#8217; structure for actual file IO.</p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;"><strong>Inode Create and Init<br />
</strong></p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;">Whenever a new file is created, the filesystem has to allocate an inode. The &#8216;alloc_inode&#8217; method of the superblock&#8217;s super_operations does this.<br />
For MSDOS, we have (infs/fat/inode.c):</p>
<pre style="margin-bottom:0;">static const struct super_operations fat_sops = {
 .<span style="color:#ff0000;">alloc_inode</span>    = fat_alloc_inode,
 .destroy_inode  = fat_destroy_inode,
 .write_inode    = fat_write_inode,
 .delete_inode   = fat_delete_inode,
 .put_super      = fat_put_super,
 .write_super    = fat_write_super,
 .statfs         = fat_statfs,
 .clear_inode    = fat_clear_inode,
 .remount_fs     = fat_remount,
.show_options   = fat_show_options,
};</pre>
<pre style="margin-bottom:0;">...</pre>
<p>The <em>fs/inode.c:new_inode()</em> routine is invoked to obtain a new inode.<br />
It in turn, invokes the <em>alloc_inode()</em> routine.</p>
<pre style="margin-bottom:0;">static struct inode *alloc_inode(struct super_block *sb)
{
 struct inode *inode;

 if (sb-&#62;s_op-&#62;alloc_inode)
    inode = sb-&#62;s_op-&#62;alloc_inode(sb);
 else
    inode = kmem_cache_alloc(inode_cachep, GFP_KERNEL);

 if (inode)
 return inode_init_always(sb, inode);
 return NULL;
}</pre>
<p>So, we can see that <em>alloc_inode</em> invokes the filesystem-specific method from the filesystem&#8217;s superblock operations.<br />
This is the &#8216;<em>fat_alloc_inode</em>&#8216; method (see the fat_sops structure above):</p>
<p>In <em>fs/fat/inode.c</em> :</p>
<pre style="margin-bottom:0;">...
static struct kmem_cache *fat_inode_cachep;

static struct inode *fat_alloc_inode(struct super_block *sb)
{
 struct msdos_inode_info *ei;
 ei = kmem_cache_alloc(fat_inode_cachep, GFP_NOFS);
 if (!ei)
    return NULL;
 return &#38;ei-&#62;vfs_inode;
}
...</pre>
<p><span style="font-style:normal;">Notice how a<em> custom slab cache</em> (to hold MSDOS inode objects) is used to rapidly perform the allocation (&#38; subsequent free back into the cache).</span></p>
<p><strong><br />
The MSDOS/FAT Directory Inode Operations</strong></p>
<p style="margin-bottom:0;">Initialize an inode:<br />
The &#8216;create&#8217; method of the file_operations structure, therefore, is setup to point to a method to do this for the particular filesystem implementation.</p>
<p style="margin-bottom:0;">So, we see in <em>fs/fat/namei_msdos.c </em><span style="font-style:normal;">:</span></p>
<pre><span style="font-style:normal;">static const struct </span><span style="color:#800000;"><span style="font-style:normal;">inode_operations msdos_dir_inode_operations </span></span><span style="font-style:normal;">= {</span>
        <span style="font-style:normal;">.</span><span style="color:#ff0000;"><span style="font-style:normal;">create         = msdos_create</span></span><span style="font-style:normal;">,</span>
        <span style="font-style:normal;">.lookup         = msdos_lookup,</span>
        <span style="font-style:normal;">.unlink         = msdos_unlink,</span>
        <span style="font-style:normal;">.mkdir          = msdos_mkdir,</span>
        <span style="font-style:normal;">.rmdir          = msdos_rmdir,</span>
        <span style="font-style:normal;">.rename         = msdos_rename,</span>
        <span style="font-style:normal;">.setattr        = fat_setattr,</span>
        <span style="font-style:normal;">.getattr        = fat_getattr,</span>
<span style="font-style:normal;">};</span>

<span style="font-style:normal;">static int msdos_fill_super(struct super_block *sb, void *data, int silent)</span>
<span style="font-style:normal;">{</span>
        <span style="font-style:normal;">int res;</span><span style="font-style:normal;"> </span>
        <span style="font-style:normal;">res = fat_fill_super(sb, data, silent, </span><span style="color:#800000;"><span style="font-style:normal;">&#38;msdos_dir_inode_operations</span></span><span style="font-style:normal;">, 0);</span>
<span style="font-style:normal;">...</span></pre>
<p style="margin-bottom:0;"><em>fs/fat/inode.c:</em></p>
<p style="margin-bottom:0;">&#8230;</p>
<pre style="font-style:normal;">/*
 * Read the super block of an MS-DOS FS.
 */
int fat_fill_super(struct super_block *sb, void *data, int silent,
                   const struct inode_operations *<span style="color:#800000;">fs_dir_inode_ops</span>, int isvfat)
{
...
	<span style="color:#ff0000;">sbi-&#62;dir_ops </span>= fs_dir_inode_ops;
...</pre>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;">If a userspace process attempts to create a new file on an MSDOS filesystem, the kernel VFS ultimately switches the request to the fs_dir_inode_ops function, in this case, the create method which is <em>msdos_create</em>.</p>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;"><strong>The MSDOS/FAT File Inode Operations</strong></p>
<p style="margin-bottom:0;">In <em>fs/fat/inode.</em>c :</p>
<p style="margin-bottom:0;">The <em>fat_fill_inode</em><span style="font-style:normal;"> routine [1] is the one responsible for initializing the inode, for both a directory object  as well as a non-directory object.</span></p>
<pre>...
/* doesn't deal with root inode */
static int fat_fill_inode(struct inode *inode, struct <span style="color:#993300;">msdos_dir_entry</span> *de)
{
        struct msdos_sb_info *sbi = MSDOS_SB(inode-&#62;i_sb);
...
        if ((de-&#62;attr &#38; <span style="color:#ff0000;">ATTR_DIR</span>) &#38;&#38; !IS_FREE(de-&#62;name)) {
                inode-&#62;i_generation &#38;= ~1;
                inode-&#62;i_mode = <span style="color:#993300;">fat_make_mode</span>(sbi, de-&#62;attr, S_IRWXUGO);
                <span style="color:#ff0000;">inode-&#62;i_op = sbi-&#62;dir_ops;
    </span><span style="color:#ff0000;"><em>				</em></span><span style="color:#000000;"><em>&#60;&#60; sbi-&#62;dir_ops is the same structure we saw above, viz,
                              the msdos_dir_inode_operations structure. &#62;&#62;</em></span>
<span style="color:#ff0000;">                inode-&#62;i_fop = &#38;fat_dir_operations;
</span>
...
       } else { /* not a directory */
                inode-&#62;i_generation &#124;= 1;
                inode-&#62;i_mode = fat_make_mode(sbi, de-&#62;attr,
                        ((sbi-&#62;options.showexec &#38;&#38; !is_exec(de-&#62;name + 8))
                         ? S_IRUGO&#124;S_IWUGO : S_IRWXUGO));
                MSDOS_I(inode)-&#62;i_start = le16_to_cpu(de-&#62;start);
                if (sbi-&#62;fat_bits == 32)
                    MSDOS_I(inode)-&#62;i_start &#124;= (le16_to_cpu(de-&#62;starthi) &#60;&#60; 16);

                MSDOS_I(inode)-&#62;i_logstart = MSDOS_I(inode)-&#62;i_start;
                inode-&#62;i_size = le32_to_cpu(de-&#62;size);
<span style="color:#ff0000;">                inode-&#62;i_op = &#38;fat_file_inode_operations;</span>
<span style="color:#ff0000;">                inode-&#62;i_fop = &#38;fat_file_operations;</span>
                inode-&#62;i_mapping-&#62;a_ops = &#38;fat_aops;
...</pre>
<p style="margin-bottom:0;">It first switches on whether the &#8216;file object&#8217; to be created is a directory or not.<br />
Furthermore, as we can see above, the inode has two operation pointers:</p>
<p style="margin-bottom:0;">i_op: for the inode methods operating <span style="color:#ff0000;">on the inode object itself</span>, and</p>
<p style="margin-bottom:0;">i_fop: for the methods that operate <span style="color:#ff0000;">on the open file object </span>that the inode represents.</p>
<p style="margin-bottom:0;">In <em>fs/fat/file.c </em>:</p>
<pre><span style="font-style:normal;">...</span>
const struct inode_operations <span style="font-style:normal;">fat_file_inode_operations</span> = {
        .truncate       = fat_truncate,
        .setattr        = fat_setattr,
        .getattr        = fat_getattr,
};</pre>
<p style="margin-bottom:0;">In <em>fs/fat/file.c </em><span style="font-style:normal;">:</span></p>
<pre><span style="font-style:normal;">...</span>
const struct <span style="color:#ff0000;">file_operations fat_file_operations </span>= {
        .llseek         = generic_file_llseek,
        .read           = do_sync_read,
        .write          = do_sync_write,
        .aio_read       = generic_file_aio_read,
        .aio_write      = generic_file_aio_write,
        .mmap           = generic_file_mmap,
        .release        = fat_file_release,
        .ioctl          = fat_generic_ioctl,
        .fsync          = file_fsync,
        .splice_read    = generic_file_splice_read,
};              

...</pre>
<p style="margin-bottom:0;">These will be invoked via the usual VFS route (filp-&#62;f_op-&#62;<em>foo</em><span style="font-style:normal;">), where </span><em>foo</em><span style="font-style:normal;"> is the method – system call &#8211; invoked from the userspace process (or thread).</span></p>
<p style="margin-bottom:0;"><span style="font-style:normal;">In fact, we can see from the above implementation, that the MSDOS filesystem (and indeed all the FAT variants – MSDOS (FAT12), FAT16, FAT32 (VFAT)), </span><span style="color:#ff0000;"><span style="font-style:normal;">invoke the generic VFS methods </span></span><span style="font-style:normal;">for read, write, lseek, mmap and aio_[read&#124;write].<br />
Which, of course, is in a large sense, the whole point: once the underlying filesystem &#8220;driver&#8221; (such as MSDOS or FAT) maps it&#8217;s physical structure to the kernel VFS expectations &#8211; to it&#8217;s (VFS&#8217;s) data structures, the kernel goes ahead and treats it as a (virtual) filesystem; I/O proceeds using the mechanisms built-in.<br />
</span></p>
<p style="margin-bottom:0;"><span style="font-style:normal;"><br />
</span></p>
<table border="1" cellspacing="0" cellpadding="4" width="100%">
<col width="85"></col>
<col width="85"></col>
<col width="85"></col>
<tbody>
<tr valign="top">
<td width="33%">
<pre style="text-align:center;"><span style="font-family:DejaVu Sans Mono,monospace;"><span style="font-size:x-small;"><em>VFS component</em></span></span></pre>
</td>
<td width="33%">
<pre style="text-align:center;"><span style="font-family:DejaVu Sans Mono,monospace;"><span style="font-size:x-small;"><em>Corr. MSDOS/FAT component</em></span></span></pre>
</td>
<td width="33%">
<pre style="text-align:center;"><span style="font-family:DejaVu Sans Mono,monospace;"><span style="font-size:x-small;"><em>Macro to access it</em></span></span></pre>
</td>
</tr>
<tr valign="top">
<td width="33%">
<pre><span style="font-family:DejaVu Sans Mono,monospace;"><span style="font-size:x-small;">struct super_block</span></span></pre>
</td>
<td width="33%">
<pre><span style="font-family:DejaVu Sans Mono,monospace;"><span style="font-size:x-small;">struct msdos_sb_info</span></span></pre>
</td>
<td width="33%">
<pre><span style="font-family:DejaVu Sans Mono,monospace;"><span style="font-size:x-small;">MSDOS_SB</span></span></pre>
</td>
</tr>
<tr valign="top">
<td width="33%">
<pre><span style="font-family:DejaVu Sans Mono,monospace;"><span style="font-size:x-small;">struct inode</span></span></pre>
</td>
<td width="33%">
<pre><span style="font-family:DejaVu Sans Mono,monospace;"><span style="font-size:x-small;">struct msdos_inode_info</span></span></pre>
</td>
<td width="33%">
<pre><span style="font-family:DejaVu Sans Mono,monospace;"><span style="font-size:x-small;">MSDOS_I</span></span></pre>
</td>
</tr>
</tbody>
</table>
<p><strong>[1] When does the <em>fat_fill_inode </em>routine get invoked?</strong></p>
<p>The <em>fat_build_inode</em><span style="font-style:normal;"> function invokes it. So what invokes </span><em>fat_build_inode</em><span style="font-style:normal;"> ?</span></p>
<p><span style="font-style:normal;">cscope can provide us with an answer (output below, on the 2.6.30 kernel):</span></p>
<p><span style="font-size:x-small;"><span style="font-style:normal;">Functions calling this function: fat_build_inode </span></span></p>
<p><span style="font-style:normal;"> </span></p>
<pre style="margin-bottom:.5cm;">  <em>File          Function       Line</em>
<span style="font-style:normal;">0 inode.c       fat_get_parent 752 inode = fat_build_inode(sb, de, i_pos);</span>
<span style="font-style:normal;">1 namei_msdos.c msdos_lookup   220 inode = fat_build_inode(sb, sinfo.de, sinfo.i_pos);</span>
<span style="font-style:normal;">2 namei_msdos.c msdos_create   306 inode = fat_build_inode(sb, sinfo.de, sinfo.i_pos);</span>
<span style="font-style:normal;">3 namei_msdos.c msdos_mkdir    394 inode = fat_build_inode(sb, sinfo.de, sinfo.i_pos);</span>
<span style="font-style:normal;">4 namei_vfat.c  vfat_lookup    732 inode = fat_build_inode(sb, sinfo.de, sinfo.i_pos);</span>
<span style="font-style:normal;">5 namei_vfat.c  vfat_create    788 inode = fat_build_inode(sb, sinfo.de, sinfo.i_pos);</span>
<span style="font-style:normal;">6 namei_vfat.c  vfat_mkdir     882 inode = fat_build_inode(sb, sinfo.de, sinfo.i_pos);</span></pre>
<p style="margin-bottom:0;">
<p style="margin-bottom:0;border-color:0 0 #000000;border-style:none none solid;border-width:medium medium 1px;padding:0 0 .07cm;">
<p style="margin-bottom:0;">
<p><em>(c) 2009 Kaiwan N Billimoria, Designer Graphix.<br />
</em></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Linux patch hacks around MICROS~1's FAT32 naming convention patents]]></title>
<link>http://izanbardprince.wordpress.com/2009/07/05/linux-patch-hacks-around-micros1s-fat32-naming-convention-patents/</link>
<pubDate>Sun, 05 Jul 2009 06:27:22 +0000</pubDate>
<dc:creator>Ryan</dc:creator>
<guid>http://izanbardprince.wordpress.com/2009/07/05/linux-patch-hacks-around-micros1s-fat32-naming-convention-patents/</guid>
<description><![CDATA[Rule through the fear of force rather than through force itself. If we use our strength wisely, we s]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><blockquote><p><strong><em>Rule through the fear of force rather than through force itself. If we use our strength wisely, we shall cow thousands of worlds with the example of a select few. </em></strong>-Grand Moff Tarkin from<a href="http://starwars.wikia.com/wiki/Tarkin_Doctrine">&#8220;The Tarkin Doctrine&#8221;</a></p></blockquote>
<p>Apparently <a href="http://www.geek.com/articles/chips/clever-linux-folk-find-way-around-microsoft-fat-file-system-patent-2009073/">a new Linux patch</a> will either create<a href="http://uncyclopedia.wikia.com/wiki/8.3"> a legacy 8.3 file name</a> when the file name is eight characters or less plus extension -or- a LFN (Long File Name) if the file name exceeds the 8.3 convention, but *never* both.</p>
<p>Apparently the Microsoft patent that TomTom GPS devices apparently infringed on covered the creation of both types of file names for a file with a Long File Name, this new approach should ensure that any version of Windows later than Windows 95 OEM Service Release 2 will still understand long file names on FAT32 volumes as written when mounted by Linux, and fills the &#8220;8.3&#8243; filename value with random meaningless data that does not constitute a &#8220;file name&#8221; in order to avoid hitting the Microsoft patent for having both names at once.</p>
<p>Apparently the patch -also- has to be careful with the junk data in the legacy 8.3 field though or else it could trip a Windows XP bug that could cause a system crash.</p>
<p>The legal theory behind this is that since the garbled data in that field does not constitute a file name, it does not trip over Microsoft&#8217;s patent.</p>
<p>Clearly the FAT32 file system is garbage, since its cluster size no longer makes efficient use of the size of storage it is typically used on (SD cards and miniature hard drives with dozens or hundreds of gigabytes), is prone to data corruption issues, and cannot store any individual file that is larger than four gigabytes. This takes a side seat of course to the fact that various bits of its behaviors are controlled by a giant patent troll (Microsoft), but even on sheer technical merit FAT32 is getting awfully long in the tooth.</p>
<p>It&#8217;s clear that the Linux Foundation suggestion of device makers coming up with a platform-neutral standard that nobody can sue over is probably the best thing to do going forward.</p>
<p>The fact remains that there are millions on millions of devices which still depend on FAT32, so it&#8217;s vital that these patent problems can be worked around.</p>
<p>Microsoft has said that they do not intend to go after individual Linux users, which sounds nice on the surface but would be  impractical in practice.</p>
<p>In practice, they are going after device makers that implement FAT32.</p>
<p>In the end this can only have the unintended effect of lighting a fire under the collective ass of GPS and MP3 player makers since they are the ones being extorted, to move on to better technology that does not require anything controlled exclusively by our friends at MICROS~1.<br />
<strong> </strong></p>
<div id="attachment_1203" class="wp-caption aligncenter" style="width: 260px"><img class="size-full wp-image-1203" title="Leia" src="http://izanbardprince.wordpress.com/files/2009/07/leia.jpg" alt="Leia" width="250" height="375" /><p class="wp-caption-text">&#34;The more you tighten your grip, Tarkin, the more star systems will slip through your fingers.&#34;</p></div>
<p style="text-align:center;"><strong> </strong></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[¿ Que Sistema de Archivos usas ?]]></title>
<link>http://elendill.wordpress.com/2009/04/05/%c2%bf-que-sistema-de-archivos-usas/</link>
<pubDate>Sun, 05 Apr 2009 03:02:05 +0000</pubDate>
<dc:creator>elendill</dc:creator>
<guid>http://elendill.wordpress.com/2009/04/05/%c2%bf-que-sistema-de-archivos-usas/</guid>
<description><![CDATA[Todos sabemos que son los archivos o por lo menos tenemos pequeñas o grandes ideas que los definiera]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p style="text-align:justify;">Todos sabemos que son los <em><strong>archivos</strong></em> o por lo menos tenemos pequeñas o grandes ideas que los definieran,  pero un sistema de archivos es un poco más complejo por eso explicaré un  poco su terminología y el uso que a éstos se les da en el mundo de los <em><strong>Sistemas Operativos</strong></em>&#8230;</p>
<p style="text-align:justify;"><a rel="attachment wp-att-1101" href="http://elendill.wordpress.com/2009/04/05/%c2%bf-que-sistema-de-archivos-usas/sistema-de-archivos/"><img class="aligncenter size-medium wp-image-1101" title="sistema-de-archivos" src="http://elendill.wordpress.com/files/2009/04/sistema-de-archivos.gif?w=300" alt="sistema-de-archivos" width="300" height="210" /></a></p>
<p style="text-align:justify;">Un <strong><em>Sistema de archivos</em></strong> no es más que la estructura básica y vital de toda la información que guardamos, editamos, borramos, copiamos etc&#8230;en nuestro ordenador siendo toda esta información accesada a través de gestores de archivos  en sus respectivos <strong>OS</strong>.</p>
<p style="text-align:justify;"><!--[if gte mso 9]&#62;  Normal 0   21   false false false  ES X-NONE X-NONE              MicrosoftInternetExplorer4              &#60;![endif]--><!--[if gte mso 9]&#62;                                                                                                                                            &#60;![endif]--></p>
<p style="text-align:justify;"><!--[if gte mso 10]&#62;--></p>
<p style="text-align:justify;">Podríamos decir entonces que los <em><strong>sistemas de archivos</strong></em> son los algoritmos y estructuras lógicas utilizadas para poder acceder a la información que tenemos en el disco. Cada uno de los sistemas operativos crea estas estructuras y logaritmos de diferente manera independientemente del hardware.</p>
<p style="text-align:justify;"><a rel="attachment wp-att-1102" href="http://elendill.wordpress.com/2009/04/05/%c2%bf-que-sistema-de-archivos-usas/archivos-directorios/"><img class="aligncenter size-medium wp-image-1102" title="archivos-directorios" src="http://elendill.wordpress.com/files/2009/04/archivos-directorios.png?w=300" alt="archivos-directorios" width="300" height="270" /></a></p>
<p style="text-align:justify;">Cada sistema operativo maneja un único sistema de archivos, es decir <strong>Windows</strong> utiliza un sistema de archivos distinto al de <strong>Mac</strong> o al de <strong>Linux.</strong></p>
<p style="text-align:justify;"><!--[if gte mso 9]&#62;  Normal 0   21   false false false  ES X-NONE X-NONE              MicrosoftInternetExplorer4              &#60;![endif]--><!--[if gte mso 9]&#62;                                                                                                                                            &#60;![endif]--></p>
<table class="MsoNormalTable" style="width:100%;text-align:justify;" border="0" cellspacing="1" cellpadding="0" width="100%">
<tbody>
<tr>
<td style="padding:3pt;" colspan="2">
<h2 class="MsoNormal" style="text-align:center;"><span style="color:#000000;"><strong><span style="font-size:16pt;">Tipos de sistemas de archivos</span></strong></span></h2>
<p class="MsoNormal" style="text-align:center;" align="center">
<p class="MsoNormal" style="text-align:center;" align="center"><strong><span style="font-size:16pt;color:navy;"><br />
</span></strong></td>
</tr>
<tr>
<td style="padding:3pt;">
<p class="MsoNormal"><strong>ISO9660</strong></p>
</td>
<td style="padding:3pt;">
<p class="MsoNormal">Sistema de archivos para CD-ROM</p>
</td>
</tr>
<tr>
<td style="padding:3pt;">
<p class="MsoNormal"><strong><span style="font-family:&#34;">Joliet</span></strong><span style="font-size:10pt;font-family:&#34;"><br />
<!--[if !supportLineBreakNewLine]--><br />
<!--[endif]--></span></p>
<p class="MsoNormal"><strong>MINIX</strong></p>
</td>
<td style="padding:3pt;">
<p class="MsoNormal">Sistema de archivos para CD-ROM</p>
<p class="MsoNormal">
<p class="MsoNormal">Este sistema de archivos se emplea para disquetes.</p>
</td>
</tr>
<tr>
<td style="padding:3pt;">
<p class="MsoNormal"><strong>FAT</strong></p>
</td>
<td style="padding:3pt;">
<p class="MsoNormal">
<p class="MsoNormal">El sistema de archivos originalmente utilizado por DOS.   FAT 12, FAT16, FAT32.</p>
</td>
</tr>
<tr>
<td style="padding:3pt;">
<p class="MsoNormal"><strong>VFAT</strong></p>
</td>
<td style="padding:3pt;">
<p class="MsoNormal">
<p class="MsoNormal">FAT virtual: Soporte para nombres de archivo largos dentro   del sistema de archivos FAT.</p>
</td>
</tr>
<tr>
<td style="padding:3pt;">
<p class="MsoNormal"><strong>UFS</strong></p>
</td>
<td style="padding:3pt;">
<p class="MsoNormal">
<p class="MsoNormal">Empleado por BSD, SunOS y NeXTstep. Sólo soportado en modo   de sólo lectura.</p>
</td>
</tr>
<tr>
<td style="padding:3pt;">
<p class="MsoNormal"><strong>NTFS</strong></p>
</td>
<td style="padding:3pt;">
<p class="MsoNormal">Sistema de archivos Microsoft Windows NT, sólo lectura.</p>
</td>
</tr>
<tr>
<td style="padding:3pt;">
<p class="MsoNormal"><strong>Ext2,3</strong></p>
</td>
<td style="padding:3pt;">
<p class="MsoNormal">
<p class="MsoNormal">Sistemas de archivos Linux originales. Ext3 incluye   soporte de journaling (registro por diario).</p>
</td>
</tr>
<tr>
<td style="padding:3pt;">
<p class="MsoNormal"><strong>XFS</strong></p>
</td>
<td style="padding:3pt;">
<p class="MsoNormal">Sistema de archivos de journaling de SGI. Linux</p>
</td>
</tr>
<tr>
<td style="padding:3pt;">
<p class="MsoNormal"><strong>JFS</strong></p>
</td>
<td style="padding:3pt;">
<p class="MsoNormal">Sistema de archivos de journaling de IBM. Linux</p>
</td>
</tr>
<tr>
<td style="padding:3pt;">
<p class="MsoNormal"><strong>ReiserFS</strong></p>
</td>
<td style="padding:3pt;">
<p class="MsoNormal">Sistema de archivos de journaling de Hans Reiser. Linux</p>
</td>
</tr>
</tbody>
</table>
<p style="text-align:justify;"><strong>HFS</strong>. HFS es el Sistema de Archivo de Mac. Se usa en todo tipo de medio de almacenamiento, desde CD&#8217;s y DVD&#8217;s hasta el Disco Duro.</p>
<p style="text-align:justify;"><a rel="attachment wp-att-1105" href="http://elendill.wordpress.com/2009/04/05/%c2%bf-que-sistema-de-archivos-usas/macway_silverdrive_quattro-con-hfs/"><img class="aligncenter size-medium wp-image-1105" title="macway_silverdrive_quattro-con-hfs" src="http://elendill.wordpress.com/files/2009/04/macway_silverdrive_quattro-con-hfs.jpg?w=249" alt="macway_silverdrive_quattro-con-hfs" width="249" height="300" /></a></p>
<p style="text-align:justify;"><strong>HFS+</strong>. HFS+ es la variante moderna de HFS con soporte para una mayor capacidad de almacenamiento, unicode y mucho más.</p>
<p style="text-align:justify;"><a rel="attachment wp-att-1103" href="http://elendill.wordpress.com/2009/04/05/%c2%bf-que-sistema-de-archivos-usas/archivos-sistema/"><img class="aligncenter size-medium wp-image-1103" title="archivos-sistema" src="http://elendill.wordpress.com/files/2009/04/archivos-sistema.jpg?w=300" alt="archivos-sistema" width="300" height="170" /></a></p>
<p style="text-align:justify;"><!--[if gte mso 9]&#62;  Normal 0   21   false false false  ES X-NONE X-NONE              MicrosoftInternetExplorer4              &#60;![endif]--><!--[if gte mso 9]&#62;                                                                                                                                            &#60;![endif]--></p>
<p style="text-align:justify;"><strong>ISO9660</strong></p>
<p style="text-align:justify;">El más común de los Sistemas de Archivo en todos los CDs y DVDs es el Sistema de Archivo ISO9660.</p>
<p style="text-align:justify;">Pero también es el más antiguo, y tiene algunas desventajas, tales como:</p>
<p style="text-align:justify;">a) La estructura de carpetas solamente puede ser de 8 niveles de profundidad.</p>
<p style="text-align:justify;">b)   Solamente usa nombres de archivo &#8216;cortos&#8217; <strong></strong></p>
<p style="text-align:justify;"><strong><span style="font-family:&#34;">Joliet</span></strong></p>
<p style="text-align:justify;">Es un standar de Sistema de Archivo para CD.</p>
<p style="text-align:justify;">Es una ampliación del antiguo ISO9660.  Está construido de la misma forma, pero con algunos cambios.</p>
<p style="text-align:justify;">Los archivos y carpetas (directorios) pueden tener nombres largos.<br />
La máxima jerarquía de profundidad de carpeta puede exceder los 8 Niveles.</p>
<p style="text-align:justify;">Este Sistema de Archivo es muy popular, y el 99% de todos los CD&#8217;s y DVD&#8217;s lo contienen.<strong></strong></p>
<p style="text-align:justify;"><strong>Fat 12:</strong></p>
<p style="text-align:justify;">Es el sistema de archivos de DOS, y es con el que formateamos los disquetes. Fue muy utilizado en las primeras PCs.</p>
<p style="text-align:justify;"><strong>Fat 16:</strong></p>
<p style="text-align:justify;">Este sistema de archivos tenia muchas limitaciones, por ejemplo si el disco duro era mayor de 2 GB, era imposible particionar y no usaba nombre largos en los archivos, solo 8 caracteres.</p>
<p style="text-align:justify;"><strong>Fat 32:</strong></p>
<p style="text-align:justify;">Fue utilizado a partir de 1997, y pudo ser utilizado en Windows 98, pero a medida que el tamaño de los discos duros se incrementaba, surgieron nuevas limitaciones. Se llamo Fat32, por que utiliza números de 32 bits para representar a los clusters en lugar de los 16 en los sistemas anteriores.</p>
<p style="text-align:justify;"><strong>NTFS</strong>:</p>
<p style="text-align:justify;">(New Technology File System) es un sistema de archivos diseñado específicamente para <span style="color:#0f243e;">Windows NT</span> (incluyendo las versiones <span style="color:#17365d;">Windows 2000, Windows 2003, Windows XP y Windows Vista</span>), con el objetivo de crear un sistema de archivos eficiente, robusto con seguridad incorporada desde su base y eficacia para servidores y otras aplicaciones en red. No tiene limitaciones de tamaño clusters y en general en el disco. Una ventaja de este sistema de archivos es que tiene un sistema antifragmentación.</p>
<p style="text-align:justify;"><a rel="attachment wp-att-1104" href="http://elendill.wordpress.com/2009/04/05/%c2%bf-que-sistema-de-archivos-usas/sistema-ntfs/"><img class="aligncenter size-medium wp-image-1104" title="sistema-ntfs" src="http://elendill.wordpress.com/files/2009/04/sistema-ntfs.jpg?w=300" alt="sistema-ntfs" width="300" height="242" /></a></p>
<p style="text-align:justify;">Es un sistema adecuado para las particiones de gran tamaño requeridas en estaciones de trabajo de alto rendimiento y servidores.</p>
<p style="text-align:justify;">Los inconvenientes que plantea son:</p>
<ul style="text-align:justify;" type="disc">
<li class="MsoNormal">Necesita      para sí mismo una buena cantidad de espacio en disco duro, por lo que no      es recomendable su uso en discos con menos de 400 MB libres.</li>
<li class="MsoNormal">No es compatible      con MS-DOS, Windows 95, Windows 98 ni Windows ME.</li>
<li class="MsoNormal">No puede      ser utilizado en disquetes.</li>
</ul>
<p style="text-align:justify;">Este sistema de archivos posee un funcionamiento prácticamente secreto, ya que Microsoft no ha liberado su código como hizo con FAT. Gracias a la ingeniería inversa, GNU/Linux tiene soporte parcial de escritura y total de lectura en particiones NTFS. Existen varias alternativas, como Captive-NTFS que usa las librerías propietarias de Windows NT para tener acceso completo a NTFS, o <a title="NTFS-3G" href="http://es.wikipedia.org/wiki/NTFS-3G">NTFS-3G</a>. A Mayo del 2007, NTFS-3g ya es una versión definitiva, y han sido incorporados por múltiples distribuciones como Ubuntu, <a title="Gentoo" href="http://es.wikipedia.org/wiki/Gentoo">Gentoo</a>, <a title="Debian" href="http://es.wikipedia.org/wiki/Debian">Debian</a>, <a title="OpenSUSE" href="http://es.wikipedia.org/wiki/OpenSUSE">openSUSE</a>, <a title="Mandriva" href="http://es.wikipedia.org/wiki/Mandriva">Mandriva</a>, <a title="Fedora (distribución Linux)" href="http://es.wikipedia.org/wiki/Fedora_%28distribuci%C3%B3n_Linux%29">Fedora</a>, sólo por mencionar algunas.</p>
<p class="MsoNormal" style="text-align:justify;"><strong>LINUX:</strong></p>
<p class="MsoNormal" style="text-align:justify;">
<p class="MsoNormal" style="text-align:justify;">Los sistemas de archivos más utilizados en Linux son: Ext3, ReiserFS, JFS y XFS.</p>
<p class="MsoNormal" style="text-align:justify;">
<p style="text-align:justify;"><strong>ReiserFS</strong> es un sistema de archivos de propósito general, diseñado e implementado por un equipo de la empresa Namesys, liderado por Hans Reiser. Actualmente es soportado por <span style="color:#365f91;">Linux</span> y existen planes de futuro para incluirlo en otros sistemas operativos. También es soportado bajo windows (de forma no oficial), aunque por el momento de manera inestable y rudimentaria (ReiserFS bajo windows). A partir de la versión 2.4.1 del <a title="Linux (núcleo)" href="http://es.wikipedia.org/wiki/Linux_%28n%C3%BAcleo%29">núcleo de Linux</a>, ReiserFS se convirtió en el primer sistema de ficheros con <em>journal</em> en ser incluido en el núcleo estándar. También es el sistema de archivos por defecto en varias distribuciones, como <a title="SuSE" href="http://es.wikipedia.org/wiki/SuSE">SuSE</a> (excepto en <a title="OpenSuSE" href="http://es.wikipedia.org/wiki/OpenSuSE">openSuSE</a> 10.2 que su formato por defecto es <a title="Ext3" href="http://es.wikipedia.org/wiki/Ext3">ext3</a>), <a title="Xandros" href="http://es.wikipedia.org/wiki/Xandros">Xandros</a>, <a title="Yoper" href="http://es.wikipedia.org/wiki/Yoper">Yoper</a>, <a title="Linspire" href="http://es.wikipedia.org/wiki/Linspire">Linspire</a>, <a title="Kurumin Linux" href="http://es.wikipedia.org/wiki/Kurumin_Linux">Kurumin Linux</a>, FTOSX, <a title="Libranet (aún no redactado)" href="http://es.wikipedia.org/w/index.php?title=Libranet&#38;action=edit&#38;redlink=1">Libranet</a> y <a title="Knoppix" href="http://es.wikipedia.org/wiki/Knoppix">Knoppix</a>.</p>
<p style="text-align:justify;">
<h2 style="text-align:center;"></h2>
<h2 style="text-align:center;"><em><strong>El Ext4 para Linux</strong></em></h2>
<p style="text-align:justify;">
<p style="text-align:justify;">
<p style="text-align:justify;">&#8220;Ext4 es la evolución del sistema de archivos más utilizado en el mundo Linux, Ext3. En muchos sentidos Ext4 es una mejora más profunda de Ext3 que la que Ext3 fue de Ext2. Ext3 consistió básicamente en añadir <em>journaling</em>, pero Ext4 modifica ciertas estructuras críticas del sistema de archivos, como las destinadas a almacenar los datos de los archivos&#8221;.</p>
<p style="text-align:justify;"><a rel="attachment wp-att-1106" href="http://elendill.wordpress.com/2009/04/05/%c2%bf-que-sistema-de-archivos-usas/ext4/"><img class="aligncenter size-medium wp-image-1106" title="ext4" src="http://elendill.wordpress.com/files/2009/04/ext4.jpg?w=300" alt="ext4" width="300" height="171" /></a></p>
<p style="text-align:justify;"><span style="color:#ff0000;">cito en Wikipedia: </span><span style="color:#0000ff;"> http://es.wikipedia.org/wiki/Ext4</span></p>
<p style="text-align:justify;"><strong>ext4</strong> (<em>fourth extended filesystem</em> o &#8220;cuarto sistema de archivos extendido&#8221;) es un <a title="Sistema de archivos" href="http://es.wikipedia.org/wiki/Sistema_de_archivos">sistema de archivos</a> con registro por diario (en inglés <em><a title="Journaling" href="http://es.wikipedia.org/wiki/Journaling">Journaling</a></em>), anunciado el <a title="10 de octubre" href="http://es.wikipedia.org/wiki/10_de_octubre">10 de octubre</a> de <a title="2006" href="http://es.wikipedia.org/wiki/2006">2006</a> por <a title="Andrew Morton" href="http://es.wikipedia.org/wiki/Andrew_Morton">Andrew Morton</a>, como una mejora compatible de <a title="Ext3" href="http://es.wikipedia.org/wiki/Ext3">ext3</a>. El <a title="25 de diciembre" href="http://es.wikipedia.org/wiki/25_de_diciembre">25 de diciembre</a> de <a title="2008" href="http://es.wikipedia.org/wiki/2008">2008</a> se publicó el kernel de Linux 2.6.28, que elimina ya la etiqueta de &#8220;experimental&#8221; de código de ext4.</p>
<p style="text-align:justify;">Las principales mejoras son:</p>
<ul style="text-align:justify;">
<li>Soporte de volúmenes de hasta 1024 <a title="Pebibyte" href="http://es.wikipedia.org/wiki/Pebibyte">PiB</a>.</li>
<li>Soporte añadido de <em><a class="new" title="Extent (aún no redactado)" href="http://es.wikipedia.org/w/index.php?title=Extent&#38;action=edit&#38;redlink=1">extent</a></em>.</li>
<li>Menor uso del CPU.</li>
<li>Mejoras en la velocidad de lectura y escritura.</li>
</ul>
<p style="text-align:justify;">
<p style="text-align:justify;">
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Cómo formatear una puta memora USB en FAT16]]></title>
<link>http://putolinux.wordpress.com/2008/11/26/como-formatear-una-puta-memora-usb-en-fat16/</link>
<pubDate>Wed, 26 Nov 2008 16:48:08 +0000</pubDate>
<dc:creator>pragmart</dc:creator>
<guid>http://putolinux.wordpress.com/2008/11/26/como-formatear-una-puta-memora-usb-en-fat16/</guid>
<description><![CDATA[1. Instalo las utilidades para formatear con el siguiente comando (desde Terminal de root): apt-get ]]></description>
<content:encoded><![CDATA[1. Instalo las utilidades para formatear con el siguiente comando (desde Terminal de root): apt-get ]]></content:encoded>
</item>
<item>
<title><![CDATA[Guida per principianti a GNU/Linux: fstab e i suoi segreti]]></title>
<link>http://guiodic.wordpress.com/2008/09/11/guida-per-principianti-a-gnulinux-fstab-e-i-suoi-segreti/</link>
<pubDate>Thu, 11 Sep 2008 09:00:06 +0000</pubDate>
<dc:creator>guiodic</dc:creator>
<guid>http://guiodic.wordpress.com/2008/09/11/guida-per-principianti-a-gnulinux-fstab-e-i-suoi-segreti/</guid>
<description><![CDATA[Abbiamo visto come montare manualmente le partizioni. E abbiamo detto che, di norma, per i dispositi]]></description>
<content:encoded><![CDATA[Abbiamo visto come montare manualmente le partizioni. E abbiamo detto che, di norma, per i dispositi]]></content:encoded>
</item>
<item>
<title><![CDATA[Guida per principianti a GNU/Linux: montare (e smontare) hard disk e pennette flash]]></title>
<link>http://guiodic.wordpress.com/2008/09/01/guida-per-principianti-a-gnulinux-montare-hard-disk-e-pennette-flash/</link>
<pubDate>Mon, 01 Sep 2008 16:30:25 +0000</pubDate>
<dc:creator>guiodic</dc:creator>
<guid>http://guiodic.wordpress.com/2008/09/01/guida-per-principianti-a-gnulinux-montare-hard-disk-e-pennette-flash/</guid>
<description><![CDATA[Abbiamo visto perché i sistemi Unix necessitano del montaggio delle memorie di massa. Ora passiamo a]]></description>
<content:encoded><![CDATA[Abbiamo visto perché i sistemi Unix necessitano del montaggio delle memorie di massa. Ora passiamo a]]></content:encoded>
</item>
<item>
<title><![CDATA[[Shell] FAT-Laufwerksbezeichnung ändern]]></title>
<link>http://commitsuicide.wordpress.com/2008/08/26/shell-fat-laufwerksbezeichnung-andern/</link>
<pubDate>Tue, 26 Aug 2008 08:06:02 +0000</pubDate>
<dc:creator>Chris</dc:creator>
<guid>http://commitsuicide.wordpress.com/2008/08/26/shell-fat-laufwerksbezeichnung-andern/</guid>
<description><![CDATA[Wer hätte das gedacht, dass es nochmal interessant sein könnte eine Laufwerksbezeichnung zu ändern? ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Wer hätte das gedacht, dass es nochmal interessant sein könnte eine Laufwerksbezeichnung zu ändern?<br />
Normalerweise bekommen Festplatten oder sowas bei mir keinen Namen, mir reichen die Einhängepunkte in meinem System&#8230;</p>
<p><!--more--><br />
Aber da ich gestern einen neuen USB-Stick bekommen habe, der eine total kryptische Volumen-Bezeichnung hatte, und dieser entsprechend bei mir auch nach /media/A2G8EWASWEISSICH gemountet wird, wollte ich das Label schon ändern. Oder habt ihr immer Lust den ganzen Namen zum Navigieren in die Adressleiste der Nautilus oder der Shell einzugeben?</p>
<p>Nur: Wie ändert man unter Linux die Datenträgerbezeichnung? Rechtsklick -&#62; Eigenschaften wie bei Windows geht nicht!<br />
Für (v)FAT-formatierte Laufwerke kann man das dennoch recht simpel über die Bash erledigen! Man braucht lediglich die mtools, die wir mit  <code>sudo apt-get install mtools</code> in unserem Ubuntu ganz schnell installiert haben.<br />
Anschließend benennen wir unseren Stick ganz einfach um:<br />
<code>sudo mlabel -i /dev/sdb1 ::"stick"</code></p>
<p>Und Tada: Der Stick wird beim nächsten Einhängen nach <code>/media/STICK</code> gemountet!</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Recovering data from a damaged FAT32 hard disk drive]]></title>
<link>http://dirksmetric.wordpress.com/2008/01/20/recovering-data-from-a-damaged-fat32-hard-disk-drive/</link>
<pubDate>Sun, 20 Jan 2008 16:06:18 +0000</pubDate>
<dc:creator>Dirk</dc:creator>
<guid>http://dirksmetric.wordpress.com/2008/01/20/recovering-data-from-a-damaged-fat32-hard-disk-drive/</guid>
<description><![CDATA[I just want to wrap up how I managed to recover the data from a laptop&#8217;s damaged hard disk dri]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>I just want to wrap up how I managed to recover the data from a laptop&#8217;s damaged hard disk drive. The 40GB disk was formatted with FAT32, had a Windows XP and some serious I/O error problems preventing it from booting.</p>
<p>I cleaned up my external 80 GB HDD, plugged it via USB into the laptop and booted the system with the latest Knoppix-CD. I reformatted the entire disk (/dev/sda1) with the ext3 file system, mounted it with (# mkdir /media/sda1 ; mount -t auto /dev/sda1 /media/sda1) and gave full access to the entire disk (# cd /media/sda1 ; chmod 777 *).</p>
<p>Since Knoppix is missing the dd_rhelp script, I downloaded the latest package and put it on that external  disk (into /media/sda1/dd_rhelp). The damaged disk in the laptop was /dev/hda1. I set disk-access parameters for that disk back to basic but safe, disabling DMA and higher level PIO mode access:<br />
<code># hdparm -m 0 -d 0 -p 0 -A 0 -X 08 /dev/hda</code><br />
This makes things horribly slow in copying the large chunks of good data, but it improved the overall process since it can handle bad blocks in a better fashion. Next, I edited the dd_rhelp script and set the values &#8220;max_bs=1024&#8243; and &#8220;min_bs=64&#8243; in /media/sda1/dd_rhelp/dd_rhelp. The standard values of dd_rhelp are fine, but slow down the copying of data if the disk is damaged to a larger degree.</p>
<p>Ready to copy the data. Change to root with &#8220;su&#8221; and then run<br />
<code># /media/sda1/dd_rhelp/dd_rhelp /dev/sda1 /media/sda1/sda1_backup.img</code><br />
This process makes a bit-per-bit copy of the entire disk and writes it to the image sda1_backup.img. Any bit that cannot be read by the program will be zero. This takes a while. Quite a while. For my 40GB about a week. Which had nothing to do with the hdparm above but with the overall state of the disk (I ran the process twice). You may kill the dd_rhelp and the dd_rescue processes at any time and continue later on. dd_rhelp writes a log file that keeps track of the overall progress that has been made.</p>
<p>When you are done make a copy of the rescued image /media/sda1/sda1_backup.img and get yourself another hard drive that is at least as big as the image you just rescued or make some space on another hard drive. You will have to create a new FAT32 partition that is at least as big as the image. If the file system of the disk from where you just rescued the data has file system X, create a new X partition of that size. In my case, that new partition mounted as /media/sdb6. Now, copy the data from the image to that partition with<br />
<code># dd if=/media/sda1/sda1_backup.img of=/dev/sdb6</code><br />
Mounted /dev/sdb6 and saw the data. You can now run any file system/data/rescue operations on that disk (or the image file) or copy what&#8217;s left of it.</p>
<p>Update: compiled some data in a <a href="http://www.google.com/notebook/public/13391255910222927091/BDSe5QgoQ57vTvvki">How To: Recover Windows Partitions</a>.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[the big bash commands list....]]></title>
<link>http://readthisaloud.wordpress.com/2007/12/05/the-big-fuck-off-bash-commands-list/</link>
<pubDate>Wed, 05 Dec 2007 22:20:30 +0000</pubDate>
<dc:creator>Rock &#39;n Snap</dc:creator>
<guid>http://readthisaloud.wordpress.com/2007/12/05/the-big-fuck-off-bash-commands-list/</guid>
<description><![CDATA[Yes, this is my first attempt of creating a list of useful, everyday bash commands &#8211; as I find]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Yes, this is my first attempt of creating a list of useful, everyday bash commands &#8211; as I find myself constantly in the situation looking for a specific bash command. If you&#8217;re unlucky, googleing the right command (especially if you don&#8217;t know what it&#8217;s called) can cost you several minutes if not hours.</p>
<p>So this will save me and hopefully you as well, the next time plenty of time. If you think there&#8217;s an important command still missing, which is more than likely, <u><strong>feel free to leave a comment with the command</strong></u> and a short explanation what it does.</p>
<p>Very special thanks to Bernd for the idea and his input! Thank you!</p>
<p><!--more--></p>
<p><strong>Basics:</strong></p>
<p><code>cp test.txt /home/user/Desktop</code> copies a txt file called test to the user&#8217;s Desktop</p>
<p><code>mv /home/test.txt /home/user/Desktop/</code>                            moves a txt file called test from the user&#8217;s home directory to the Desktop</p>
<p><code>sudo chmod -R 755 *</code> changes the user rights recursively for the owner to read, write and execute &#8211; for group and world to read and execute. (this command requires root rights «sudo»)</p>
<p><code>sudo chmod -R u+w /home/user/data</code> changes the user rights for the owner recursively to write and read of the directory /home/user/data</p>
<p><code>echo $USER</code> prints the currently being used user name</p>
<p><code>sudo chown -R $USER.users ~/.kde/share/apps/kmail/mail</code> changes the user ownership of the directory  ~/.kde/share/apps/kmail/mail to the currently being used user name</p>
<p><code>ls -la ~/.kde/share/apps/</code> lists the content of a directory e.g ~/kde/share/apps/</p>
<p><code>ls &#124; wc -l</code> counts the files in a directory</p>
<p><code>cp test.txt{.bkp}</code> copies text.txt to text.txt.bkp (creates a backup)</p>
<p><code>uname -a or uname -a &#124; awk '{print $3}'</code> lists your current kernel version number (awk &#8216;{print $3} prints only the kernel version, without its description)</p>
<p><strong>Going deep: </strong></p>
<p><code>perl -pi.bak -e 's/search/replace/' *.php</code> replaces in all .php files the word &#8220;search&#8221; with &#8220;replace&#8221; and creates a backup file .bak e.g. index.php to index.php.bak</p>
<p><code>grep --color ;</code> displays the search result in colour</p>
<p><code>grep -r  searches /home/</code> searches recursively in /home/</p>
<p><code>pgrep firefox</code> displays the process ID number of firefox or any application. useful to «kill» a process</p>
<p><code>sudo kill -9 pid</code> pid = processID number &#8230;.. kill -9 kills the process (requires root rights)</p>
<p><code>sudo /etc/init.d/networking restart</code> restarts the networking service</p>
<p><strong>Mounting:</strong></p>
<p><code>sudo mkdir hda1</code> creates a directory called &#8220;hda1&#8243;</p>
<p><code>sudo mount /dev/hda1 /mnt/hda1</code> mounts the harddisk hda1 into the directory /mnt/hda1</p>
<p><code>sudo umount /dev/sdb5</code> unmounts a device «sdb5» (in this case usb device)</p>
<p><code>sudo mount -t ntfs-3g /dev/hda5 /mnt/windows -o locale=de_DE.utf8</code> mounts a NTFS formatted harddisk read and writeable into /mnt/windows (this implies that the packages «ntfs-3g» &#38; «ntfs-config» are installed)</p>
<p><code>sudo mount -t vfat /dev/hda1 /mnt/windows_c</code> mounts a FAT formatted harddisk read and writeable into /mnt/windows_c</p>
<p><code>sudo blkid</code> shows UUID number of a device</p>
<p><code>mount</code> lists mounted devices</p>
<p><code>lsusb</code> lists usb devices</p>
<p><code>sudo fdisk -l</code> lists all mounted and unmounted harddisks or partitions</p>
<p><code>fuser -v /mount/point</code> displays why a device can&#8217;t be unmounted and which process/user uses the device</p>
<p><strong>Misc:</strong></p>
<p><code>update-alternatives --config editor</code> let&#8217;s you change the standard terminal editor (e.g from vim to nano)</p>
<p><code>ls -la /etc/alternatives/javac</code> lists all java compilers</p>
<p><code>java -version</code> displays the currently installed java version</p>
<p><code>msgfmt test.po -o test.mo</code> compiles a language translation file (po) into a binary .mo file &#8230;. -o stands for output</p>
<p><code>sudo aptitude install language-pack-gnome-de</code> installs a package from a repository (e.g. german gnome language pack)</p>
<p><code>sudo aptitude install tree</code> installs a package called «tree»</p>
<p><code>tree -d  -i (-i removes the 'tree')</code> lists directories and subdirectories&#8230;<br />
<code>tree -d -i &#62; dir.txt</code> lists directories and subdirectories and saves the content into dir.txt</p>
<p><code>aptitude show ktorrent</code> shows information on ktorrent and lists where it&#8217;s available (which repository)</p>
<p>MPLAYER:<br />
<code>mplayer -dumpstream "mms://a1505.v16544e.c16544.g.vm.akamaistream.net/7/1505/16544/v001/roomediaco1.download.akamai.com/16544/wm.roomedia/streamingVX/17056/1386/laptop_300.wmv?clipId=1386_computing_0030&#38;channel=Netevents+TV&#38;category=netevents+tv&#38;site=vnudotnet%2fcomputing" -dumpfile laptop.wmv</code> downloads a stream and saves it as «laptop.wmv»</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Fedora 7 - Mounting vfat partition]]></title>
<link>http://farismadi.wordpress.com/2007/08/26/fedora-7-mounting-vfat-partition/</link>
<pubDate>Sun, 26 Aug 2007 21:28:10 +0000</pubDate>
<dc:creator>Faris Madi</dc:creator>
<guid>http://farismadi.wordpress.com/2007/08/26/fedora-7-mounting-vfat-partition/</guid>
<description><![CDATA[When I tried to mount vfat partition (fat32 for windows) I got an error like &#8220;unknown filesyst]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><div><img src="http://farismadi.wordpress.com/files/2007/08/150318739_27c32ca39a_t.jpg" alt="Fedora 7" /></div>
<p>When I tried to mount vfat partition (fat32 for windows) I got an error like &#8220;unknown filesystem type &#8216;vfat&#8217; &#8221; or something like it.</p>
<p>When I searched for a solution I found that the vfat module is exist in fedora 7 but not loaded to the kernal and I don&#8217;t know why.</p>
<p>so I list the modules that I have:<br />
<code>#su -<br />
#lsmod </code><br />
and I saw vfat</p>
<p>Then I loaded vfat module into the kernal:<br />
<code>#modprobe moduleName </code><br />
or<br />
<code>#insmod (path to module starting from /lib/modules/(yourKernel)/ModuleName</code></p>
<p>after this I mounted vfat partition and it rocks <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Formattare e/o resuscitare un lettore MP3 Philips GoGear SA111X con GNU/Linux]]></title>
<link>http://emanuelecipolla.net/2007/03/19/formattare-eo-resuscitare-un-lettore-mp3-philips-gogear-sa111x-con-gnulinux/</link>
<pubDate>Mon, 19 Mar 2007 00:05:52 +0000</pubDate>
<dc:creator>Emanuele Cipolla</dc:creator>
<guid>http://emanuelecipolla.net/2007/03/19/formattare-eo-resuscitare-un-lettore-mp3-philips-gogear-sa111x-con-gnulinux/</guid>
<description><![CDATA[Nota ai nuovi arrivati: Il procedimento qui descritto non risolve una beneamata mazza. Comprate un n]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><h2>Nota ai nuovi arrivati: Il procedimento qui descritto non risolve una beneamata mazza. Comprate un nuovo lettore (io l&#8217;ho fatto), sorry. <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_sad.gif' alt=':-(' class='wp-smiley' />  )</h2>
<p>Ho comperato presso un grande magazzino della mia città questo lettore MP3 &#8211; mi hanno invogliato:</p>
<ol>
<li>il prezzo competitivo;</li>
<li>il fatto che, a differenza degli altri lettori della serie GoGear, non usano il protocollo <a HREF="http://en.wikipedia.org/wiki/MTP">MTP</a> per la comunicazione dei dati, ma la normale specifica USB storage</li>
</ol>
<p>Dopo un certo numero di giorni, ho notato una degradazione nei tempi di riconoscimento della periferica da parte dei miei PC, e ho pensato fosse il caso di fare una bella riformattata &#8211; salvo scoprire, dopo aver cancellato la partizione, averne ricreata un&#8217;altra e averla formattata, che detta non era accessibile (il messaggio d&#8217;errore era <em>Bad superblock</em>).</p>
<p>Non volendomi rassegnare (e non volendo tornare a usare Winzozz solo per far rifunzionare l&#8217;aggeggio), ho fatto dei tentativi, e ho trovato una combinazione tipo di partizione/filesystem che sembra andare bene:</p>
<ol>
<li>Tipo di partizione: FAT16 (codice esadecimale: 06)</li>
<li>Filesystem: FAT16, con dimensione di ogni settore logico pari a 2048 byte. Il filesystem è stato creato con
<pre>mkfs.vfat -F 16 -S 2048  /dev/[periferica, così come è stata riconosciuta dal kernel)</pre>
</li>
<p>A parte un piccolo problema estetico (la quantità di spazio su disco massima rilevata è pari a <strong><em>3 gigabytes</em></strong>, invece dell&#8217;1 gigabyte previsto dal mio lettore O_o), tutto sembra andare bene.</ol>
</div>]]></content:encoded>
</item>

</channel>
</rss>
