Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 02 Sep 2011 16:35:57 +0300
From:      Andriy Gapon <avg@FreeBSD.org>
To:        Sebastian Chmielewski <chmiels@o2.pl>
Cc:        freebsd-current@FreeBSD.org
Subject:   Re: ZFS: i/o error - all block copies unavailable after upgrading to r225312
Message-ID:  <4E60DBBD.1040703@FreeBSD.org>
In-Reply-To: <20110901223646.14b8aae8@o2.pl>
References:  <20110901223646.14b8aae8@o2.pl>

next in thread | previous in thread | raw e-mail | index | archive | help
on 01/09/2011 23:36 Sebastian Chmielewski said the following:
> 
> hi,
> I'm running FreeBSD-CURRENT r224522M installed on ZFS Root and GPT
> partitions and this setup is running fine. Today I've updated to r225312 and
> after rebooting I've got following error message from boot loader:
> 
> ZFS: i/o error - all block copies unavailable
> 
> Then I did "zfs rollback" using rescue disk to previous revision and I was able to
> boot.
> Steps I did to update system:
> 
> zfs snapshot 
> make buildworld
> make buildkernel
> make installkernel
> reboot
> can't boot
> zfs rollback using rescue disk
> boot to previous revision (r224522M).
> 
> Are there any more steps required for this procedure to work?
> My previous updates from source on the same setup where successfull, this is
> the first time I've encountered this error message when upgrading from source.


Could you please try the following?

Repeat your upgrade procedure up to reboot.  Take all the necessary precautions,
so that you can recover your system again!

Then:
- obtain this patch http://people.freebsd.org/~avg/zfstest.head.diff
- cd sys/boot/zfs
- apply the patch to zfstest.c
- cc -I. -I../../cddl/boot/zfs zfstest.c -o zfstest
- run the resulting binary as root and provide your pool device(s) as
parameter(s); e.g.:
  ./zfstest /dev/ada0p4

If the program produces text of FreeBSD COPYRIGHT file as its output, then the ZFS
boot code can access your pool.  If the program works OK, but booting still fails
it may mean that you have stale boot blocks which you need to update before
rebooting.  Either installworld should do that or you can do make install in
sys/boot directory. Also you might need to update your freebsd-boot partition with
gpart command.

If the program fails, then please share its output and also try to analyze where
it fails by looking at the code and adding prints at the suspicious/crucial points.

> My setup:
> gpart show 
> =>       34  250069613  ada0  GPT  (119G)
>          34        128     1  freebsd-boot  (64k)
>         162       1886     5  bios-boot  (943k)
>        2048   16777216     2  !0fc63daf-8483-4772-8e79-3d69d8477de4  (8.0G)
>    16779264   33554432     3  freebsd-ufs  (16G)
>    50333696  199735951     4  freebsd-zfs  (95G)
> 
> Partitions 3 and 4 are separate zfs pools (3 is geli encrypted and 4 is for
> operating system).  
> 
> zfs list
> NAME                        USED  AVAIL  REFER  MOUNTPOINT
> home                       10,4G  5,24G  10,4G  /home
> zroot                      90,2G  3,27G  1,16G  legacy
> 
> /etc/fstab
> # Device		Mountpoint	FStype	Options			Dump	Pass#
> zroot			/		zfs	rw,noatime		0	0
> /dev/acd0		/cdrom		cd9660	ro,noauto		0	0
> proc 			/proc 		procfs 	rw 			0	0


-- 
Andriy Gapon



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4E60DBBD.1040703>