From owner-freebsd-questions@FreeBSD.ORG Fri May 29 19:22:49 2015 Return-Path: Delivered-To: freebsd-questions@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 3815CA43 for ; Fri, 29 May 2015 19:22:49 +0000 (UTC) (envelope-from wblock@wonkity.com) Received: from wonkity.com (wonkity.com [67.158.26.137]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "wonkity.com", Issuer "wonkity.com" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id DA6F41845 for ; Fri, 29 May 2015 19:22:48 +0000 (UTC) (envelope-from wblock@wonkity.com) Received: from wonkity.com (localhost [127.0.0.1]) by wonkity.com (8.14.9/8.14.9) with ESMTP id t4TJMkxR057394 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Fri, 29 May 2015 13:22:46 -0600 (MDT) (envelope-from wblock@wonkity.com) Received: from localhost (wblock@localhost) by wonkity.com (8.14.9/8.14.9/Submit) with ESMTP id t4TJMk9t057391; Fri, 29 May 2015 13:22:46 -0600 (MDT) (envelope-from wblock@wonkity.com) Date: Fri, 29 May 2015 13:22:46 -0600 (MDT) From: Warren Block To: David Newman cc: freebsd-questions@freebsd.org Subject: Re: Missing boot loader In-Reply-To: <556898FB.1080704@networktest.com> Message-ID: References: <5522C5DE.1050005@networktest.com> <55687BE9.40803@networktest.com> <556898FB.1080704@networktest.com> User-Agent: Alpine 2.20 (BSF 67 2015-01-07) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII; format=flowed X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.4.3 (wonkity.com [127.0.0.1]); Fri, 29 May 2015 13:22:46 -0600 (MDT) X-BeenThere: freebsd-questions@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: User questions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 May 2015 19:22:49 -0000 On Fri, 29 May 2015, David Newman wrote: > On 5/29/15 8:46 AM, Warren Block wrote: >> On Fri, 29 May 2015, David Newman wrote: >> >>> On 4/6/15 9:28 PM, Olivier Nicole wrote: >>> >>>> My solution is >>>> http://www.cs.ait.ac.th/~on/technotes/archives/2015/01/30/how-to_clone_a_freebsd_virtual_machine_on_vmware/index.html >>>> >>>> certainly not the best/fastest, but it works. >>> >>> Thanks for this. After following the clone instructions, restore appears >>> to work, but the system comes up with a "Missing boot loader" error. >>> >>> This is perhaps because the next-to-last step from the live CD is: >>> >>> cd / >>> mount -o rw /dev/da0p1 /mnt >>> gpart bootcode -b /mnt/boot/pmbr -p /mnt/boot/gptboot -i 1 da0 >>> >>> And that returns "/dev/da0p1: Operation not permitted" even though da0p1 >>> is the target system's root/boot partition. >> >> In this code, da0 is the source disk, where the bootcode files are read. >> It is mounted on /mnt. So there are two reasons that gpart cannot write >> bootcode to da0p1. First, it is mounted, and second, it is filesystem >> partition, not a freebsd-boot partition. >> >> The target disk cannot be da0p1. Maybe it is a simple typo, and either >> the second or third line was meant to be ada0 rather than da0. > > Thanks for your email. Backstory: This VM is a dump/restore clone of > another machine that has no separate boot partition. Here's /etc/fstab > from the source machine: > > /dev/ada0p2 / ufs rw 1 1 > /dev/ada0p3 none swap sw 0 0 On a GPT disk, FreeBSD uses a freebsd-boot partition to hold the bootcode. This is binary code written to that partition, which does not have a filesystem. It does *not* contain /boot, which is instead part of /. Because the freebsd-boot partition is not needed after boot, it is not mentioned in /etc/fstab. Look at the output of 'gpart show' instead. > And on the new target VM: > > /dev/da0p1 / ufs rw 1 1 > /dev/da0p2 none swap sw 0 0 This disk is mountable, but because there is no freebsd-boot partition, it will not be bootable. (Well, it might be possible to add a freebsd-boot partition after the existing partitions, but I'd avoid that because it is unusual and may come back to haunt you at the worst possible time.) > I don't understand the bit about 'ada0', since 'gpart list' shows only > da0 and two providers under it. The original disk was ada0, the new one is da0. If the partitions had been created properly on da0 (with p1 being the freebsd-boot partition), it would be possible to mount da0p2 (/), read the bootcode from a file in the /boot directory there, and write it to da0p1. > The source machine has boot files in its root partition, under /boot. Those are copies of the binary bootcode that must be written to a freebsd-boot partition to make a disk bootable. Disk Setup On FreeBSD: http://www.wonkity.com/~wblock/docs/html/disksetup.html