xfs
[Top] [All Lists]

Re: Question for XFS (mounting and clean bit)

To: linux-xfs@xxxxxxxxxxx
Subject: Re: Question for XFS (mounting and clean bit)
From: Martin Steigerwald <Martin@xxxxxxxxxxxx>
Date: Thu, 29 May 2008 10:02:14 +0200
In-reply-to: <20080527181336.22qjfcgcfdlwsg40@webmail.versatel.de>
References: <20080527181336.22qjfcgcfdlwsg40@webmail.versatel.de> (sfid-20080527_213946_881555_0B129DA7)
Sender: xfs-bounce@xxxxxxxxxxx
User-agent: KMail/1.9.9
Am Dienstag 27 Mai 2008 schrieb Andre Nitschke:
> Hello,
> i am a Linux User from Germany and chanched to xfs. I use Debian 4 and
> the installer creates lilo. Because of a wrong configuration i
> destroyed the lilo.conf and rebootet with a systemrescuecd. from here i
> mount the xfs partition and try to run lilo, but it fails.
> then i had a realy bad idea. i unmount the xfs partition and then mount
> it as root, but there exit a root file system.

Hi Andre!

Some additional hint on this:

I think what you actually wanted to do was:

mount /dev/sda1 /mnt
chroot /mnt
lilo
Ctrl-D

I.e. you use chroot to change a directory temporarily and only for all 
subsequent commands in the same console session to /.

> i have two questions. first, is the xfs on my working-machine damaged
> by my bad idea mounting two devices as root
> and secound, is the clean bit removed when mounting a xfs or when i
> first write data on it?

Also here some clarification and confirmation on my previous statement:

I believe that a new mount is only seen by process that enter the mount 
point directory after the mount has been done. I think that all the 
processes that are working already in that directory or a sub directory 
of it will still see the situation before the mount.

Lets try this out:

Shell 1:

/mnt/zeit is on the / filesystem:

martin@shambala:~ -> cd /mnt/zeit
martin@shambala:/mnt/zeit -> ls -lid .
89142 drwxr-xr-x 2 root root 6 2008-01-28 14:35 .

Shell 2:

I mount a filesystem on top of it:

root@shambala:~ -> mount /dev/shambala/lugcamp2008 /mnt/zeit
root@shambala:~ -> cd /mnt/zeit
root@shambala:/mnt/zeit -> ls -lid .
128 drwxrwxr-x 3 root martin 18 2008-05-04 00:32 .

128 appears to be the root inode (/) of the XFS filesystem in question.

But see Shell 1 again:

martin@shambala:/mnt/zeit -> ls -lid .
89142 drwxr-xr-x 2 root root 6 2008-01-28 14:35 .

Get the picture? Shell 1 still sees the old inode.

Shell 2:

Lets create a file in there:
root@shambala:/mnt/zeit -> touch fs1

And now shell 3:

Mount another filesystem on top of the same directory:

root@shambala:/mnt/zeit -> ls -lid .
128 drwxr-xr-x 24 root root 4096 2008-05-24 20:57 .
root@shambala:/mnt/zeit -> LANG=EN stat fs1
stat: cannot stat `fs1': No such file or directory
root@shambala:/mnt/zeit -> stat fs1
root@shambala:/mnt/zeit -> touch fs2

I get the same root inode number (since /dev/sda1 is a XFS filesystem as 
well which happens to use 128 as root inode number), but the file "fs1" 
is not there anymore, so this is clearly a different filesystem.

Back to shell 2:

It still sees fs1, but not fs2:

root@shambala:/mnt/zeit -> LANG=EN stat fs2
stat: cannot stat `fs2': No such file or directory

root@shambala:/mnt/zeit -> LANG=EN stat fs1
  File: `fs1'
  Size: 0               Blocks: 0          IO Block: 4096   regular empty 
file
Device: fd00h/64768d    Inode: 184442      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2008-05-29 09:45:58.754469708 +0200
Modify: 2008-05-29 09:45:58.754469708 +0200
Change: 2008-05-29 09:45:58.754469708 +0200

Back to shell 1:

It still sees neither fs1 or fs2, but the inode before the first mount has 
happened:

martin@shambala:/mnt/zeit -> ls -lid .
89142 drwxr-xr-x 2 root root 6 2008-01-28 14:35 .

martin@shambala:/mnt/zeit -> LANG=EN stat fs1 fs2
stat: cannot stat `fs1': No such file or directory
stat: cannot stat `fs2': No such file or directory

But now lets CD out of the directory and back in again:

martin@shambala:/mnt/zeit -> ls -lid .
128 drwxr-xr-x 24 root root 4096 2008-05-29 09:47 .
martin@shambala:/mnt/zeit -> LANG=EN stat fs1 fs2
stat: cannot stat `fs1': No such file or directory
  File: `fs2'
  Size: 0               Blocks: 0          IO Block: 4096   regular empty 
file
Device: 801h/2049d      Inode: 75339       Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2008-05-29 09:47:58.090807158 +0200
Modify: 2008-05-29 09:47:58.090807158 +0200
Change: 2008-05-29 09:47:58.090807158 +0200

*Now* it sees the current situation of the second mount.

Back to shell 2:

While shell 2 still sees the situation of the first mount:

root@shambala:/mnt/zeit -> LANG=EN stat fs1 fs2
  File: `fs1'
  Size: 0               Blocks: 0          IO Block: 4096   regular empty 
file
Device: fd00h/64768d    Inode: 184442      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2008-05-29 09:45:58.754469708 +0200
Modify: 2008-05-29 09:45:58.754469708 +0200
Change: 2008-05-29 09:45:58.754469708 +0200
stat: cannot stat `fs2': No such file or directory

Even when I start a new shell, it still sees the first mount cause it 
inherits the namespace from its parent process:

root@shambala:/mnt/zeit -> bash
root@shambala:/mnt/zeit -> LANG=EN stat fs1 fs2
  File: `fs1'
  Size: 0               Blocks: 0          IO Block: 4096   regular empty 
file
Device: fd00h/64768d    Inode: 184442      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2008-05-29 09:45:58.754469708 +0200
Modify: 2008-05-29 09:45:58.754469708 +0200
Change: 2008-05-29 09:45:58.754469708 +0200
stat: cannot stat `fs2': No such file or directory

Only a change out of the mount point directory updates the view of the 
process:

root@shambala:/mnt -> cd zeit
root@shambala:/mnt/zeit -> LANG=EN stat fs1 fs2
stat: cannot stat `fs1': No such file or directory
  File: `fs2'
  Size: 0               Blocks: 0          IO Block: 4096   regular empty 
file
Device: 801h/2049d      Inode: 75339       Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2008-05-29 09:47:58.090807158 +0200
Modify: 2008-05-29 09:47:58.090807158 +0200
Change: 2008-05-29 09:47:58.090807158 +0200


Confused? ;-) Then I suggest playing around with this a bit. But with a 
different directory than / ;-)

That shown I I think that only processes you started *after* your second 
mount will have seen the XFS fileystem you mounted. So the only thing I 
think that might have happened is that a process that you started in your 
shell *after* you did the mount has written something to the XFS 
filesystem.

And in either case I am quite sure that nothing of all of this could 
actually have corrupted your XFS filesystem.

Ciao,
-- 
Martin 'Helios' Steigerwald - http://www.Lichtvoll.de
GPG: 03B0 0D6C 0040 0710 4AFA  B82F 991B EAAC A599 84C7


<Prev in Thread] Current Thread [Next in Thread>