public inbox for linux-xfs@vger.kernel.org
 help / color / mirror / Atom feed
From: Stefan Smietanowski <stesmi@stesmi.com>
To: Hamid <spam.wax@gmail.com>
Cc: Timothy Shimmin <tes@sgi.com>, Eric Sandeen <sandeen@sandeen.net>,
	xfs@oss.sgi.com
Subject: Re: XFS: SB validate failed
Date: Sat, 31 May 2008 02:19:13 +0200	[thread overview]
Message-ID: <48409981.1050405@stesmi.com> (raw)
In-Reply-To: <48408D3E.3090401@gmail.com>

Hamid wrote:
> Stefan Smietanowski wrote:
>>
>> Are you dd'ing the whole disk or just the partition(s) you want ? I
>> recommend just doing the partition(s) into seperate files. I'm uncertain
>> if loopback nowadays handles partitions or not. I know it didn't before
>> but there were patches back then.
>>
>> // Stefan
>>
> I did the whole disk under Linux:
> 
> $ dd if=/dev/sdb of=disk.img conv=noerror,sync
> 
> This is how fdisk sees my image:
> 
> $ sudo fdisk -ul disk.img
> Disk disk.img (SGI disk label): 255 heads, 63 sectors, 0 cylinders
> Units = sectors of 1 * 512 bytes
> 
> ----- partitions -----
> Pt#    Device  Info     Start       End   Sectors  Id  System
> 8: disk.img1            4096   3915599   3911504   a  SGI xfs
> 9: disk.img2               0      4095      4096   0  SGI volhdr
> 11: disk.img3               0   3915599   3915600   6  SGI volume
> ----- Bootinfo -----
> Bootfile: /unix
> ----- Directory Entries -----
> 0: sgilabel   sector    2 size     512
> 
> I could mount the image of the healthy disk using:
> 
> $ sudo mount -t xfs -o loop,offset=$((512*4096)) disk.img /mnt
> 
> and I was able to browse the content of /mnt :)

Excellent, that's one step on the way.

> Trying to mount the whole image didn't work. I was hoping I could do 

Well of course, since "mounting" implies a filesystem and how is
the mount command to know which partition you want to mount and
what filesystem it is to mount? For all it knows you can have 4
partitions with 4 different filesystems on it and how is it to
choose the correct one?

Remember mounting = enabling a filesystem (in a device or file or...)
to be used via a filesystem driver and exported to a mountpoint (/mnt
for example).

In order to do what you're really after you either use your offset
trickery OR use a kernel that can mount partitioned loopback OR write
the image to another disk.

> that so it gives me the possibility of modifying the partition table of 
> the bad disks that refuse to mount under either OS.

If you want to play with the whole device (ie not files) then you can
just run your favorite partition program on your image file or your
favorite binary patching program on the image file.

> Basically I want to play with bad disks' images to see if I can recover 
> any data without actually modifying the disks.
> Is there any work around for this ?
> Should I create a device (rather than a loop) for the whole image ?

I think you have the terminology a little mixed up.

If you mount a something without supplying -o loop "mount" will assume
the filesystem resides in a DEVICE.

If you mount a something WHILE supplying -o loop you tell "mount" that
it should mount it using a loop device. Note device here, it's trickery
really as what it does is that "mount" will FIRST create a new device
node "/dev/loop0" for example and then it will mount from that device
node.

So "should I create a device .." is a little mixed up as that's what
mount is doing deep inside.

> I should mention that creating the whole disk image by using dd under 
> Irix6.5 and using the same mount command as above in Linux didn't work! 
> Something might have gone wrong during the file transfer from Irix to 
> Linux. If I get a chance I'll try it again.

If you do, then create a checksum (sha1sum och md5sum or something) and
compare the image before and after transfer to make sure it's identical.

// Stefan

  reply	other threads:[~2008-05-31  0:18 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-05-29 17:05 XFS: SB validate failed Spam Magnet
2008-05-29 17:19 ` Eric Sandeen
2008-05-29 19:55   ` Spam Magnet
2008-05-29 20:02     ` Eric Sandeen
2008-05-29 21:00       ` Spam Magnet
2008-05-29 21:06         ` Eric Sandeen
2008-05-29 21:46           ` Spam Magnet
2008-05-29 22:19             ` Eric Sandeen
2008-05-29 22:25             ` Stefan Smietanowski
2008-05-30  5:28             ` Timothy Shimmin
2008-05-30 17:19               ` Spam Magnet
2008-05-30 17:59                 ` Stefan Smietanowski
2008-05-30 23:26                   ` Hamid
2008-05-31  0:19                     ` Stefan Smietanowski [this message]
2008-05-31  0:22                       ` Stefan Smietanowski
2008-06-01  7:35                       ` Hamid
2008-06-01 10:46                         ` Stefan Smietanowski
2008-06-03 17:36                           ` Spam Magnet
2008-06-03 17:56                             ` Spam Magnet
2008-06-03 18:59                               ` Stefan Smietanowski
2008-06-03 19:39                                 ` Spam Magnet
2008-06-03 20:23                                   ` Stefan Smietanowski
2008-06-05 16:16                                     ` Spam Magnet
2008-06-02  2:08                 ` Timothy Shimmin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=48409981.1050405@stesmi.com \
    --to=stesmi@stesmi.com \
    --cc=sandeen@sandeen.net \
    --cc=spam.wax@gmail.com \
    --cc=tes@sgi.com \
    --cc=xfs@oss.sgi.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox