A gpart(8) mystery on 10.3-RELEASE
Trond Endrestøl
Trond.Endrestol at fagskolen.gjovik.no
Tue Apr 5 11:51:40 UTC 2016
On Tue, 5 Apr 2016 12:07+0200, Martin.Ambroz at tudc.cz wrote:
> Trond Endrestøl píše v út 05. 04. 2016 v 11:30 +0200:
>
> What am I doing wrong? Can't gpart(8) write both the pmbr and the efi
> image as a single command? Is it an off-by-one error in gpart(8)?
>
> uname -a
> FreeBSD 10.3-RELEASE FreeBSD 10.3-RELEASE #0 r297264: Fri Mar 25 02:10:02 UTC 2016 root at releng1.nyi.freebsd.org:/usr/obj/usr/src/sys/GENERIC amd64
>
> gpart create -s gpt ada0
> ada0 created
>
> gpart add -a 4K -s 800K -t efi ada0
> ada0p1 added
>
> gpart add -a 4K -s 4G -t freebsd-swap ada0
> ada0p2 added
>
> gpart add -a 4K -t freebsd-zfs ada0
> ada0p3 added
>
> gpart show -p ada0
> => 34 41942973 ada0 GPT (20G)
> 34 6 - free - (3.0K)
> 40 1600 ada0p1 efi (800K)
> 1640 8388608 ada0p2 freebsd-swap (4.0G)
> 8390248 33552752 ada0p3 freebsd-zfs (16G)
> 41943000 7 - free - (3.5K)
>
> gpart bootcode -b /boot/pmbr -p /boot/boot1.efifat -i 1 ada0
> gpart: /boot/boot1.efifat: file too big (524288 limit)
>
> gpart bootcode -b /boot/pmbr ada0
> bootcode written to ada0
>
> gpart bootcode -p /boot/boot1.efifat -i 1 ada0
> <no output>
>
> System is bootable.
> Try "dd if=/boot/boot1.efifat of=/dev/ada0p1" instead.
I'm aware of dd(1), but I feel gpart(8) should be able to handle this
task, which it sort of does, if you do the -b and the -p parts as
separate invocations as demonstrated above.
gpart(8) should take the current boot firmware into consideration.
If the boot firmware is BIOS, then a limit of 512K (524288 bytes) is
fine as that's the current limit for the bootcode in /boot/pmbr.
If the boot firmware is (U)EFI, then gpart(8) should allow a -p image
of a size less than or equal to the partition's size, while
simultaneously writing the PMBR.
I.e., contrary to the current documentation for gpart(8)'s bootcode
subcommand:
The size of the file must be smaller than the size of the partition.
--
+-------------------------------+------------------------------------+
| Vennlig hilsen, | Best regards, |
| Trond Endrestøl, | Trond Endrestøl, |
| IT-ansvarlig, | System administrator, |
| Fagskolen Innlandet, | Gjøvik Technical College, Norway, |
| tlf. mob. 952 62 567, | Cellular...: +47 952 62 567, |
| sentralbord 61 14 54 00. | Switchboard: +47 61 14 54 00. |
+-------------------------------+------------------------------------+
More information about the freebsd-stable
mailing list