throbber
Filesystems
`12/7/23, 7:24 PM
`The Wayback Machine - https://web.archive.org/web/20080304043345/http://tldp.org:80/LDP/sag/html/filesy…
`Linux System Administrators Guide:
`Chapter 5. Using Disks and Other Storage Media
`
`Prev
`
`Next
`
`5.10. Filesystems
`5.10.1. What are filesystems?
`
`A filesystem is the methods and data structures that an operating system uses to keep track of files on a disk or
`partition; that is, the way the files are organized on the disk. The word is also used to refer to a partition or disk
`that is used to store the files or the type of the filesystem. Thus, one might say ``I have two filesystems'' meaning
`one has two partitions on which one stores files, or that one is using the ``extended filesystem'', meaning the type
`of the filesystem.
`
`The difference between a disk or partition and the filesystem it contains is important. A few programs (including,
`reasonably enough, programs that create filesystems) operate directly on the raw sectors of a disk or partition; if
`there is an existing file system there it will be destroyed or seriously corrupted. Most programs operate on a
`filesystem, and therefore won't work on a partition that doesn't contain one (or that contains one of the wrong
`type).
`
`Before a partition or disk can be used as a filesystem, it needs to be initialized, and the bookkeeping data
`structures need to be written to the disk. This process is called making a filesystem.
`
`Most UNIX filesystem types have a similar general structure, although the exact details vary quite a bit. The
`central concepts are superblock, inode , data block, directory block , and indirection block. The superblock
`contains information about the filesystem as a whole, such as its size (the exact information here depends on the
`filesystem). An inode contains all information about a file, except its name. The name is stored in the directory,
`together with the number of the inode. A directory entry consists of a filename and the number of the inode
`which represents the file. The inode contains the numbers of several data blocks, which are used to store the data
`in the file. There is space only for a few data block numbers in the inode, however, and if more are needed, more
`space for pointers to the data blocks is allocated dynamically. These dynamically allocated blocks are indirect
`blocks; the name indicates that in order to find the data block, one has to find its number in the indirect block
`first.
`
`UNIX filesystems usually allow one to create a hole in a file (this is done with the lseek() system call; check the
`manual page), which means that the filesystem just pretends that at a particular place in the file there is just zero
`bytes, but no actual disk sectors are reserved for that place in the file (this means that the file will use a bit less
`disk space). This happens especially often for small binaries, Linux shared libraries, some databases, and a few
`other special cases. (Holes are implemented by storing a special value as the address of the data block in the
`indirect block or inode. This special address means that no data block is allocated for that part of the file, ergo,
`there is a hole in the file.)
`5.10.2. Filesystems galore
`
`Linux supports several types of filesystems. As of this writing the most important ones are:
`
`minix
`
`The oldest, presumed to be the most reliable, but quite limited in features (some time stamps are missing,
`at most 30 character filenames) and restricted in capabilities (at most 64 MB per filesystem).
`
`https://web.archive.org/web/20080304043345/https:/tldp.org/LDP/sag/html/filesystems.html
`
`1/13
`
`Dropbox Exhibit 1016 - Page 1
`Dropbox, Inc. v. Entangled Media, LLC
`IPR2024-00285 - U.S. Patent No. 8,484,260
`
`

`

`12/7/23, 7:24 PM
`xia
`
`Filesystems
`
`A modified version of the minix filesystem that lifts the limits on the filenames and filesystem sizes, but
`does not otherwise introduce new features. It is not very popular, but is reported to work very well.
`
`ext3
`
`ext2
`
`ext
`
`The ext3 filesystem has all the features of the ext2 filesystem. The difference is, journaling has been
`added. This improves performance and recovery time in case of a system crash. This has become more
`popular than ext2.
`
`The most featureful of the native Linux filesystems. It is designed to be easily upwards compatible, so that
`new versions of the filesystem code do not require re-making the existing filesystems.
`
`An older version of ext2 that wasn't upwards compatible. It is hardly ever used in new installations any
`more, and most people have converted to ext2.
`
`reiserfs
`
`A more robust filesystem. Journaling is used which makes data loss less likely. Journaling is a mechanism
`whereby a record is kept of transaction which are to be performed, or which have been performed. This
`allows the filesystem to reconstruct itself fairly easily after damage caused by, for example, improper
`shutdowns.
`
`jfs
`
`xfs
`
`JFS is a journaled filesystem designed by IBM to to work in high performance environments>
`
`XFS was originally designed by Silicon Graphics to work as a 64-bit journaled filesystem. XFS was also
`designed to maintain high performance with large files and filesystems.
`
`In addition, support for several foreign filesystems exists, to make it easier to exchange files with other operating
`systems. These foreign filesystems work just like native ones, except that they may be lacking in some usual
`UNIX features, or have curious limitations, or other oddities.
`
`msdos
`
`Compatibility with MS-DOS (and OS/2 and Windows NT) FAT filesystems.
`
`umsdos
`
`Extends the msdos filesystem driver under Linux to get long filenames, owners, permissions, links, and
`device files. This allows a normal msdos filesystem to be used as if it were a Linux one, thus removing the
`need for a separate partition for Linux.
`
`vfat
`
`This is an extension of the FAT filesystem known as FAT32. It supports larger disk sizes than FAT. Most
`MS Windows disks are vfat.
`
`https://web.archive.org/web/20080304043345/https:/tldp.org/LDP/sag/html/filesystems.html
`
`2/13
`
`Dropbox Exhibit 1016 - Page 2
`Dropbox, Inc. v. Entangled Media, LLC
`IPR2024-00285 - U.S. Patent No. 8,484,260
`
`

`

`12/7/23, 7:24 PM
`iso9660
`
`Filesystems
`
`The standard CD-ROM filesystem; the popular Rock Ridge extension to the CD-ROM standard that
`allows longer file names is supported automatically.
`
`nfs
`
`A networked filesystem that allows sharing a filesystem between many computers to allow easy access to
`the files from all of them.
`
`smbfs
`
`A networks filesystem which allows sharing of a filesystem with an MS Windows computer. It is
`compatible with the Windows file sharing protocols.
`
`hpfs
`
`sysv
`
`The OS/2 filesystem.
`
`SystemV/386, Coherent, and Xenix filesystems.
`
`NTFS
`
`The most advanced Microsoft journaled filesystem providing faster file access and stability over previous
`Microsoft filesystems.
`
`The choice of filesystem to use depends on the situation. If compatibility or other reasons make one of the non-
`native filesystems necessary, then that one must be used. If one can choose freely, then it is probably wisest to
`use ext3, since it has all the features of ext2, and is a journaled filesystem. For more information on filesystems,
`see Section 5.10.6. You can also read the Filesystems HOWTO located at
`http://www.tldp.org/HOWTO/Filesystems-HOWTO.html
`
`There is also the proc filesystem, usually accessible as the /proc directory, which is not really a filesystem at all,
`even though it looks like one. The proc filesystem makes it easy to access certain kernel data structures, such as
`the process list (hence the name). It makes these data structures look like a filesystem, and that filesystem can be
`manipulated with all the usual file tools. For example, to get a listing of all processes one might use the
`command
`$ ls -l /proc
`total 0
`dr-xr-xr-x 4 root root 0 Jan 31 20:37 1
`dr-xr-xr-x 4 liw users 0 Jan 31 20:37 63
`dr-xr-xr-x 4 liw users 0 Jan 31 20:37 94
`dr-xr-xr-x 4 liw users 0 Jan 31 20:37 95
`dr-xr-xr-x 4 root users 0 Jan 31 20:37 98
`dr-xr-xr-x 4 liw users 0 Jan 31 20:37 99
`-r--r--r-- 1 root root 0 Jan 31 20:37 devices
`-r--r--r-- 1 root root 0 Jan 31 20:37 dma
`-r--r--r-- 1 root root 0 Jan 31 20:37 filesystems
`-r--r--r-- 1 root root 0 Jan 31 20:37 interrupts
`-r-------- 1 root root 8654848 Jan 31 20:37 kcore
`-r--r--r-- 1 root root 0 Jan 31 11:50 kmsg
`-r--r--r-- 1 root root 0 Jan 31 20:37 ksyms
`-r--r--r-- 1 root root 0 Jan 31 11:51 loadavg
`-r--r--r-- 1 root root 0 Jan 31 20:37 meminfo
`-r--r--r-- 1 root root 0 Jan 31 20:37 modules
`dr-xr-xr-x 2 root root 0 Jan 31 20:37 net
`dr-xr-xr-x 4 root root 0 Jan 31 20:37 self
`https://web.archive.org/web/20080304043345/https:/tldp.org/LDP/sag/html/filesystems.html
`
`3/13
`
`Dropbox Exhibit 1016 - Page 3
`Dropbox, Inc. v. Entangled Media, LLC
`IPR2024-00285 - U.S. Patent No. 8,484,260
`
`

`

`Filesystems
`12/7/23, 7:24 PM
`-r--r--r-- 1 root root 0 Jan 31 20:37 stat
`-r--r--r-- 1 root root 0 Jan 31 20:37 uptime
`-r--r--r-- 1 root root 0 Jan 31 20:37
`version
`$
`(There will be a few extra files that don't correspond to processes, though. The above example has been
`shortened.)
`
`Note that even though it is called a filesystem, no part of the proc filesystem touches any disk. It exists only in
`the kernel's imagination. Whenever anyone tries to look at any part of the proc filesystem, the kernel makes it
`look as if the part existed somewhere, even though it doesn't. So, even though there is a multi-megabyte
`/proc/kcore file, it doesn't take any disk space.
`5.10.3. Which filesystem should be used?
`
`There is usually little point in using many different filesystems. Currently, ext3 is the most popular filesystem,
`because it is a journaled filesystem. Currently it is probably the wisest choice. Reiserfs is another popular choice
`because it to is journaled. Depending on the overhead for bookkeeping structures, speed, (perceived) reliability,
`compatibility, and various other reasons, it may be advisable to use another file system. This needs to be decided
`on a case-by-case basis.
`
`A filesystem that uses journaling is also called a journaled filesystem. A journaled filesystem maintains a log, or
`journal, of what has happened on a filesystem. In the event of a system crash, or if your 2 year old son hits the
`power button like mine loves to do, a journaled filesystem is designed to use the filesystem's logs to recreate
`unsaved and lost data. This makes data loss much less likely and will likely become a standard feature in Linux
`filesystems. However, do not get a false sense of security from this. Like everything else, errors can arise.
`Always make sure to back up your data in the event of an emergency.
`
`See Section 5.10.6 for more details about the features of the different filesystem types.
`5.10.4. Creating a filesystem
`
`Filesystems are created, i.e., initialized, with the mkfs command. There is actually a separate program for each
`filesystem type. mkfs is just a front end that runs the appropriate program depending on the desired filesystem
`type. The type is selected with the -t fstype option.
`
`The programs called by mkfs have slightly different command line interfaces. The common and most important
`options are summarized below; see the manual pages for more.
`
`-t fstype
`
`Select the type of the filesystem.
`
`-c
`
`Search for bad blocks and initialize the bad block list accordingly.
`
`-l filename
`
`Read the initial bad block list from the name file.
`
`There are also many programs written to add specific options when creating a specific filesystem. For example
`mkfs.ext3 adds a -b option to allow the administrator to specify what block size should be used. Be sure to find
`out if there is a specific program available for the filesystem type you want to use. For more information on
`determining what block size to use please see Section 5.10.5.
`https://web.archive.org/web/20080304043345/https:/tldp.org/LDP/sag/html/filesystems.html
`
`4/13
`
`Dropbox Exhibit 1016 - Page 4
`Dropbox, Inc. v. Entangled Media, LLC
`IPR2024-00285 - U.S. Patent No. 8,484,260
`
`

`

`Filesystems
`12/7/23, 7:24 PM
`To create an ext2 filesystem on a floppy, one would give the following commands:
`$ fdformat -n /dev/fd0H1440
`Double-sided, 80 tracks, 18 sec/track. Total capacity
`1440 KB.
`Formatting ... done
`$ badblocks /dev/fd0H1440 1440 $>$
`bad-blocks
`$ mkfs.ext2 -l bad-blocks
`/dev/fd0H1440
`mke2fs 0.5a, 5-Apr-94 for EXT2 FS 0.5, 94/03/10
`360 inodes, 1440 blocks
`72 blocks (5.00%) reserved for the super user
`First data block=1
`Block size=1024 (log=0)
`Fragment size=1024 (log=0)
`1 block group
`8192 blocks per group, 8192 fragments per group
`360 inodes per group
`
`Writing inode tables: done
`Writing superblocks and filesystem accounting information:
`done
`
`$F
`
`irst, the floppy was formatted (the -n option prevents validation, i.e., bad block checking). Then bad blocks
`were searched with badblocks, with the output redirected to a file, bad-blocks. Finally, the filesystem was
`created, with the bad block list initialized by whatever badblocks found.
`
`The -c option could have been used with mkfs instead of badblocks and a separate file. The example below
`does that.
`$ mkfs.ext2 -c
`/dev/fd0H1440
`mke2fs 0.5a, 5-Apr-94 for EXT2 FS 0.5, 94/03/10
`360 inodes, 1440 blocks
`72 blocks (5.00%) reserved for the super user
`First data block=1
`Block size=1024 (log=0)
`Fragment size=1024 (log=0)
`1 block group
`8192 blocks per group, 8192 fragments per group
`360 inodes per group
`
`Checking for bad blocks (read-only test): done
`Writing inode tables: done
`Writing superblocks and filesystem accounting information:
`done
`
`$T
`
`he -c option is more convenient than a separate use of badblocks, but badblocks is necessary for checking
`after the filesystem has been created.
`
`The process to prepare filesystems on hard disks or partitions is the same as for floppies, except that the
`formatting isn't needed.
`5.10.5. Filesystem block size
`
`The block size specifies size that the filesystem will use to read and write data. Larger block sizes will help
`improve disk I/O performance when using large files, such as databases. This happens because the disk can read
`or write data for a longer period of time before having to search for the next block.
`
`https://web.archive.org/web/20080304043345/https:/tldp.org/LDP/sag/html/filesystems.html
`
`5/13
`
`Dropbox Exhibit 1016 - Page 5
`Dropbox, Inc. v. Entangled Media, LLC
`IPR2024-00285 - U.S. Patent No. 8,484,260
`
`

`

`Filesystems
`12/7/23, 7:24 PM
`On the downside, if you are going to have a lot of smaller files on that filesystem, like the /etc, there the
`potential for a lot of wasted disk space.
`
`For example, if you set your block size to 4096, or 4K, and you create a file that is 256 bytes in size, it will still
`consume 4K of space on your harddrive. For one file that may seem trivial, but when your filesystem contains
`hundreds or thousands of files, this can add up.
`
`Block size can also effect the maximum supported file size on some filesystems. This is because many modern
`filesystem are limited not by block size or file size, but by the number of blocks. Therefore you would be using a
`"block size * max # of blocks = max block size" formula.
`5.10.6. Filesystem comparison
`
`Table 5-1. Comparing Filesystem Features
`
`FS Name
`FAT16
`FAT32
`HPFS
`NTFS
`HFS+
`UFS2
`ext2
`ext3
`ReiserFS3
`ReiserFS4
`XFS
`JFS
`VxFS
`ZFS
`
`Year Introduced Original OS
`1983
`MSDOS V2
`1997
`Windows 95
`1988
`OS/2
`1993
`Windows NT
`1998
`Mac OS
`2002
`FreeBSD
`1993
`Linux
`1999
`Linux
`2001
`Linux
`2005
`Linux
`1994
`IRIX
`?
`AIX
`1991
`SVR4.0
`2004
`Solaris 10
`
`Max File Size Max FS Size
`4GB
`16MB to 8GB
`4GB
`8GB to 2TB
`4GB
`2TB
`16EB
`16EB
`8EB
`?
`512GB to 32PB 1YB
`16GB to 2TB4
`2TB to 32TB
`16GB to 2TB4
`2TB to 32TB
`8TB8
`16TB
`?
`?
`9EB
`9EB
`8EB
`512TB to 4PB
`16EB
`?
`1YB
`16EB
`
`Journaling
`N
`N
`N
`Y
`N
`N
`N
`Y
`Y
`Y
`Y
`Y
`Y
`N
`
`Legend
`
`Table 5-2. Sizes
`
`Kilobyte - KB 1024 Bytes
`Megabyte - MB 1024 KBs
`Gigabyte - GB 1024 MBs
`Terabyte - TB 1024 GBs
`Petabyte - PB 1024 TBs
`Exabyte - EB
`1024 PBs
`Zettabyte - ZB 1024 EBs
`Yottabyte - YB 1024 ZBs
`
`It should be noted that Exabytes, Zettabytes, and Yottabytes are rarely encountered, if ever. There is a current
`estimate that the worlds printed material is equal to 5 Exabytes. Therefore, some of these filesystem limitations
`
`https://web.archive.org/web/20080304043345/https:/tldp.org/LDP/sag/html/filesystems.html
`
`6/13
`
`Dropbox Exhibit 1016 - Page 6
`Dropbox, Inc. v. Entangled Media, LLC
`IPR2024-00285 - U.S. Patent No. 8,484,260
`
`

`

`Filesystems
`12/7/23, 7:24 PM
`are considered by many as theoretical. However, the filesystem software has been written with these capabilities.
`
`For more detailed information you can visit http://en.wikipedia.org/wiki/Comparison_of_file_systems.
`5.10.7. Mounting and unmounting
`
`Before one can use a filesystem, it has to be mounted. The operating system then does various bookkeeping
`things to make sure that everything works. Since all files in UNIX are in a single directory tree, the mount
`operation will make it look like the contents of the new filesystem are the contents of an existing subdirectory in
`some already mounted filesystem.
`
`For example, Figure 5-3 shows three separate filesystems, each with their own root directory. When the last two
`filesystems are mounted below /home and /usr, respectively, on the first filesystem, we can get a single directory
`tree, as in Figure 5-4.
`
`Figure 5-3. Three separate filesystems.
`
`Figure 5-4. /home and /usr have been mounted.
`
`The mounts could be done as in the following example:
`$ mount /dev/hda2 /home
`$ mount /dev/hda3 /usr
`
`$T
`
`he mount command takes two arguments. The first one is the device file corresponding to the disk or partition
`containing the filesystem. The second one is the directory below which it will be mounted. After these
`commands the contents of the two filesystems look just like the contents of the /home and /usr directories,
`respectively. One would then say that /dev/hda2 is mounted on /home'', and similarly for /usr. To look at either
`filesystem, one would look at the contents of the directory on which it has been mounted, just as if it were any
`other directory. Note the difference between the device file, /dev/hda2, and the mounted-on directory, /home. The
`device file gives access to the raw contents of the disk, the mounted-on directory gives access to the files on the
`disk. The mounted-on directory is called the mount point.
`
`Linux supports many filesystem types. mount tries to guess the type of the filesystem. You can also use the -t
`fstype option to specify the type directly; this is sometimes necessary, since the heuristics mount uses do not
`always work. For example, to mount an MS-DOS floppy, you could use the following command:
`$ mount -t msdos /dev/fd0
`/floppy
`$
`
`https://web.archive.org/web/20080304043345/https:/tldp.org/LDP/sag/html/filesystems.html
`
`7/13
`
`Dropbox Exhibit 1016 - Page 7
`Dropbox, Inc. v. Entangled Media, LLC
`IPR2024-00285 - U.S. Patent No. 8,484,260
`
`

`

`Filesystems
`12/7/23, 7:24 PM
`The mounted-on directory need not be empty, although it must exist. Any files in it, however, will be
`inaccessible by name while the filesystem is mounted. (Any files that have already been opened will still be
`accessible. Files that have hard links from other directories can be accessed using those names.) There is no
`harm done with this, and it can even be useful. For instance, some people like to have /tmp and /var/tmp
`synonymous, and make /tmp be a symbolic link to /var/tmp. When the system is booted, before the /var
`filesystem is mounted, a /var/tmp directory residing on the root filesystem is used instead. When /var is
`mounted, it will make the /var/tmp directory on the root filesystem inaccessible. If /var/tmp didn't exist on the
`root filesystem, it would be impossible to use temporary files before mounting /var.
`
`If you don't intend to write anything to the filesystem, use the -r switch for mount to do a read-only mount. This
`will make the kernel stop any attempts at writing to the filesystem, and will also stop the kernel from updating
`file access times in the inodes. Read-only mounts are necessary for unwritable media, e.g., CD-ROMs.
`
`The alert reader has already noticed a slight logistical problem. How is the first filesystem (called the root
`filesystem, because it contains the root directory) mounted, since it obviously can't be mounted on another
`filesystem? Well, the answer is that it is done by magic. The root filesystem is magically mounted at boot time,
`and one can rely on it to always be mounted. If the root filesystem can't be mounted, the system does not boot.
`The name of the filesystem that is magically mounted as root is either compiled into the kernel, or set using
`LILO or rdev.
`
`For more information, see the kernel source or the Kernel Hackers' Guide.
`
`The root filesystem is usually first mounted read-only. The startup scripts will then run fsck to verify its validity,
`and if there are no problems, they will re-mount it so that writes will also be allowed. fsck must not be run on a
`mounted filesystem, since any changes to the filesystem while fsck is running will cause trouble. Since the root
`filesystem is mounted read-only while it is being checked, fsck can fix any problems without worry, since the
`remount operation will flush any metadata that the filesystem keeps in memory.
`
`On many systems there are other filesystems that should also be mounted automatically at boot time. These are
`specified in the /etc/fstab file; see the fstab man page for details on the format. The details of exactly when the
`extra filesystems are mounted depend on many factors, and can be configured by each administrator if need be;
`see Chapter 8.
`
`When a filesystem no longer needs to be mounted, it can be unmounted with umount. umount takes one
`argument: either the device file or the mount point. For example, to unmount the directories of the previous
`example, one could use the commands
`$ umount /dev/hda2
`$ umount /usr
`
`$ S
`
`ee the man page for further instructions on how to use the command. It is imperative that you always unmount
`a mounted floppy. Don't just pop the floppy out of the drive! Because of disk caching, the data is not necessarily
`written to the floppy until you unmount it, so removing the floppy from the drive too early might cause the
`contents to become garbled. If you only read from the floppy, this is not very likely, but if you write, even
`accidentally, the result may be catastrophic.
`
`Mounting and unmounting requires super user privileges, i.e., only root can do it. The reason for this is that if
`any user can mount a floppy on any directory, then it is rather easy to create a floppy with, say, a Trojan horse
`disguised as /bin/sh, or any other often used program. However, it is often necessary to allow users to use
`floppies, and there are several ways to do this:
`
`Give the users the root password. This is obviously bad security, but is the easiest solution. It works well if
`there is no need for security anyway, which is the case on many non-networked, personal systems.
`
`https://web.archive.org/web/20080304043345/https:/tldp.org/LDP/sag/html/filesystems.html
`
`8/13
`
`Dropbox Exhibit 1016 - Page 8
`Dropbox, Inc. v. Entangled Media, LLC
`IPR2024-00285 - U.S. Patent No. 8,484,260
`
`

`

`12/7/23, 7:24 PM
`Filesystems
`Use a program such as sudo to allow users to use mount. This is still bad security, but doesn't directly give
`super user privileges to everyone. It requires several seconds of hard thinking on the users' behalf.
`Furthermore sudo can be configured to only allow users to execute certain commands. See the sudo(8),
`sudoers(5), and visudo(8) manual pages.
`
`Make the users use mtools, a package for manipulating MS-DOS filesystems, without mounting them.
`This works well if MS-DOS floppies are all that is needed, but is rather awkward otherwise.
`
`List the floppy devices and their allowable mount points together with the suitable options in /etc/fstab.
`
`The last alternative can be implemented by adding a line like the following to the /etc/fstab file:
`/dev/fd0 /floppy msdos user,noauto 0 0
`
`The columns are: device file to mount, directory to mount on, filesystem type, options, backup frequency (used
`by dump), and fsck pass number (to specify the order in which filesystems should be checked upon boot; 0
`means no check).
`
`The noauto option stops this mount to be done automatically when the system is started (i.e., it stops mount -a
`from mounting it). The user option allows any user to mount the filesystem, and, because of security reasons,
`disallows execution of programs (normal or setuid) and interpretation of device files from the mounted
`filesystem. After this, any user can mount a floppy with an msdos filesystem with the following command:
`$ mount /floppy
`$
`
`The floppy can (and needs to, of course) be unmounted with the corresponding umount command.
`
`If you want to provide access to several types of floppies, you need to give several mount points. The settings
`can be different for each mount point. For example, to give access to both MS-DOS and ext2 floppies, you could
`have the following to lines in /etc/fstab:
`/dev/fd0 /mnt/dosfloppy msdos user,noauto 0 0
`/dev/fd0 /mnt/ext2floppy ext2 user,noauto 0 0
`
`The alternative is to just add one line similar to the following:
` /dev/fd0 /mnt/floppy auto user,noauto 0 0
`
`The "auto" option in the filesystem type column allows the mount command to query the filesystem and try to
`determine what type it is itself. This option won't work on all filesystem types, but works fine on the more
`common ones.
`
`For MS-DOS filesystems (not just floppies), you probably want to restrict access to it by using the uid, gid, and
`umask filesystem options, described in detail on the mount manual page. If you aren't careful, mounting an MS-
`DOS filesystem gives everyone at least read access to the files in it, which is not a good idea.
`5.10.8. Filesystem Security
`
`TO BE ADDED
`
`This section will describe mount options and how to use them in /etc/fstab to provide additional system
`security.
`5.10.9. Checking filesystem integrity with fsck
`
`https://web.archive.org/web/20080304043345/https:/tldp.org/LDP/sag/html/filesystems.html
`
`9/13
`
`Dropbox Exhibit 1016 - Page 9
`Dropbox, Inc. v. Entangled Media, LLC
`IPR2024-00285 - U.S. Patent No. 8,484,260
`
`

`

`Filesystems
`12/7/23, 7:24 PM
`Filesystems are complex creatures, and as such, they tend to be somewhat error-prone. A filesystem's correctness
`and validity can be checked using the fsck command. It can be instructed to repair any minor problems it finds,
`and to alert the user if there any unrepairable problems. Fortunately, the code to implement filesystems is
`debugged quite effectively, so there are seldom any problems at all, and they are usually caused by power
`failures, failing hardware, or operator errors; for example, by not shutting down the system properly.
`
`Most systems are setup to run fsck automatically at boot time, so that any errors are detected (and hopefully
`corrected) before the system is used. Use of a corrupted filesystem tends to make things worse: if the data
`structures are messed up, using the filesystem will probably mess them up even more, resulting in more data
`loss. However, fsck can take a while to run on big filesystems, and since errors almost never occur if the system
`has been shut down properly, a couple of tricks are used to avoid doing the checks in such cases. The first is that
`if the file /etc/fastboot exists, no checks are made. The second is that the ext2 filesystem has a special marker
`in its superblock that tells whether the filesystem was unmounted properly after the previous mount. This allows
`e2fsck (the version of fsck for the ext2 filesystem) to avoid checking the filesystem if the flag indicates that the
`unmount was done (the assumption being that a proper unmount indicates no problems). Whether the
`/etc/fastboot trick works on your system depends on your startup scripts, but the ext2 trick works every time
`you use e2fsck. It has to be explicitly bypassed with an option to e2fsck to be avoided. (See the e2fsck man page
`for details on how.)
`
`The automatic checking only works for the filesystems that are mounted automatically at boot time. Use fsck
`manually to check other filesystems, e.g., floppies.
`
`If fsck finds unrepairable problems, you need either in-depth knowledge of how filesystems work in general, and
`the type of the corrupt filesystem in particular, or good backups. The latter is easy (although sometimes tedious)
`to arrange, the former can sometimes be arranged via a friend, the Linux newsgroups and mailing lists, or some
`other source of support, if you don't have the know-how yourself. I'd like to tell you more about it, but my lack
`of education and experience in this regard hinders me. The debugfs program by Theodore Ts'o should be useful.
`
`fsck must only be run on unmounted filesystems, never on mounted filesystems (with the exception of the read-
`only root during startup). This is because it accesses the raw disk, and can therefore modify the filesystem
`without the operating system realizing it. There will be trouble, if the operating system is confused.
`5.10.10. Checking for disk errors with badblocks
`
`It can be a good idea to periodically check for bad blocks. This is done with the badblocks command. It outputs
`a list of the numbers of all bad blocks it can find. This list can be fed to fsck to be recorded in the filesystem data
`structures so that the operating system won't try to use the bad blocks for storing data. The following example
`will show how this could be done.
`$ badblocks /dev/fd0H1440 1440 >
`bad-blocks
`$ fsck -t ext2 -l bad-blocks
`/dev/fd0H1440
`Parallelizing fsck version 0.5a (5-Apr-94)
`e2fsck 0.5a, 5-Apr-94 for EXT2 FS 0.5, 94/03/10
`Pass 1: Checking inodes, blocks, and sizes
`Pass 2: Checking directory structure
`Pass 3: Checking directory connectivity
`Pass 4: Check reference counts.
`Pass 5: Checking group summary information.
`
`/dev/fd0H1440: ***** FILE SYSTEM WAS MODIFIED *****
`/dev/fd0H1440: 11/360 files, 63/1440 blocks
`$
`
`If badblocks reports a block that was already used, e2fsck will try to move the block to another place. If the
`block was really bad, not just marginal, the contents of the file may be corrupted.
`
`https://web.archive.org/web/20080304043345/https:/tldp.org/LDP/sag/html/filesystems.html
`
`10/13
`
`Dropbox Exhibit 1016 - Page 10
`Dropbox, Inc. v. Entangled Media, LLC
`IPR2024-00285 - U.S. Patent No. 8,484,260
`
`

`

`12/7/23, 7:24 PM
`
`5.10.11. Fighting fragmentation?
`
`Filesystems
`
`When a file is written to disk, it can't always be written in consecutive blocks. A file that is not stored in
`consecutive blocks is fragmented. It takes longer to read a fragmented file, since the disk's read-write head will
`have to move more. It is desirable to avoid fragmentation, although it is less of a problem in a system with a
`good buffer cache with read-ahead.
`
`Modern Linux filesystem keep fragmentation at a minimum by keeping all blocks in a file close together, even if
`they can't be stored in consecutive sectors. Some filesystems, like ext3, effectively allocate the free block that is
`nearest to other blocks in a file. Therefore it is not necessary to worry about fragmentation in a Linux system.
`
`In the earlier days of the ext2 filesystem, there was a concern over file fragmentation that lead to the
`development of a defragmentation program called, defrag. A copy of it can still be downloaded at
`http://www.go.dlr.de/linux/src/defrag-0.73.tar.gz. However, it is HIGHLY recommended that you NOT use it. It
`was designed for and older version of ext2, and has not bee updated since 1998! I only mention it here for
`references purposes.
`
`There are many MS-DOS defragmentation programs that move blocks around in the filesystem to remove
`fragmentation. For other filesystems, defragmentation must be done by backing up the filesystem, re-creating it,
`and restoring the files from backups. Backing up a filesystem before defragmenting is a good idea for all
`filesystems, since many things can go wrong during the defragmentation.
`5.10.12. Other tools for all filesystems
`
`Some other tools are also useful for managing filesystems. df shows the free disk space on one or more
`filesystems; du shows how much disk space a directory and all its files contain. These can be used to hunt down
`disk space wasters. Both have manual pages which detail the (many) options which can be used.
`
`sync forces all un

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket