LinuxQuestions.org
Welcome to the most active Linux Forum on the web.
Home Forums Tutorials Articles Register
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - General
User Name
Password
Linux - General This Linux forum is for general Linux questions and discussion.
If it is Linux Related and doesn't seem to fit in any other forum then this is the place.

Notices


Reply
  Search this Thread
Old 06-10-2011, 04:01 AM   #1
ajitht1986
LQ Newbie
 
Registered: Mar 2011
Posts: 3

Rep: Reputation: 0
Accessing files of a subdirectory whose parent directory is in a different partition.


Hello,

I was reading through ext2 filesytem tutorial and understood that the directory is a kind of file with a list of inodes against the file names.

For accessing a file ,first the inode for that file is obtained from its parent directory.

eg consider the directory /tmp

inode num filename
1000 .
2 ..
2300 tmp_fil1.txt
2301 tmp_fil2.txt

Suppose if / is mounted on /dev/hda1 and tmp is mounted on /dev/hda2.

I'm trying to access file /tmp/tmp_fil1.txt .
In that case the inode of / will be first accessed => 2.
From inode structure 2 the directory name tmp will be searched for and the matching inode will be returned(1000).

However this inode num (1000) belongs to a different partition(/dev/hda2) and each partition can have its own inode numbers.

How does the filesystem recognize
to which partition the inode number 1000 belongs to?
 
Old 06-10-2011, 07:54 AM   #2
onebuck
Moderator
 
Registered: Jan 2005
Location: Central Florida 20 minutes from Disney World
Distribution: SlackwareŽ
Posts: 13,925
Blog Entries: 44

Rep: Reputation: 3159Reputation: 3159Reputation: 3159Reputation: 3159Reputation: 3159Reputation: 3159Reputation: 3159Reputation: 3159Reputation: 3159Reputation: 3159Reputation: 3159
Hi,

First;
Quote:
Suppose if / is mounted on /dev/hda1 and tmp is mounted on /dev/hda2.
Quote:
excerpt from 'man fstab';
fstab - static information about the filesystems

SYNOPSIS
#include <fstab.h>

DESCRIPTION
The file fstab contains descriptive information about the various file systems. fstab is only read by programs, and not written; it is the duty
of the system administrator to properly create and maintain this file. Each filesystem is described on a separate line; fields on each line are
separated by tabs or spaces. Lines starting with '#' are comments. The order of records in fstab is important because fsck(8), mount(8), and
umount(8) sequentially iterate through fstab doing their thing.

The first field, (fs_spec), describes the block special device or remote filesystem to be mounted.

For ordinary mounts it will hold (a link to) a block special device node (as created by mknod(8)) for the device to be mounted, like `/dev/cdrom'
or `/dev/sdb7'. For NFS mounts one will have <host>:<dir>, e.g., `knuth.aeb.nl:/'. For procfs, use `proc'.

Instead of giving the device explicitly, one may indicate the (ext2 or xfs) filesystem that is to be mounted by its UUID or volume label (cf.
e2label(8) or xfs_admin(8)), writing LABEL=<label> or UUID=<uuid>, e.g., `LABEL=Boot' or `UUID=3e6be9de-8139-11d1-9106-a43f08d823a6'. This will
make the system more robust: adding or removing a SCSI disk changes the disk device name but not the filesystem volume label.

The second field, (fs_file), describes the mount point for the filesystem. For swap partitions, this field should be specified as `none'. If the
name of the mount point contains spaces these can be escaped as `\040'.

The third field, (fs_vfstype), describes the type of the filesystem. Linux supports lots of filesystem types, such as adfs, affs, autofs, coda,
coherent, cramfs, devpts, efs, ext2, ext3, hfs, hpfs, iso9660, jfs, minix, msdos, ncpfs, nfs, ntfs, proc, qnx4, reiserfs, romfs, smbfs, sysv,
tmpfs, udf, ufs, umsdos, vfat, xenix, xfs, and possibly others. For more details, see mount(8). For the filesystems currently supported by the
running kernel, see /proc/filesystems. An entry swap denotes a file or partition to be used for swapping, cf. swapon(8). An entry ignore causes
the line to be ignored. This is useful to show disk partitions which are currently unused. An entry none is useful for bind or move mounts.

The fourth field, (fs_mntops), describes the mount options associated with the filesystem.

It is formatted as a comma separated list of options. It contains at least the type of mount plus any additional options appropriate to the
filesystem type. For documentation on the available options for non-nfs file systems, see mount(8). For documentation on all nfs-specific
options have a look at nfs(5). Common for all types of file system are the options ``noauto'' (do not mount when "mount -a" is given, e.g., at
boot time), ``user'' (allow a user to mount), and ``owner'' (allow device owner to mount), and ``comment'' (e.g., for use by fstab-maintaining
programs). The ``owner'' and ``comment'' options are Linux-specific. For more details, see mount(8).

The fifth field, (fs_freq), is used for these filesystems by the dump(8) command to determine which filesystems need to be dumped. If the fifth
field is not present, a value of zero is returned and dump will assume that the filesystem does not need to be dumped.

The sixth field, (fs_passno), is used by the fsck(8) program to determine the order in which filesystem checks are done at reboot time. The root
filesystem should be specified with a fs_passno of 1, and other filesystems should have a fs_passno of 2. Filesystems within a drive will be
checked sequentially, but filesystems on different drives will be checked at the same time to utilize parallelism available in the hardware. If
the sixth field is not present or zero, a value of zero is returned and fsck will assume that the filesystem does not need to be checked.
Your '/dev/hda1' would contain the filesystem for '/' & '/dev/hda2' would contain the filesystem for 'tmp'. Your mount point for '/' is on '/dev/hda1' which hopefully is mount properly as per '/etc/fstab'. Then '/dev/hda2' would be mounted to mount point '/tmp' if defined in '/etc/fstab'.

You could now theorize properly.

Look at Linux File System to get some background information.
 
  


Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
move all files in current directory into a subdirectory in the current directory jakykong Linux - Newbie 8 07-16-2013 11:46 PM
Shell script to automatically delete files with the same name as the parent directory pratap.iisc Programming 9 10-12-2009 10:17 AM
[SOLVED] move all ".txt" files, adding parent directory to filename mostofmonty Linux - Newbie 9 09-15-2009 08:39 AM
search files in the current directory/subdirectory for lines that match particular rajdey1 Linux - Newbie 2 11-24-2008 02:32 PM
script for deleting .dat files which > 5 mb from a directory and its subdirectory anindyabhattacharjee Linux - Enterprise 2 01-15-2007 11:38 PM

LinuxQuestions.org > Forums > Linux Forums > Linux - General

All times are GMT -5. The time now is 08:44 PM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration