Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 03 Nov 2006 09:49:57 -0600
From:      Eric Schuele <e.schuele@computer.org>
To:        Andy Greenwood <greenwood.andy@gmail.com>
Cc:        freebsd@orchid.homeunix.org, "illoai@gmail.com" <illoai@gmail.com>, freebsd-questions@freebsd.org
Subject:   Re: /var corrupted.....
Message-ID:  <454B6525.3030402@computer.org>
In-Reply-To: <3ee9ca710611030642pa40318bl5412badda93aebfc@mail.gmail.com>
References:  <1162399232.4866.25.camel@ugly>	 <4548D3DC.3060902@orchid.homeunix.org> <454A0699.2000904@computer.org>	 <d7195cff0611020821g5263e059ga3f79d1a6c927496@mail.gmail.com>	 <454AC644.3080201@computer.org> <3ee9ca710611030642pa40318bl5412badda93aebfc@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On 11/03/2006 08:42, Andy Greenwood wrote:
> couldn't you do something like this?
> 
> 1) install all your "big" ports (leafs with lots of dependancies)
> 2) run this to get a list of depedancy ports which should already be
> there, just not in /var/db/pkg
> 
> # pkg_info -ar | awk '/Dependency:/ {print $2}'|sort|uniq
> 
> 3) "install" these ports so that they get added to /var/db/pkg.
> 
> Seems like this should work, am I missing something?

I think the above would work just as well.  The only difference I see is 
that `pkgdb -F` is automating step 3 for me.  It's determining what 
dependencies are not present, and asking if I would like to install 
them.  This way, for example, I do not have to determine where 
vte-0.14.1_1 resides and cd in there, and make it... then on to the 
next.. etc.

Thanks.

> 
> On 11/2/06, Eric Schuele <e.schuele@computer.org> wrote:
>> On 11/02/2006 10:21, illoai@gmail.com wrote:
>> > On 11/2/06, Eric Schuele <e.schuele@computer.org> wrote:
>> >> On 11/01/2006 11:05, Karol Kwiatkowski wrote:
>> >> > On 01/11/2006 17:40, Eric Schuele wrote:
>> >> >> Hello,
>> >> >>
>> >> >> [Running 6.2-PRERELEASE as of Oct 30th]
>> >> >>
>> >> >> My /var filesystem on my laptop died this morning.
>> > . . .
>> >> >> 2) If I have destroyed it what can I do at this point?  I have 
>> no full
>> >> >> backup of /var.  I had nothing of any real importance on there.  
>> Some
>> >> >> MySQL data... but I've got that.  My package database comes to 
>> mind.
>> >> >> but nothing of any personal value... just stuff to keep the OS 
>> on its
>> >> >> feet.  So... if its gone... is there anyway to create a functional
>> >> /var
>> >> >> filesystem that will allow me to "get back to work as usual"?  Or
>> >> is my
>> >> >> only option a complete reinstall of everything?
>> > . . .
>> >> > The downside of this (option 2) is you'll loose some important
>> >> > information about your system, /var/db/pkg comes first to my mind.
>> >>
>> >> With respect to the package database...
>> >> I've seen plenty of threads from folks having lost theirs in some form
>> >> or fashion, and the solution always seems to be "reinstall 
>> everything".
>> >>   Well, ok... sounds like a PITA, but how hard can it really be.  I 
>> only
>> >> had 30-40 "apps" installed anyway.  With their deps it weighs in 
>> around
>> >> 350 ports total.  So I started to do just that.  Figured I'd reinstall
>> >> in the order I originally installed in the first place.  Starting with
>> >> Xorg.  I go to the port dir and `make install`, thinking it would
>> >> reinstall it and all its deps.  No go.  It does in fact reinstall 
>> Xorg,
>> >> but none of its deps because it finds them present.  Reinstalling 
>> 30-40
>> >> apps is one things, having to manually go in and do 350... now thats a
>> >> PITA!
>> >
>> > You might be able to force mount the dirty filesystem via
>> > mount -f
>> > You can also try
>> > dd if=/dev/ad0s1d of=some_dang_file_name*
>> > And then using mdconfig to play with the resulting file.
>> > mdconfig -t vnode -f some_dang_file_name -u 0 && \
>> > mount -f /dev/md0c /mnt (maybe?)
>> > If you can get the /var/db/pkg dir off nicely, good luck.
>>
>> Thanks.  Good ideas.  I'll play with this when I have time.  But after
>> using mtree to recreate the structure in /var (off the / filesystem),
>> things came back online pretty well.  I'll most likely get things put
>> back together and then just recreate the /var filesystem and copy
>> everything back into it.
>>
>> >
>> > *(Note that this could take a long time on a 1 or 2G /var
>> > as it reads all of the empty blocks as well, you might want
>> > to hand it a bs= and a count= if you know about how much
>> > of /var was full at the time, man dd for more details. Also
>> > note that I have had faster results using sdd from ports)
>> >
>> > I had a similar problem a while back and both methods
>> > were able to read some of the data from the former /var,
>> > however the /var/db/pkg directory was trashed and I ended
>> > up having to fall back on the "reinstall everything" method.
>> > My method ended up consisting of:
>> > 1) reinstalling portupgrade
>> > 2) reinstalling several high level programs (opera, mplayer,
>> > gnumeric, any window managers, & so on)
>> > 3) pkgdb -F which one at a time reinstalls everything depended
>> > on.  Make sure you have backups of any important files in
>> > /usr/local/etc as they may get overwritten.
>> >
>>
>> I'm presently doing this now.  I have reinstalled most, if not all, top
>> level ports and will be running through `pkgdb -F` tomorrow.  I suspect
>> that will take a fair amount of time.
>>
>> Thanks.
>> -- 
>> Regards,
>> Eric
>> _______________________________________________
>> freebsd-questions@freebsd.org mailing list
>> http://lists.freebsd.org/mailman/listinfo/freebsd-questions
>> To unsubscribe, send any mail to 
>> "freebsd-questions-unsubscribe@freebsd.org"
>>
> 
> 


-- 
Regards,
Eric



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?454B6525.3030402>