Linux LVM users
 help / color / mirror / Atom feed
From: Anders Widman <andewid@tnonline.net>
To: linux-lvm@sistina.com, "Heinz J . Mauelshagen" <mauelshagen@sistina.com>
Subject: Re: [linux-lvm] filesystem corruption...
Date: Fri Mar  1 07:25:02 2002	[thread overview]
Message-ID: <2324858906.20020301142534@tnonline.net> (raw)
In-Reply-To: <20020301105859.B30022@sistina.com>

> On Thu, Feb 28, 2002 at 10:07:03AM +0100, Anders Widman wrote:
>> 
>> > On Thu, Feb 28, 2002 at 09:35:53AM +0100, Anders Widman wrote:
>> >> 
>> >> >> On Wednesday, February 27, 2002 04:42:28 PM -0700 Andreas Dilger <adilger@clusterfs.com> wrote:
>> >> 
>> >> >>> On Feb 27, 2002  23:36 +0100, Anders Widman wrote:
>> >> >>>> Unfortunatley, something went seriously wrong. I can't mount the disk
>> >> >>>> any more, or use reiserfsck. They (mount/reiserfsck) say there isn't
>> >> >>>> a valid filesystem on the device. Vgscan does however find all devices
>> >> >>>> and can activate the volume group, but reiserfsck doesn't work.
>> >> >>>> 
>> >> >>>> What should I do to be able to save a s much data as possible?
>> >> >>> 
>> >> >>> dd if=/dev/vg/lv of=/new/disk conv=sync,noerror
>> >> 
>> >> >> Then we should be able to use debugreiserfs and reiserfsck to 
>> >> >> find a copy of the super in the log, or just recreate it.
>> >> 
>> >> >> -chris
>> >> 
>> >> > So. How much space would this require on the 'new' disk? The same
>> >> > amount as the entire LV? If that is, it would be impossible (for me,
>> >> > economically) to do this.
>> >> 
>> >> > The disk with bad blocks is 80GB, and I have a "spare" 80GB disk, but
>> >> > not more.
>> >> 
>> >> > //Anders
>> >> 
>> >> Oh, I forgot to ask how I can recover the filsystem
>> >> header/suprtblock.. What exactly is "dd if=/dev/vg/lv of=/new/disk
>> >> conv=sync,noerror" doing to the data, except copying it to the new
>> >> device?
>> 
>> > It copies all it can read to another sane device so that youe don't loose
>> > more data if your drive turns worse.
>> 
>> > After that, you want to use "reiserfsck --rebuild-sb /dev/vg/lv".
>> 
>> Ok. Unfortunatley, I can't get enough storage to copy all data. Would
>> it be possible to just copy the data from the broken disk to a new,

> So /dev/vg/lv is bigger than that disk?

Yes, much bigger...


>> identical disk (I have a "spare" disk of the same model), and then
>> rebuild the filsystem?

> Well, then pvcreate the spare disk, add it to your VG and
> "pvmove -i /dev/BrokenDisk /dev/SaneDisk" data over.

Great. I remember reading something about this '-i' option on this
list before, just didn't remember. So this is as safe as use 'dd' to
move all data from the bad disk to the new disk?


> You need to have recent LVM 1.0.3 tools in order to use the -i option of
> pvmove, which ignores read errors and you need to patch liblvm.h with the
> following one to make pvmove work correctly.

> After that repair the filesystem in /dev/vg/lv.

This patch below is to add the support to ignore read errors?

> diff -u -B -r1.43 -r1.44
> --- LVM/tools/lib/liblvm.h      18 Feb 2002 16:37:18 -0000      1.43
> +++ LVM/tools/lib/liblvm.h      20 Feb 2002 10:49:14 -0000      1.44
> @@ -93,10 +93,10 @@
>  #include <time.h>
>  #include <limits.h>
>  #ifdef _G_LSEEK64
> -int lseek64 ( unsigned int, unsigned long long, unsigned int);
> +loff_t lseek64 ( int, loff_t, int);
>  #define llseek lseek64
>  #else
> -int llseek ( unsigned int, unsigned long long, unsigned int);
> +loff_t llseek ( int, loff_t, int);
>  #endif

>  #include <sys/ioctl.h>
> @@ -130,7 +130,7 @@
>  #define        LVMTAB                  "/etc/lvmtab"   /* LVM table of VGs */
>  #define        LVMTAB_DIR              "/etc/lvmtab.d" /* storage dir VG data */
>  #define        LVMTAB_MINSIZE   ( sizeof ( vg_t) + sizeof ( lv_t) + sizeof ( pv_t))
> -#define        LVM_DEV                 "/dev/lvm"
> +#define        LVM_DEV                 LVM_DIR_PREFIX "lvm"
>  #define        VG_BACKUP_DIR           "/etc/lvmconf"
>  #define        DISK_NAME_LEN           8
>  #define        LV_MIN_NAME_LEN         5
 
And thanks again for your help!

//Anders

      reply	other threads:[~2002-03-01  7:25 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-02-27 16:36 [linux-lvm] filesystem corruption Anders Widman
2002-02-27 17:42 ` Andreas Dilger
2002-02-27 20:13   ` Chris Mason
2002-02-27 23:51     ` Anders Widman
2002-02-28  2:35       ` Anders Widman
2002-02-28  3:01         ` Heinz J . Mauelshagen
2002-02-28  3:07           ` Anders Widman
2002-03-01  3:59             ` Heinz J . Mauelshagen
2002-03-01  7:25               ` Anders Widman [this message]

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=2324858906.20020301142534@tnonline.net \
    --to=andewid@tnonline.net \
    --cc=linux-lvm@sistina.com \
    --cc=mauelshagen@sistina.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