From owner-freebsd-stable@FreeBSD.ORG Thu Jun 5 12:52:26 2014 Return-Path: Delivered-To: freebsd-stable@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 83FFA293 for ; Thu, 5 Jun 2014 12:52:26 +0000 (UTC) Received: from fs.denninger.net (wsip-70-169-168-7.pn.at.cox.net [70.169.168.7]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "NewFS.denninger.net", Issuer "NewFS.denninger.net" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 46C2628DD for ; Thu, 5 Jun 2014 12:52:25 +0000 (UTC) Received: from [127.0.0.1] (localhost [127.0.0.1]) by fs.denninger.net (8.14.8/8.14.8) with ESMTP id s55CMYij047424 for ; Thu, 5 Jun 2014 07:22:34 -0500 (CDT) (envelope-from karl@denninger.net) Received: from [127.0.0.1] (TLS/SSL) [192.168.1.40] by Spamblock-sys (LOCAL/AUTH); Thu Jun 5 07:22:34 2014 Message-ID: <53906105.2080302@denninger.net> Date: Thu, 05 Jun 2014 07:22:29 -0500 From: Karl Denninger User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Thunderbird/24.5.0 MIME-Version: 1.0 To: freebsd-stable@freebsd.org Subject: Re: ZFS boot pool selection References: <53902B1D.8030200@ish.com.au> In-Reply-To: <53902B1D.8030200@ish.com.au> Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha1; boundary="------------ms020307060207000604080807" X-Antivirus: avast! (VPS 140605-0, 06/05/2014), Outbound message X-Antivirus-Status: Clean X-BeenThere: freebsd-stable@freebsd.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: Production branch of FreeBSD source code List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 05 Jun 2014 12:52:26 -0000 This is a cryptographically signed message in MIME format. --------------ms020307060207000604080807 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: quoted-printable On 6/5/2014 3:32 AM, Aristedes Maniatis wrote: > I'd like to better understand the boot process as it applies to a ZFS o= n root approach in FreeBSD 9 or 10 using GPT. What I understand so far: > > A. BIOS is able to execute some code placed in a special partition on a= GPT formatted disk. This code is 40kB of hand crafted code and installed= using: > > gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 ada0 > > The partition itself must be created as > > gpart add -s 222 -a 4k -t freebsd-boot -l boot0 ada0 > > > B. For older BIOS systems without knowledge of GPT, the pmbr is install= ed in some other special location on the disk, outside any partitions. Th= is is 512 bytes of code and does nothing other than pretend to be MBR to = tell the old BIOS (or Windows?) to not mess with this disk. > > C. Once gptzfsboot is executing on the CPU, it is able to mount a ZFS p= ool in read only mode. Enough to read the kernel and get a full ZFS imple= mentation in place. > > > > Questions > > 1. If I have two zpools on this machine, how does gptzfsboot know which= one to boot the kernel from? Does it just start by iterating through all= zfs partitions until it finds the zpool metadata cache which give it eno= ugh information to mount some zpool? In other words, does it pick a rando= m pool from what it can access? It looks at the pools until it finds "bootfs" defined on one of them,=20 which tells it where to boot from. > > 2. How does it know where to find the kernel once it mounts the ZFS poo= l, or is the /boot/kernel location hardcoded into the gptzfsboot code? Once it has found "bootfs" it expects the usual structures to be there=20 (e.g. the "/boot" directory) > > 3. Once the kernel is booted, then it can read /boot/loader.conf. In th= ere we can see vfs.root.mountfrom=3D"zfs:tank" but isn't this a bit late?= We've already mounted this pool and loaded the kernel from it. Can we om= it vfs.root.mountfrom entirely? I do not have it in my /boot/loader.conf file. I have "beadm" set up which allows me to snapshot the existing running=20 system structure off my root pool (a separate pool from where data=20 lives) and then start it in a jail and perform an update on it there. I = can then swap to it on the next boot if I wish while retaining the=20 previous system copy (in case something goes wrong.) > > > I understand grub a little better, since in that case you configure, th= en install a new configured grub artifact into the right places. But with= the FreeBSD boot process there seems to be no configuration of the first= stage boot loader. > > > Thanks very much for helping me to understand this boot process in more= detail > > > Cheers > Ari > > --=20 -- Karl karl@denninger.net --------------ms020307060207000604080807 Content-Type: application/pkcs7-signature; name="smime.p7s" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smime.p7s" Content-Description: S/MIME Cryptographic Signature MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEHAQAAoIIFTzCC BUswggQzoAMCAQICAQgwDQYJKoZIhvcNAQEFBQAwgZ0xCzAJBgNVBAYTAlVTMRAwDgYDVQQI EwdGbG9yaWRhMRIwEAYDVQQHEwlOaWNldmlsbGUxGTAXBgNVBAoTEEN1ZGEgU3lzdGVtcyBM TEMxHDAaBgNVBAMTE0N1ZGEgU3lzdGVtcyBMTEMgQ0ExLzAtBgkqhkiG9w0BCQEWIGN1c3Rv bWVyLXNlcnZpY2VAY3VkYXN5c3RlbXMubmV0MB4XDTEzMDgyNDE5MDM0NFoXDTE4MDgyMzE5 MDM0NFowWzELMAkGA1UEBhMCVVMxEDAOBgNVBAgTB0Zsb3JpZGExFzAVBgNVBAMTDkthcmwg RGVubmluZ2VyMSEwHwYJKoZIhvcNAQkBFhJrYXJsQGRlbm5pbmdlci5uZXQwggIiMA0GCSqG SIb3DQEBAQUAA4ICDwAwggIKAoICAQC5n2KBrBmG22nVntVdvgKCB9UcnapNThrW1L+dq6th d9l4mj+qYMUpJ+8I0rTbY1dn21IXQBoBQmy8t1doKwmTdQ59F0FwZEPt/fGbRgBKVt3Quf6W 6n7kRk9MG6gdD7V9vPpFV41e+5MWYtqGWY3ScDP8SyYLjL/Xgr+5KFKkDfuubK8DeNqdLniV jHo/vqmIgO+6NgzPGPgmbutzFQXlxUqjiNAAKzF2+Tkddi+WKABrcc/EqnBb0X8GdqcIamO5 SyVmuM+7Zdns7D9pcV16zMMQ8LfNFQCDvbCuuQKMDg2F22x5ekYXpwjqTyfjcHBkWC8vFNoY 5aFMdyiN/Kkz0/kduP2ekYOgkRqcShfLEcG9SQ4LQZgqjMpTjSOGzBr3tOvVn5LkSJSHW2Z8 Q0dxSkvFG2/lsOWFbwQeeZSaBi5vRZCYCOf5tRd1+E93FyQfpt4vsrXshIAk7IK7f0qXvxP4 GDli5PKIEubD2Bn+gp3vB/DkfKySh5NBHVB+OPCoXRUWBkQxme65wBO02OZZt0k8Iq0i4Rci WV6z+lQHqDKtaVGgMsHn6PoeYhjf5Al5SP+U3imTjF2aCca1iDB5JOccX04MNljvifXgcbJN nkMgrzmm1ZgJ1PLur/ADWPlnz45quOhHg1TfUCLfI/DzgG7Z6u+oy4siQuFr9QT0MQIDAQAB o4HWMIHTMAkGA1UdEwQCMAAwEQYJYIZIAYb4QgEBBAQDAgWgMAsGA1UdDwQEAwIF4DAsBglg hkgBhvhCAQ0EHxYdT3BlblNTTCBHZW5lcmF0ZWQgQ2VydGlmaWNhdGUwHQYDVR0OBBYEFHw4 +LnuALyLA5Cgy7T5ZAX1WzKPMB8GA1UdIwQYMBaAFF3U3hpBZq40HB5VM7B44/gmXiI0MDgG CWCGSAGG+EIBAwQrFilodHRwczovL2N1ZGFzeXN0ZW1zLm5ldDoxMTQ0My9yZXZva2VkLmNy bDANBgkqhkiG9w0BAQUFAAOCAQEAZ0L4tQbBd0hd4wuw/YVqEBDDXJ54q2AoqQAmsOlnoxLO 31ehM/LvrTIP4yK2u1VmXtUumQ4Ao15JFM+xmwqtEGsh70RRrfVBAGd7KOZ3GB39FP2TgN/c L5fJKVxOqvEnW6cL9QtvUlcM3hXg8kDv60OB+LIcSE/P3/s+0tEpWPjxm3LHVE7JmPbZIcJ1 YMoZvHh0NSjY5D0HZlwtbDO7pDz9sZf1QEOgjH828fhtborkaHaUI46pmrMjiBnY6ujXMcWD pxtikki0zY22nrxfTs5xDWGxyrc/cmucjxClJF6+OYVUSaZhiiHfa9Pr+41okLgsRB0AmNwE f6ItY3TI8DGCBQowggUGAgEBMIGjMIGdMQswCQYDVQQGEwJVUzEQMA4GA1UECBMHRmxvcmlk YTESMBAGA1UEBxMJTmljZXZpbGxlMRkwFwYDVQQKExBDdWRhIFN5c3RlbXMgTExDMRwwGgYD VQQDExNDdWRhIFN5c3RlbXMgTExDIENBMS8wLQYJKoZIhvcNAQkBFiBjdXN0b21lci1zZXJ2 aWNlQGN1ZGFzeXN0ZW1zLm5ldAIBCDAJBgUrDgMCGgUAoIICOzAYBgkqhkiG9w0BCQMxCwYJ KoZIhvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0xNDA2MDUxMjIyMjlaMCMGCSqGSIb3DQEJBDEW BBQgeZ3rO/ka58ecT+G8gcPD0yGDdzBsBgkqhkiG9w0BCQ8xXzBdMAsGCWCGSAFlAwQBKjAL BglghkgBZQMEAQIwCgYIKoZIhvcNAwcwDgYIKoZIhvcNAwICAgCAMA0GCCqGSIb3DQMCAgFA MAcGBSsOAwIHMA0GCCqGSIb3DQMCAgEoMIG0BgkrBgEEAYI3EAQxgaYwgaMwgZ0xCzAJBgNV BAYTAlVTMRAwDgYDVQQIEwdGbG9yaWRhMRIwEAYDVQQHEwlOaWNldmlsbGUxGTAXBgNVBAoT EEN1ZGEgU3lzdGVtcyBMTEMxHDAaBgNVBAMTE0N1ZGEgU3lzdGVtcyBMTEMgQ0ExLzAtBgkq hkiG9w0BCQEWIGN1c3RvbWVyLXNlcnZpY2VAY3VkYXN5c3RlbXMubmV0AgEIMIG2BgsqhkiG 9w0BCRACCzGBpqCBozCBnTELMAkGA1UEBhMCVVMxEDAOBgNVBAgTB0Zsb3JpZGExEjAQBgNV BAcTCU5pY2V2aWxsZTEZMBcGA1UEChMQQ3VkYSBTeXN0ZW1zIExMQzEcMBoGA1UEAxMTQ3Vk YSBTeXN0ZW1zIExMQyBDQTEvMC0GCSqGSIb3DQEJARYgY3VzdG9tZXItc2VydmljZUBjdWRh c3lzdGVtcy5uZXQCAQgwDQYJKoZIhvcNAQEBBQAEggIAas2vta9bMk8kSryrEXsHVvxpmDRg u8LmDRJpXtm8J6b7swBut4tzmq/0YOAixUQqLddBAACHIhN/Xyl+iK1o1O77aUdlYHn8XEMA DmEALknH1pi91Fow0g5kDuOklYa9v7mDkQl8Y8HPv3Ey+zAfJ8HEaDZjq3Sql469WaSWgfo4 wyZWzI2NabYvEYegBkC1cdMam5WpyFrgWBs98zwgQozQ18dqCPlSCjhJPxexoF2VaA2PTPK9 1XPc/gUa7B6m2S2PfyRYC12/ps259JBlEl+aPmv0b73EYIKE/F5tOXljoQzuXPrn+MJQFlZP EH2VDEdYEvaddsPTjFEooU/Z+xFWvRhrgHt1SpeLYtMC9Cets0TY26TrsNIbVdPoEYcox/F0 9JLNmg6vgUEJ4heGKjO4Lm4aEH25z9gLIt8rdseoexrDUOeuDFrRz9kHhwvb2OZn6lBjBTK5 EBL05tAWwNVQ0jTGFqeL+t/xSwwzc0IiTAAOgf3jYFd1JDkgu2gbJuZS1TlJIAk6/G/pbEFg 0GuYCZnXhSocHH4rG7nhAcCYqytS+k3SF94XkBzekL5d67Td5air0DVnCX84rVXd6lRdZEr+ 3aDfHEZyIVZZDKKJtEF9FVEs/tXDGy0E42Zd5Qg6pi8KTKvHIIFpRR0/WlAprP7yiZUxQQPA W/H1gTAAAAAAAAA= --------------ms020307060207000604080807--