From owner-freebsd-current@FreeBSD.ORG Tue Oct 27 15:03:01 2009 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6064E1065679; Tue, 27 Oct 2009 15:03:01 +0000 (UTC) (envelope-from merijn@inconsistent.nl) Received: from smtp-vbr14.xs4all.nl (smtp-vbr14.xs4all.nl [194.109.24.34]) by mx1.freebsd.org (Postfix) with ESMTP id 0D17B8FC1F; Tue, 27 Oct 2009 15:03:00 +0000 (UTC) Received: from localhost (inconsistent.nl [83.163.46.169]) (authenticated bits=0) by smtp-vbr14.xs4all.nl (8.13.8/8.13.8) with ESMTP id n9RF2wGs024499 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=NO); Tue, 27 Oct 2009 16:02:59 +0100 (CET) (envelope-from merijn@inconsistent.nl) Content-Type: text/plain; charset=utf-8; format=flowed; delsp=yes To: "Robert Noland" References: <1256517106.2502.205.camel@balrog.2hip.net> <1256571299.2502.219.camel@balrog.2hip.net> <1256654976.2497.29.camel@balrog.2hip.net> Date: Tue, 27 Oct 2009 16:02:58 +0100 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit From: "Merijn Verstraaten" Organization: Inconsistent Message-ID: In-Reply-To: <1256654976.2497.29.camel@balrog.2hip.net> User-Agent: Opera Mail/10.00 (MacIntel) X-Virus-Scanned: by XS4ALL Virus Scanner Cc: "freebsd-current@freebsd.org" Subject: Re: GPT boot with ZFS RAIDZ "ZFS: i/o error - all block copies unavailable" X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: merijn@inconsistent.nl List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 27 Oct 2009 15:03:01 -0000 On Tue, 27 Oct 2009 15:49:36 +0100, Robert Noland wrote: >> I tried again yesterday evening by recompiling RELENG_8 and -CURRENT. I >> somehow managed to boot into RELENG_8 the first time, but after that >> this >> error comes up: >> >> ZFS: i/o error - all block copies unavailable >> ZFS: can't read object set for dataset ldd >> Can't find root filesystem - giving up >> ZFS: unexpected object set type ldd >> ZFS: unexpected object set type ldd >> >> FreeBSD/i386 boot >> Default:/ tank:/boot/kernel/kernel >> boot: >> ZFS: unexpected object set type ldd >> >> FreeBSD/i386 boot >> Default:/ tank:/boot/kernel/kernel >> boot: status >> >> pool: tank >> config: >> NAME STATE >> tank ONLINE >> raidz1 ONLINE >> ad4p3 ONLINE >> ad6p3 ONLINE >> ad8p3 ONLINE >> ad10p3 ONLINE >> >> After recompiling world/kernel for -CURRENT I get roughly the same >> error: >> >> ZFS: i/o error - all block copies unavailable >> ZFS: can't read object set for dataset 30 >> Can't find root filesystem - giving up >> ZFS: unexpected object set type 0 >> ZFS: unexpected object set type 0 >> >> FreeBSD/i386 boot >> Default:/ tank:/boot/kernel/kernel > ^^ > This looks strange... Do you have bootfs set to /, or something in > loader.conf? Does it work if you just type "tank:/boot/kernel/kernel" > at this point? > > robert. I think this might be user error. I just checked and the leading / is absent on my screen: ZFS: i/o error - all block copies unavailable ZFS: can't read object set for dataset 30 Can't find root filesystem - giving up ZFS: unexpected object set type 0 ZFS: unexpected object set type 0 FreeBSD/i386 boot Default: tank:/boot/kernel/kernel boot: I probably just typo'ed it this morning. As clarification I have vfs.root.mountfrom="zfs:tank/root" in loader.conf with my root filesystem installed on tank/root and then tank/usr, tank/var etc mounted on tank/root. If you need more detail my current setup procedure is: "gpart create -s GPT " "gpart add -b 34 -s 128 -t freebsd-boot " "gpart add -b 162 -s 1G -t freebsd-swap " "gpart add -t freebsd-zfs " "zpool create tank raidz " "zfs set checksum=fletcher4 tank" "zfs create -o reserv=512m tank/root" "zfs create -o mountpoint=/tank/root/usr tank/usr" "zfs create -o mountpoint=/tank/root/tmp tank/tmp" "zfs create -o mountpoint=/tank/root/var tank/var" "zfs create -o mountpoint=/tank/root/home tank/home" "zfs create tank/usr/obj" "zfs create tank/usr/src" "zfs create tank/usr/ports" export DESTDIR=/tank/root Run the ./install.sh scripts in the various directories of the dist "mkdir /boot/zfs" "zpool export tank && zpool import tank" "cp /boot/zfs/zpool.cache /tank/root/boot/zfs/" Set 'LOADER_ZFS_SUPPORT=yes' in /tank/root/etc/src.conf "chroot /tank/root" "mount -t devfs devfs /dev" "unset DESTDIR" "cd /usr/src/sys/boot/" "make obj" "make depend" "make" "cd i386/loader" "make install" "umount /dev" "exit" "export LD_LIBRARY_PATH=/dist/lib" "gpart bootcode -b /tank/root/boot/pmbr -p /tank/root/boot/gptzfsboot -i 1 " /boot/loader.conf: zfs_load="YES" vfs.root.mountfrom="zfs:tank/root" /etc/rc.conf: zfs_enable="YES" "zfs umount -a" "zfs set mountpoint=legacy tank" "zfs set mountpoint=/tmp tank/tmp" "zfs set mountpoint=/var tank/var" "zfs set mountpoint=/usr tank/usr" "zfs set mountpoint=/home tank/home" "zpool set bootfs=tank/root tank" Then reboot, csup sources to whatever version to test and build world/kernel, install and watch things breaks. Kind regards, Merijn