From owner-freebsd-fs@FreeBSD.ORG Sun Jan 22 20:15:57 2012 Return-Path: Delivered-To: freebsd-fs@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DC8EE106564A for ; Sun, 22 Jan 2012 20:15:57 +0000 (UTC) (envelope-from andrnils@gmail.com) Received: from mail-bk0-f54.google.com (mail-bk0-f54.google.com [209.85.214.54]) by mx1.freebsd.org (Postfix) with ESMTP id 63FCA8FC13 for ; Sun, 22 Jan 2012 20:15:56 +0000 (UTC) Received: by bkbc12 with SMTP id c12so2454148bkb.13 for ; Sun, 22 Jan 2012 12:15:56 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=EL/nX5KbVuFUJqrz3hAtusSWD4dztbXjZYhvV3LvKdc=; b=RFlkMiVHodDLIJeA2lFdpOikPu/nZc7HnQH1QxRDlvi0RObnn/XMWE1XMKDOvqyJ9E v/Gi5emrZv8QuNJ4Tl2UB+k2yYogemF6jFmafpL73dksHDKXEx5ScMX3820DbzuAdRql sMOlNaADPbXmjw+sBRF5aQ1CkvVsXdA9SaSkk= MIME-Version: 1.0 Received: by 10.205.121.145 with SMTP id gc17mr2176317bkc.23.1327263356172; Sun, 22 Jan 2012 12:15:56 -0800 (PST) Received: by 10.204.40.74 with HTTP; Sun, 22 Jan 2012 12:15:56 -0800 (PST) In-Reply-To: References: Date: Sun, 22 Jan 2012 21:15:56 +0100 Message-ID: From: Andreas Nilsson To: Johannes Totz Content-Type: text/plain; charset=ISO-8859-1 X-Content-Filtered-By: Mailman/MimeDel 2.1.5 Cc: freebsd-fs@freebsd.org Subject: Re: Booting from zfs snapshot X-BeenThere: freebsd-fs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Filesystems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 22 Jan 2012 20:15:57 -0000 On Sun, Jan 22, 2012 at 1:25 PM, Johannes Totz wrote: > On 19/01/2012 16:26, Andreas Nilsson wrote: > >> Hello, >> >> I'm trying to wrap my head around the process of booting from a zfs >> snapshot. I have hit a few roadblocks, which I hope this is the adequate >> list to post to regarding those. >> >> A short note on what I'm trying to achieve might be in order. In short: a >> nanobsd system on zfs only. I want to boot from a snapshot so that when I >> push out an upgrade with zfs send, I want the root filesystem to remain >> unchanged. >> >> The problems I've hit so far: >> *1 Making the zpool.cache file available >> *2 Having / mount via entry in fstab. >> > > FWIW, I dont use any fstab for my zfs-only machine. Works perfectly fine > with mountpoint property. It was just a small hope that the boot would continue with the filesystem pointed out by the bootfs property. I'm setting vfs.root.mountfrom in loader.conf now. > > > *1: The zpool.cache is needed to autoimport a pool as I understand it. Is >> there a way to force the kernel to import a pool during bootup even though >> no zpool.cache is around? What does this file actually contain? >> >> I made an experiment and booted a disk with zfs root from machine a in >> machine b and that worked. I did partition the disk with gpart using a gpt >> scheme, and labeled the partition on which the pool resides as os, and >> upon >> creation of the zpool used gpt/os as device. Does this mean that as long >> as >> gpt/os is available, any machine boot this disk will have the zpool >> autoimported? >> > > Not quite sure I understand you here. Just a note: booting kernel and > mounting root fs are two different things. the *zfsloader will happily load > the kernel off a pool and boot it but mounting root might fail later (I > guess if no cachefile is present?). > > Sorry for being unclear. What I experience is exactly what you're describing: gptzfsloader loads the kernel and runs it just fine, but mounting root fails due to missing zpool.cache. I'm looking for a way to have the pool imported without the zpool.cache > > >> *2: Having a line like >> tank/root/8.2-RELEASE-p5@ro / zfs ro 0 0 >> in fstab causes mount to throw an error and leave me in single user mode, >> when the system is booted however mount can mount a zfs snapshot just >> fine. >> Setting vfs.root.mountfrom in loader.conf works just fine though. >> > > The above I still think is rather strange: setting vfs.root.mountfrom to a snapshot ( given that the snapshot has the zpool.cache file) works, but not having the corresponding line in fstab. > > > -- > Sent from my > What I'm seeking a solution to is this: Boot several machines from one zfs snapshot. Since the stream from zfs send is also used to do the initial install there is no easy way to get the correct zpool.cache file in the snapshot. I guess one possible way to tackle this problem is to modify zpool so that all pools get created with the same id. Regards Andreas