Mounting from ufs:/dev/ad2s1a failed with error 19.

Polytropon freebsd at edvax.de
Sat May 2 04:49:18 UTC 2020


On Fri, 1 May 2020 11:51:00 -0700, David Christensen wrote:
> On 2020-04-30 23:55, Polytropon wrote:
> > On Thu, 30 Apr 2020 22:42:47 -0700, David Christensen wrote:
> >> On 2020-04-30 20:11, Polytropon wrote:
> >>> On Thu, 30 Apr 2020 20:29:14 +0200, Christoph Kukulies wrote:
> >>>> Could solve it myself: bootet back to usb drive, mounted
> >>>> /dev/ada0s1 /mnt and edited /mnt/etc/fstab to the correct
> >>>> mount device.
> >>>> There were ada2s1 for / and another ada2 device for swap.
> >>>> Changed that to ada0s1 and now the system boots fine.
> >>>
> >>> If you can, use labels to avoid those kinds of problem. :-)
> >>>
> >>> https://www.freebsd.org/doc/handbook/geom-glabel.html
> >>
> >> Is there a FreeBSD labeling solution, or any other identifier solution
> >> that avoids using device nodes, for the combination BIOS, MBR, GELI, and
> >> ZFS?
> > 
> > For this constellation, probably glabel is the convenient
> > tool: "glabel label <name> <device>", and then in the "zpool
> > create" command use gpt/<name> indead of the device name.
> > 
> > I have no idea of why MBR should be involved here (as you
> > want to use ZFS)...
> > 
> > Documentation:
> > 
> > 	https://www.freebsd.org/doc/handbook/zfs-quickstart.html
> > 
> > As the example shows, there is no MBR-related step involved.
> > ZFS can manage devices just fine by itself. However, today's
> > suggestion is to always use gpart (with -t freebsd-zfs for
> > use with ZFS), so that's probably the best way to go.
> > 
> > Here is some specific inspiration that also includes the
> > use of GELI:
> > 
> > 	https://blog.haraschak.com/from-dev-to-label/
> > 
> > So if I understand this correctly, the suggested approach
> > is to use -l <label> in the "gpart add -t freebbsd-zfs"
> > step for each disk, and then using those labels as mentioned
> > above. The GELI partitions should then bear that name
> > <label>.eli instead of the device name <device>.eli.
> > 
> > 
> > 
> >> And, that works if I use dd(1) to copy the raw system disk
> >> contents from one device to another -- ATA drive, USB drive, SD card, etc.?
> > 
> > That probably depends on the source and target size, as if I
> > remember correctly, labels are stored at the "logical end"
> > of the device (last sector or block). However, labels are not
> > supposed to be "cloned" that way. A typical solution is to
> > prepare the target media using the appropriate tools (like
> > gpart, maybe newfs), and then transfering the data. For ZFS,
> > always use ZFS's native tools for that; for UFS, dump and
> > restore are very convenient (and can deal with the case of
> > non-matching sizes).
> 
> Thanks for the reply.
> 
> 
> I have a mix of computers of varying ages.  Some are BIOS, some are 
> early EFI/UEFI, some are recent UEFI.  All have firmware quirks.
> 
> 
> I like being able to move my system images (binary data) from one device 
> to another device and/or to move my system drives (devices) from one 
> computer to another computer, and have everything "just work".
> 
> 
> The combination of BIOS and MBR gives me the best results for the above 
> constraints and goals.

I fully agree. Today's consensus is "use GPT except you have
a good reason not to", and intending to be able to use systems
that don't (fully) support GPT can be such a valid case.

Adding labels here is very convenient. I have the same "problem"
that systems detect devices in a different order, so what has
been ada0 in computer A will suddenly be ada4 in computer B.



> When building a FreeBSD system disk, I use the FreeBSD installer and 
> select "Partitioning" of  "Auto (ZFS)".  For example, here is my SOHO 
> server.  The system drive (ada0) is an Intel SSD 520 Series 60 GB with a 
> 14g FreeBSD slice (ada0s1) containing a 2g ZFS boot partition (ada0s1a), 
> a 2g GELI swap partition (ada0s1b), and a 10g GELI ZFS root partition 
> (ada0s1d) (the 42g slice ada0s2 is a GELI/ ZFS cache for the data drives):
> 
> 2020-05-01 10:57:34 toor at f3 ~
> # gpart show -p ada0 ada0s1
> =>       63  117231345    ada0  MBR  (56G)
>           63       1985          - free -  (993K)
>         2048   29360128  ada0s1  freebsd  [active]  (14G)
>     29362176   87869232  ada0s2  freebsd  (42G)
> 
> =>       0  29360128   ada0s1  BSD  (14G)
>           0   4194304  ada0s1a  freebsd-zfs  (2.0G)
>     4194304   4194304  ada0s1b  freebsd-swap  (2.0G)
>     8388608  20971520  ada0s1d  freebsd-zfs  (10G)
> 
> 
> Looking at the last sectors of the first slice and the three partitions, 
> they all contain data.  So, if I use glabel(8) to label them, things 
> will break.

That is an interesting question. Using glabel should not interfere
with existing data, and should definitely not damage data that is
already part of a filesystem.



> It sounds like I need to hack the FreeBSD installer to leave room at the 
> end of the FreeBSD slice, to leave room at the end of each partition 
> (does glabel work for swap?), to invoke glabel(8) with the right 
> arguments to create labels, and to adjust all the other commands ('zpool 
> create ...' , swap?) to use the labels while building the system image (?).

Yes, you can label a swap partition. All commands should be able
to accept labels instead of device names, as long as you make sure
that each label uniquely refers to an existing device file.



-- 
Polytropon
Magdeburg, Germany
Happy FreeBSD user since 4.0
Andra moi ennepe, Mousa, ...


More information about the freebsd-questions mailing list